みなさん、こんにちわ。Vectory(@vectorywork)です。
SX-Aurora TSUBASAとGPGPUって何だか似ていますよね?
でも中身は全然別物です。
比較をする時にFLOPSだけですること自体ナンセンスなのですが、形状が似ているゆえにどうしても比較したい人が出てきてしまうようですね。
⇒【基本】CPUやGPUの理論値FLOPSの計算方法と測定方法
SX-Aurora TSUBASAとGPGPUの違いを少し見ていきたいと思います。
SX-Aurora TSUBASAとGPGPUはどっちが良いの?
結論から言うと、全く別物なので、どちらも適材適所で利用すればOKです。
どちらが良いとかはありません。
SX-Aurora TSUBASAとGPGPUでHWスペックを比べても良いのですが、あまりここに固執しても意味がありません。
わかりやすいのでHWスペックを比べて結論を出す人がいますが、ちょっと早計すぎますね。
言うなれば、「飛行機と新幹線どっちが良いの?」と言っているようなものでしょうか。
飛行機と新幹線は乗り物ですが、お互いのスペック(速度やサイズなど)を比べても意味ありませんよね。(違うか。)
まあ、でも一応簡単にスペックは見ておきましょうか。
Type 10A | Tesla P100 | |
コア数 | 8コア | 3584コア |
コア性能(倍精度) | 307GFLOPS | 2.6GFLOPS |
ボード性能 | 2.4TFLOPS | 4.7TFLOPS |
メモリ容量 | 48GB | 16GB |
メモリ帯域 | 1200GB/s | 720GB/s |
Byte/FLOP | 0.5 | 0.15 |
処理方式の違い
【外注】GPGPUはアクセラレータ式:計算処理をオフロード
GPGPUは、基本的にアプリケーションは、CPUで処理されます。
GPUでは一部の処理がオフロードされ、計算されます。
イメージで言うと「外注」のような感じですかね。
一番いいのは、外注に一回丸投げしたら効率よく全てやってくれて、成果物が一回で納品されるというケースです。
逆に良くないケースは、外注とのやり取りが頻繁に発生するケースです。
本当に必要な処理よりも、外注先とのやり取りに多くの時間を取られてしまうのでは、本末転倒になるので、いかに効率的に処理を丸投げ出来るかが、GPGPUを使う際のポイントになります。
CPUーGPU間の通信がボトルネックになることもあるそうなので注意が必要そうです。
※実際にそこがボトルネックになりがちなのか、最近ではNVLinkというものも出てきてきますね。
また、GPUのメモリは16GB以下が主流だったり、小さいコアが沢山ある超並列構造ですので、処理量などもポイントになってきます。
SX-Aurora TSUBASAはベクトルエンジンがメインプロセッサ
一方で、SX-Aurora TSUBASAの場合、アプリケーションの処理は、ベクトルエンジンで行われます。
オフロードという作業はほぼないのでCPUとベクトルエンジン間の通信はほとんどないそうです。
OS処理はCPUで行われるそうなので、ベクトルエンジンは計算に集中できると言うわけですね。
また、CPUの処理はOS等の軽いものと言うことはCPUは軽めのSKUで良さそうですね。
研究者にとっての違い:プログラミング
研究者にとってのSX-Aurora TSUBASAとGPGPUの大きな違いは、プログラミング部分でしょう。
SX-Aurora TSUBASAは、専用の言語を利用する必要がありません。
SX-Aurora TSUBASAは、メジャーなC言語やFortranでプログラムを作成できるのが大きなメリットとして謳われています。
GPGPU利用のハードルの一つが「CUDA」の難しさ
一方でGPGPUでは、CUDA(クーダ)というGPU向けの開発環境でプログラミングしなければなりません。
CUDAを使ってGPUを効率よく使うにはGPUのアーキテクチャを理解し、通信を隠蔽したりと、かなり高度なスキルが求められます。
そうなると、プログラミング部分に非常に大きなウェイトをおいて研究に挑まないと行けません。
プログラミングに多くの時間がかかるということですね。
プログラミングはあまり時間をかけずに、自分の研究の方に集中したいというのが多くの研究者の本音ではないでしょうか。
GPGPUも普及してきて一昔前に比べると使いやすくなったそうですが、それでもやはりハードルが高いのは変わっていないようです。
プログラム資産継承問題
このようにCUDAの利用には、高いスキルが要求されて、一部の限られた優秀なエンジニアしか対応が難しいです。
そのため、とある優秀なエンジニアがGPGPUのプログラムを作成したとしても、その人が定年や引き抜き(優秀なので。)で退職した場合、残されたプログラムの中身がわからず、後任者がメンテが出来ないというプログラム資産継承問題があります。
外部に出せるソースであれば、外注という手段もありますが、費用もかかりますし、何よりソースを外部に出せないプログラムも多くあるため、非常に難しい問題ですね。
SX-Aurora TSUBASAは、特別な言語は不要なので、このあたりを解決出来ると良いのですけどね。
さて、今日はここまで!
おわりっ!