プログラムの並列度合い向上で処理能力も向上

現在、「コンピュータの処理はスループットコンピューティングの時代に入ってきている」とDally氏は語る。並列化を念頭においたシステムを構築するに当たっては、スループットの最適化を重視する必要があり、シングルスレッドでの処理能力は意味を成さなくなる。結果として「今後はより並列化に重点を置いたスループットプロセッサが主役」となる訳であり、その結果として主役はCPUから並列化を推し進めてきたGPUに移るという。

では、ハードウェア側の並列化が進んだ場合、アプリケーション側はどうなるのか。CPU上で動いていたアプリケーションをGPUに適用しようとすれは、既存コードを対応させるために並列化する必要がある。スタンフォード大学の事例では、多くのコードを並列処理することに成功しており、「科学分野の演算は非定型なもの、例えば適合格子細分化(AMR:Adaptive Mesh Refinement)などが持ち込まれたり、より複雑なモデル演算への適用など、現在のGPUはこうした分野においてもパイプラインを深くしたことなどにより、高い効率で処理することが可能になっている」とDally氏は語る。これは、組み込みのアプリケーションでも同様で、コーデック、アップスケーリング、RFモデムの処理などでもアプリケーションの並列化が進んでおり、GPUのストリーミングプロセッシングとしての効果を発揮できるという。

GPUにより科学分野や組み込み分野でのアプリケーションでのパフォーマンス向上が可能となってきている

また、マルチコアプロセッサの性能向上の壁と言われてきた「Amdahl's low」だが、最近のプログラムを見ると、シリアル部分がほとんどないものも散見できるようになってきたと指摘。つまり、並列の度合いの大小はあるものの、シリアル部分を極小にすることで、並列化による処理能力向上を最大限に活用することができるようになり、結果として「エンドユーザーに価値を提供する多くのアプリケーションにおいて"Amdahl's low"は問題にならなくなった」とする。

結果として、GPUにおいても処理の最適化が求められるわけだが、「まず第一にデータの移行に対する要求を減らすことである。そしてスケジューリングの最適化も図ることにより、処理が詰まっているところに割り振らないようにして、空いている部分に割り振るようにすることが重要である」としており、実際にデータが必要とされる前にスケジューリングを実施することで、演算ユニットの専有時間を減らすことができ、メモリ使用量も減らしつつも、常に演算ユニットの使用状態を高めておくことができるようになるという。

データの局所性を理想的に使えるストリームプロセッサアーキテクチャの図

GeForce GTX 280/Tesla T10のブロック図(240個のスケーラブルプロセッサが配置されている)

GPUコンピューティングに本気になったNVIDIA

現在、HPC分野においては、「GPUでの処理が進んでいるが、処理性能の向上はもちろん、CPUに比べて50倍~100倍の電力効率が向上することも重要な点になってきている」とし、NVIDIAが提供するCUDAでは、局所性と並列性を考慮することが可能となることから、高い効率で動かすことが可能となり、「スループットプラットフォームとしてGPUは要となり、ユーザーの価値を高めていく役割を担っていく」とした。

これまで同社のChief Scientistを務めてきたDavid Kirk氏(現在はFellow)がどちらかと言えば、GPUの本来の使い方である3Dグラフィックスでの進化を牽引してきたのに対し、Bill Dally氏は、元々スタンフォード大学やマサチューセッツ工科大学(MIT)などで並列コンピューティングシステムの開発を行ってきており、自らStream Processors(SPI)を立ち上げるなど、いち早くデータ局所性の重要性を説き、ストリーム・プロセッシングの有望性を示してきた人物である。同士がその知見をもって、NVIDIAのChief Scientistとしてデータの局所性の活用方法をGPUに持ち込むことは用意に想像されることであり、「これまでGPUコンピューティングに半信半疑なところがあった研究者に対しても説得力を持つようになった」(NVIDIA関係者)ということにつながっており、実際にそういった意味での反響が大きくなりつつあるという。

HPC分野におけるGPUコンピューティングの適用はまだまだ一部分のみに留まっているが、Dally氏の起用はNVIDIAのこの分野への進出の本気度の表れと言え、今後、そういった分野での採用が確実に進んでいくことは想像に難くないだろう。