この記事がめちゃくちゃおもしろい。
SIGGRAPH 2005 - GPUをCPU的に活用するGPGPUの可能性
背景でいえば、
この部分が、GPUをCPU的に活用する最も大きな理由なのだと思う。
例えばインテルの最新CPU、3.0GHzのデュアルコアPentiumの演算性能は24.6GFLOPSだが、NVIDIAの最新GPU、GeForce 7800 GTXは165GFLOPSで、Pentiumの約7倍にもなっている。性能向上率についても同様で、CPUが毎年1.4倍程度の性能向上率を達成しているのに対し、GPUは1.7〓2.3倍となっている。
メモリアクセス、x86命令のような過去とのしがらみ、上位命令に縛られなければ、このくらいのスペックは可能ということか。NVIDIAもATIも勝手に新技術を搭載して、相手のことを無視して勝手に進化しているというのもこの進化のスピードの大きな理由だと思う。2台勢力が切磋琢磨している感じがする。
現在、GPUプログラム向けのアプリケーションは、
# 巨大なデータを処理する
# 各データ間の依存性は最低限である
# 高い並列性をもって処理できること
であることとレポートされており、そのためのアプリケーションとして、線形代数を紹介している。二次元データ構造をαRGBに割り当てるという処理が面白い。
まとめとしては、
しかし、単位時間あたりの演算性能においてCPUが、GPUを逆転できる未来も見えてこないのもまた事実である。このことから、GPGPUは、CPUでは高速実行が難しい、高密度な演算処理をGPUに行わせるためのコプロセッサ的なソリューションとして発展していくと思われる。例えば、身近なところでは動画のデコードとエンコード、音声や画像の認識処理などがGPGPU向きのアプリケーションとなるだろう。
この言葉に集約されるのかな。ゲーム開発者にとってもおもしろい話だと思う。6年後のPS4ではGPUプログラミングをサポートもありうる、進化の早さかも。
[追記]
スラッシュドットに取り上げられていました。
[さらに追記]
今日昼飯喰ったMもGPUプログラミングにチャレンジしようとしていて、SOMをやろうとしているらしい。
# 巨大なデータを処理する
# 各データ間の依存性は最低限である
# 高い並列性をもって処理できること
この観点で見たとき、たしかに完璧だ。すげー、利用法だ。
〓〓〓〓
今日、テレビで知った豆知識
「全身に金粉を塗るとテンションがあがる」(byインリン・オブ・ジョイトイ)
まじ、笑った。