4

CUDA 6.5 のドキュメントには次のように書かれています: http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#ixzz3PIXMTktb

5.2.3. マルチプロセッサ レベル

...

  • コンピューティング機能 3.x で説明されているように、マルチプロセッサは一度に 4 つのワープに対して 1 クロック サイクルでワープごとにペアの命令を発行するため、コンピューティング機能 3.x のデバイスの場合は 8L です。

これは、GPU Kepler CC3.0 プロセッサがパイプライン アーキテクチャであるだけでなく、スーパースカラーでもあるということですか?

  1. パイプライン - これら 2 つのシーケンスは並行して実行されます (一度に異なる操作)。

    • LOAD [addr1] -> ADD -> STORE [addr1] -> NOP
    • NOP -> LOAD [addr2] -> ADD -> STORE [addr2]
  2. スーパースカラー - これら 2 つのシーケンスは並行して実行されます (一度に同じ操作を実行します)。

    • LOAD [reg1] -> ADD -> STORE [reg1]
    • LOAD [reg2] -> ADD -> STORE [reg2]
4

1 に答える 1

10

はい。Kepler のワープ スケジューラは、次の条件を満たしていれば、クロックごとに 2 つの命令をスケジュールできます。

  1. 命令は独立しています
  2. 指示は同じワープから来ます
  3. 両方の命令に対して SM に十分な実行リソースがある

それがスーパースカラーの定義に当てはまる場合、それはスーパースカラーです。

パイプライン処理に関しては、私はパイプライン処理を別の方法で見ています。Kepler SM のさまざまな実行ユニットはパイプライン化されています。例として浮動小数点乗算を考えてみましょう。

特定のクロックで、ケプラー ワープ スケジューラは、浮動小数点ユニットでの浮動小数点乗算演算をスケジュールできます。この演算の結果は、数クロック後に表示されない場合があります (つまり、次のクロック サイクルでは使用できません) が、次のクロック サイクルでは、まったく同じ浮動小数点機能ユニットで新しい浮動小数点演算をスケジュールできます。、ハードウェア (この場合は浮動小数点ユニット) がパイプライン化されているためです。

clock    operation    pipeline stage   result
0           MPY1   ->   PS1
1                       PS2
...                     ...
N-1                     PSN         ->  result1

クロック 0 の次のクロックで、新しい乗算命令を同じ HW でスケジュールでき、対応する結果が次のサイクルでresult1表示されます。

これが「一度に異なる操作」という意味かどうかはわかりません

于 2015-01-19T20:07:34.460 に答える