テレワークならECナビ Yahoo 楽天 LINEがデータ消費ゼロで月額500円〜!
無料ホームページ 無料のクレジットカード 海外格安航空券 海外旅行保険が無料! 海外ホテル


log

2012.07.10 考察:CPUとGPUの速度の関係

最近は色々考察していたことが多かったので、おまけにもう一つ考察メモを書いて
おこうと思います。こちらはCPUによる3D計算の話。かなり憶測な部分が多いので
冗談半分程度に読んでもらえれば幸いです苦笑。

最近のCPUであるIntel Corei7はHDグラフィックスという機能を用いてDirectX10.1
相当をサポートし、処理速度でいえばGeforce7の上位版もしくはGeforce8の下位版に
相当している訳ですが。これは従来のIntel CPUのように内臓GPUを搭載しているわけ
ではなくCPUで全て計算しているので、そのことを考えると「何でCPUでこんなに処理
できんの?」と思ったりした訳です。

まずGPUはCPUと比べて何故早いのかということについて考えてみると、GPUは複数の
ユニットを持ちそれらのユニットで並列に処理させており、なおかつベクトル処理を
まとめて1命令で実行できるように設計されています。つまりこれをCPUに置き換えると
マルチコア+マルチスレッド+SIMDということになる訳です。
Intel Corei7のSIMD命令は従来のSSEだけではなくAVXという256bit単位の処理
も可能となり、SIMDだけでいえばGPUと同等のはずです。問題はマルチスレッド処理
ということになります。Intel Corei7のコア数は8もしくは16なので「それらのスレッド全て
を使って並列に動作させ且つSIMDを使用した場合、ユニット数が16程度のGPUと同等
程度ということになるのでは?」と仮定し、ネットで調べてみたところ、Geforce7の
ユニット数は12-20程度とかなり似通っていることが分かりました。ということで、HD
グラフィックスはコア数が同程度のGeforce7の上位版と同程度の性能ということに
なるのではないかと思いました(CPU-GPU間転送とか考慮していない上にCPUには
GPUに無い処理スキップ用の機能があるのでアレですが)。
ちなみに最新のGPUのコア数は千幾つとかなので、CPUとGPUの差は縮まるどころ
か広がってます(そう考えると昔のGPUってそれほど大したものでもなかったんだなあ)。

将来的にコア数が32,64のCPUが登場した場合を考えてみると、Geforce8の上位版と
同等の性能になるのではないかと予想されます。
画像処理以外の計算もコア数分のスレッド+SIMDでかなり高速化するはずですが…
そんな大規模な並列処理って画像処理くらいだからなあ。とりあえず自前のレイトレー
サーを機会があれば高速化しようかなと思います。

comment

post your comment

投稿フォーム
name
mail
url
comment
icon
アイコン一覧
del key