Nvidia GPU のリスト - GeForce 900 シリーズ- そこには次のように書かれています。
4 単精度のパフォーマンスは、シェーダー数の2 倍にベース コア クロック速度を掛けて計算されます。
たとえば、GeForce GTX 970 の場合、パフォーマンスを計算できます。
1664 コア * 1050 MHz * 2 = 3 494 GFlops ピーク (3 494 400 MFlops)
この値は列 - 処理能力 (ピーク) GFLOPS - 単精度で確認できます。
しかし、なぜ2 倍しなければならないのでしょうか?
書かれています:http://devblogs.nvidia.com/parallelforall/maxwell-most-advanced-cuda-gpu-ever-made/
SMM は、クロックごとに 2 つの命令をディスパッチできる専用のワープ スケジューラを備えた 4 つの 32 コア処理ブロックを備えた象限ベースの設計を使用します。
OK、nVidia Maxwell はスーパースカラー アーキテクチャであり、クロックごとに 2 つの命令をディスパッチしますが、1 つの CUDA コア (FP32-ALU) はクロックごとに 1 つ以上の命令を処理できますか?
1 つの CUDA-Core には、FP32 ユニットと INT ユニットの 2 つのユニットが含まれていることがわかっています。ただし、INT ユニットは GFlops (浮動小数点操作/秒) とは無関係です。
つまり、1 つの SMM には以下が含まれます。
- 128 FP32ユニット
- 128 INTユニット
- 32 SFUユニット
- 32 LD/STユニット
GFlopsでパフォーマンスを得るには、128 個の FP32 ユニットと 32 個の SFU ユニットのみを使用する必要があります。
つまり、128 個の FP32 ユニットと 32 個の SFU ユニットの両方を同時に使用する場合、1 クロックあたり 1 SM あたり、浮動小数点演算で 160 の命令を取得できます。
つまり、2 の代わりに1,2 =(160/132) を掛ける必要があります。
1664 コア * 1050 MHz * 1,2 = 2 096 GFlops ピーク
Cores*MHz を 2 倍にする必要があると wiki に書いているのはなぜですか?