GPU のワープについて質問があります。
次の構成を使用しました。
- ゲフォース210
- Cuda 機能のメジャー/マイナー: 1.2
- 2 マルチプロセッサ、8 CUDA コア/MP : 16 CUDA コア
- ワープサイズ : 32
以下は実行時間です(私はnsightを使用しました):
block,threads/block : time
--------------------------
1,32 : 5.1
8,32 : 5.4
16,32 : 5.7
32,32 : 8.9
64,32 : 14.8
Warp (=32 スレッド) が同時に実行され、2 つの MP があります。というわけで、この GPU の最大能力は 64 スレッドだと思っていましたが、16*32 スレッドはほぼ同じ時間で実行されます。ワープ スケジューラを考えると、この結果は理解できません。
私の質問は次のとおりです。
- 16*32 スレッドが 32 スレッドとほぼ同じ時間実行されるのはなぜですか?
- 64*32 実行時間が 32*32 の 2 倍にならない理由
- グローバルメモリアクセスはレジスタ並みに速いと聞きました。それは正しいですか?(3.5 GPU または高価な GPU を含む)