GPUがCPUより速い理由

このようにGTX280の方がCore i7-960より速い理由であるが、計算バウンドのカーネルでは、GTX280が331.1GFlops(積和ともう1個の演算器がフルに使えると933.1GFlops)に対してCore i7-960は102.4GFlopsという単精度浮動小数点演算の性能が効いている。そして、メモリバンド幅バウンドのカーネルでは、GTX280の141GB/sに対してCore i7-960は32GB/sというメモリバンド幅の違いが効いている。ただし、Core i7-960は8MBの3次キャッシュを内蔵しているので、これを上手く利用できるカーネルではメモリバンド幅の差の影響は軽減しているが、Sort以外は、それでもGPGPUを逆転するところまでは行っていない。

各スレッドでの並列計算の完了を待ち合わせる同期処理は、CPUの場合は数百サイクル(Core i7-960では100ns程度)でできるが、GTX280の場合は数μsかかる。Solvは計算が1000サイクル程度しかないので、Core i7の場合でも同期オーバヘッドが大きく、GTX280の場合はほとんどが同期オーバヘッドになってしまう。このため、Intelの論文では、CPU、GPUともに、将来的には、より効率の高い同期機構が必要と述べている。

ということで、この論文はCPU、GPUともに最適化を行った測定を行い、その結果も多くの計算カーネルで、計算性能比やメモリバンド幅比で説明が付き、その他の計算カーネルについても、キャッシュや同期の効果やGPGPU特有の指数関数を計算するSpecial Function Unitの使用やテクスチャユニットの使用などとその原因を明らかにしており、ISCAに採択されるレベルの学術的な価値のある論文である。

そして、GPGPUはCPUに比べて100倍も速いというのは事実誤認ということを証明はしているのであるが、それでも、最近のCore i7-960と2年前のGTX280を比較して、GTX280の方が平均で2.5倍速く、最大では15倍も速いという結果を普通の人が聞くと、やはりGPGPUの方が性能が高く、Fermiではもっと差が開くという印象を持つのは避けられないところである。その点では、Intelがこの2.5倍の性能比を認めたということは、NVIDIAとの戦いではオウンゴールではないかという見方が出ている。