スーパーコンピューティングの将来

スーパーコンピューティングの将来


大変興味深い記事だった.

GPGPU

他の可能性は? --- II. GPGPU


著者は GPGPU には否定的である.以下に内容をまとめてみた.

GPGPU (General-Purpose computation on GPUs) とは,GPU を汎用(は言い過ぎとして,本来の目的である「描画」以外)の計算に利用しようとする試みのこと.
GPU は CPU に比べて現状でコストパフォーマンスが高い.Pentium D と比較して倍の価格で(プログラミングに制約があるとはいえ)数倍の演算性能とメモリバンド幅が手に入った.また,過去数年では GPU の進歩の方が CPU より速かったため,今後の進歩も期待されていた.

GPU に対する懸念は以下の通り.

  • 演算精度の問題.GPU は単精度演算しかサポートしない(描画目的では,する必要がない)が,多くの科学技術計算では倍精度は必須である.単純に倍精度にすることは,ハードウェア規模が 5 倍程度になるためあり得ない.何らかのハードウェアサポートで 4 サイクル程度で倍精度演算をサポートできるが,その場合演算性能が 1/4 になるため,Pentium D と変わらなくなってしまう.
  • CPU - GPU 間のバンド幅の問題.全ての計算を GPU のみでできるわけではないため,CPU - GPU 間の通信が発生する.この通信は PCI-Express などのため,GPU のメモリバンド幅に比べて遅くボトルネックとなる.GPU の本来の使用目的である描画では,CPU → GPU はポリゴン座標が送信されるためピクセルデータに比べてデータ量が少なく,GPU → CPU の通信はそもそも発生しないため,上で懸念されるようなボトルネックは存在しなかった.
  • もはや CPU より速い進歩が見込めない.マルチコア化により CPU の急激な進歩が見込めるため GPU の優位性がなくなった.また,描画目的の GPU はメモリバンド幅より演算性能を上げても意味がない(演算性能はメモリバンド幅に比べればおまけのようなもの)という事情があるが,メモリバンド幅の進歩も限界が近い.