プロセッサの多様化に向かうクラウド――AWSやGoogle、そしてインテルが目指す世界とは?
大規模データ分析や機械処理、HPC向けといったニーズに応えるため、クラウドプラットフォームが多様なプロセッサを利用する動きが本格化し始めている。
AMDの躍進やApple M1チップの登場でプロセッサは多様化へ
数年前、それまでプロセッサの性能向上を支えてきた集積回路の微細化は限界を迎え、18カ月ごとに集積回路上のトランジスタが2倍になる「ムーアの法則」も終わりを迎えたのではないかという議論が盛んに行われました。2017年には筆者もこのコラム欄で「ついにムーアの法則が終わりつつあるという現実―― 果たして世界はどこへ向かおうとしているのか?」というコラムを書いています。
事実、その頃にはx86プロセッサの動作周波数も3GHz前後で頭打ちになり、マルチコア化やメニーコア化による性能向上が注目されるようになってきたのです。もう汎用プロセッサの性能向上はゆっくりとしか進まないだろうと、多くの人が考えるようになりました。筆者もそう考えていました。
しかし、そうした考えを覆す出来事がこの1年で2つも起こりました。
1つはAMDの「Ryzenプロセッサ」の躍進です。2017年に登場したRyzenシリーズは、現在、その高い性能に大きな注目が集まっています。x86プロセッサはまだ性能を伸ばせるのだということを、多くの人々に知らしめることになったのではないでしょうか。
そしてもう1つは、「Apple M1チップ」を搭載した新型Macの登場です。Apple M1チップ搭載の新型Macは、それまでのインテルプロセッサを搭載したMacよりも高性能となり、それでいて熱くならず低消費電力を実現したことがユーザーの間で大きな話題となりました。しかも、インテルプロセッサ用に作られたアプリケーションのバイナリをM1チップ用に変換する「Rosetta 2」が同時に提供され、多くのアプリケーションがこの変換により、M1チップ搭載の新型Macで十分に実用的な速度で動作することが実証されました。
AMDのRyzenも、Apple M1チップも、今後さらなる性能向上が期待されています。しばらくはAMDやApple、それに刺激されたインテルも含めて、ベンダー間でプロセッサの性能争いが続くことでしょう。
AWSも独自プロセッサを本番投入
Appleと同様に、ARMベースの独自プロセッサを投入したのがAmazon Web Services(AWS)です。
AWSはARMをベースにしたプロセッサ「AWS Graviton Processor」を2018年に発表、続く2019年には性能を向上させた「AWS Graviton 2」も発表しました。さらに2020年8月にはGraviton 2を採用したデータベースのマネージドサービス「Amazon RDS MySQL/PostgreSQL」のプレビューを開始し、2020年10月にはインメモリキャッシュサービス「Amazon ElastiCache」のデフォルトプロセッサをGraviton 2にするなど、着々と本番投入を進めています。
AWSでは、Graviton 2がx86プロセッサのサーバーと比較して価格性能比で40%向上していると説明。実際にGraviton2を採用したサービスでは、時間当たりの利用価格をx86プロセッサ採用サービスよりも低めに設定しています。ユーザーとしてはクラウドのマネージドサービスがちゃんと動いてさえいれば、その裏で動いているプロセッサが何であるかは関係なく、価格の安い方を使いたくなるでしょう。
AWSはGravitonプロセッサとマネージドサービスによって、x86以外のプロセッサによる優れたソリューションを自社のクラウドサービスで実現しようとしているわけです。
機械学習ではAWSもGoogleも独自プロセッサを投入
AWSはGravitonプロセッサ以外にも独自プロセッサの開発を進めています。2018年には機械学習の推論処理に特化した「AWS Inferentiaプロセッサ」を発表、2020年には機械学習のトレーニング処理に最適化した「AWS Trainium」を発表しています。
機械学習処理は大量の計算を並列処理することになるため、そうした処理が得意なNVIDIAのGPUなどがよく使われていますが、ここでもAWSは独自に最適化したプロセッサをクラウドに用いることになります。
機械学習処理においては、Googleも独自に機械学習処理専用のプロセッサ「Tensor Processing Unit」(TPU)を投入しています。すでに3代目となる「TPU 3」まで進化しており、同社のクラウドサービスにおける大規模な機械学習処理を支えています。
機械学習処理に対するニーズは今後さらに増えていくことが確実です。その処理はときにNVIDIAのGPU、ときにAWS Inferentia、ときにGoogleのTPUなど、アプリケーションの種類や実行するプラットフォームによって異なるものになっていくでしょう。
ピンチアウトで拡大
ピンチアウトで拡大
インテルもプロセッサの多様化に対応
このようにPCの分野でもクラウドの分野でも、プロセッサと言えばインテルのx86プロセッサという独占的な状況は崩れ始めており、複数のベンダーから特長のあるプロセッサが登場し、使われ始めています。
そしてインテルも、複数のプロセッサを適切に使い分けるという方向へ踏み出しています。それがインテルの「XPU」戦略です。
インテルはすでに2015年、FPGA大手のアルテラ社を買収して自社のラインナップに加えました。これについては、本コラムの「なぜインテルはアルテラを買収し、FPGAをXeonに統合しようとしているのか?」をご参照ください。
また、これまでインテルのラインナップに欠けていたGPUへも進出、最近になって「Xe」と呼ばれるGPUを製品化しました。従来のCPUに加えて、FPGAやGPUなどのさまざまな種類のプロセッサを、インテルは総合的にXPUと呼んでいます。そしてインテル自身が、XPUを活用していく方向へと注力しているのです。
インテルは複数のプロセッサをソフトウェアで使いこなすために「oneAPI」と呼ばれる仕組みを用意しています。このoneAPIとはソフトウェアの処理を適切なプロセッサに自動的に割り当てる仕組みであり、CPUしかなければすべての処理はCPUで実行されますが、CPUとGPUが用意されていれば、GPUが得意な処理は自動的にGPUで処理されるようになります。
これによってソフトウェアをいちいち書き換えなくても、常にプロセッサの能力を最大限に引き出すことができるわけです。
写真3●インテルの「XPU and Software Update – Intel oneAPI, Data Center Software and Intel Server GPU」 (YouTube動画 https://www.youtube.com/watch?v=9y3xpi-yPyA)
多様化に向かうプロセッサを使いこなすには
現在のところクラウドで利用するプロセッサは事実上、ほとんどがインテルのXeonプロセッサです。しかし前述したように、プロセッサは多様化する方向へと急速に進んでおり、いずれ多くのITエンジニアがそうした多様なプロセッサを使いこなすことになるでしょう。
ただし、それぞれのプロセッサはマネージドサービスのバックエンドで動いていたり、機械学習ライブラリの裏側で動いていたり、あるいはoneAPIのような最適化ライブラリの裏で動いていたり、場合によってはAppleのRosetta 2のようにバイナリトランスレーションが行われたりなど、多くの場合、プロセッサの違いを意識しなくて済むような工夫が図られるはずです。
とはいえ、本当にプロセッサの種類をまったく意識せずにアプリケーションを実行できるようになるかは、いまのところ懐疑的に見ておくべきでしょう。それらを使いこなすには、それぞれのプロセッサの特長を把握・活用できるだけの知識やスキルが求められてくるはずだからです。
※このコラムは不定期連載です。
※会社名および商標名は、それぞれの会社の商標あるいは登録商標です。
-
新野淳一/Junichi Niino
ブログメディア「Publickey」( http://www.publickey1.jp/ )運営者。IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求。