1

単純な 3D cuFFT プログラムを GTX 780 と倍精度モードの Tesla K40 で比較しました。

GTX 780 では約 85 Gflops を測定しましたが、K40 では約 160 Gflops を測定しました。これらの結果は私を困惑させました: K40 が 1.4 Tflops であるのに対し、GTX 780 ha は 166 Gflops のピーク理論パフォーマンスです。

K40 での cuFFT の効果的なパフォーマンスが理論上のピーク パフォーマンスから非常に離れているという事実は、このリンクで Nvidia によって作成されたグラフからも得られます。

なぜこれが起こるのか誰かが私に説明できますか? cuFFT ライブラリに制限はありますか? 多分いくつかのキャッシュの動機...

4

1 に答える 1

1

非常に短い答えは、GTX 780 での倍精度 FFT はおそらく算術命令のスループットが制限されているということですが、Tesla K40 では同じ FFT 操作がメモリ帯域幅に制限されています。

少し長い答えは、K40 のピーク メモリ帯域幅は約 288 Gb/s であり、IEEE 754 float64 のような 8 バイト タイプでは 36 Gwords/s です。FFT の演算スループットは、そのメモリ スループットで実行できる FLOP の数に制限されます。ピークの double FLOP/s に到達するには、メモリ トランザクションごとに 40 回の倍精度操作が必要になります。明らかに、FFT は演算集約型ではなく、その結果、ピーク演算スループットが大幅に低下します。

K40 とほぼ同じメモリ帯域幅を持つ GTX 780 では、ピーク倍精度スループットが約 8 倍低く、使用可能なメモリ帯域幅で演算ピークに近づくことができるようです。

于 2015-12-24T10:11:04.483 に答える