【 ここから本文 】
- TOP
- > Topics : IT基盤技術
- >
IT基盤技術
ソーシャルブックマークに登録 :
印刷用ページの表示
【解説】
「GPUコンピューティング」の可能性――高速汎用計算に挑む
GPUの汎用的な計算処理への応用で、ベクトル型HPC市場を切り開くか
(2008年06月30日)
図6に、ベクトル型コンピュータと並列型コンピュータをメモリ帯域幅と演算パイプラインの処理速度の観点から比較したものを示す。前者はプログラミング・モデルが時間並列型にデータを処理しているのに対し、後者は、CUDAを利用したGPUコンピューティング環境も含め、データを時間並列型に処理しつつも、基本的には空間並列型でプログラミング・モデルが構成されている。
| 図6:メモリ帯域幅と演算パイプラインの処理速度から見た、ベクトル型コンピュータと並列型コンピュータの違い |
そもそも、ベクトル型HPCがなぜ高速処理ができるかと言えば、高速処理が可能な時間並列型パイプラインで構成された演算装置に対し、その演算性能に見合うだけのデータを効率よく供給しているからである。これは、効率よくデータを並列処理できるプログラミング・モデルを採用していることが大きく関係している。
しかし、ベクトル型HPCは非常に高価であり、さらに今後の技術的発展すら危ぶまれているのが現状である。その理由は、高速処理装置へのデータ供給装置が大きなメモリ帯域幅を確保しなければならず、そこに多大なコストがかかるからだ。本来、CPUとメモリ帯域幅はギャップが大きくて当然なのだが、ベクトル型HPCでは、データのパイプライン処理を実行するためにCPUとメモリ帯域幅のギャップを解消しようと、そこにコストをかけているわけだ。
それに対し、空間並列型にCPUを配置してデータの並列処理を実行しようとするのが並列型コンピュータの基本的な考え方である。ベクトル型HPCよりも安価にシステムを構築できるうえに、並列構成をとった数多くのCPUに対し、それらの処理性能に見合うだけのデータが常にそろっていれば、場合によってはベクトル型HPCよりも速い処理速度が得られる。しかし、基本的にここで問題となるのが、メモリ帯域幅に関係するメモリからのデータ出力スピードである。
しかし、並列型コンピュータでも、アプリケーションに特化したデータ処理環境であれば、並列化された各CPUへデータを供給し続けることができ、メモリ帯域幅の問題を解消できるケースもある。その場合、メモリ帯域幅が各CPUで効率的に利用されることになり、等価的に大きなメモリ帯域幅を備えたと解釈することができる。この原理を利用したのがGPUコンピューティングなのである。
GPUコンピューティングのすばらしい点は、主に空間並列型のデータ処理にもかかわらず、ベクトル型HPCに匹敵するデータ処理性能を実現し、かつ汎用的なデータ処理機能も備えようする試みであるところだ。これまでであれば、両立が困難であった機能がGPUコンピューティングで実現されようとしているのである。その意味で、GPUコンピューティングは今後、非常に注目すべき技術だと言える。
加えてGPUそのものが、ベクトル型HPCに搭載されるCPUの性能をしのぎ、超高速な汎用処理機能を発展させていく可能性を秘めている。
いずれにせよ、GPUコンピューティングでは、ベクトル型HPCと比べて、同等の計算処理能力を備えたHPCを3〜4ケタ安く構築できるということは夢でなく、今後はGPUの発展によりさらにその差は広がるであろう。


