2

ストリーミング マルチプロセッサが最大 X スレッドを許可できる場合、SM 内の各ブロックが Y スレッドを許可する場合、ブロック内にいくつのワープを使用でき、SM 内にいくつのワープを使用できるでしょうか?

この質問に対する私の見解は次のとおりです。

(1) たて糸は 32 本の糸で構成されます。ブロック内で Y/32 を使用できますよね?

(2) SM あたりのワープ数に関しては、SM の最大スレッド数 X を超えることはできないので、X/32 を使用できますよね? 誰かがこれらの計算を確認できることを願っています。

4

1 に答える 1

3

(1) はい、必要に応じて切り上げます (つまり、ブロックあたりのスレッド数 Y が 32 で割り切れない場合)

(2) はい、これはアクティブなワープ数の 1 つの制限です。SM スケジューラは、最初にブロックをスケジュールすることによって機能することに注意してください。スケジュールされるブロックの数は、利用可能なリソース (レジスタ、共有メモリ、スレッドなど) の関数です。ブロックは、そのニーズをサポートするのに十分なリソースが利用できる場合にのみスケジュールされます。たとえば、ブロックごとに 1024 スレッドがある場合、SM で最大 1 つのブロックをスケジュールできます。これは、SM ごとに 1536 スレッドの制限 (ここでは例として CC 2.0 を使用) により、2 つのブロックをスケジュールすることができないためです。したがって、この場合、X/32 の数が最大 48 のワープを予測していても、1024/32 = 32 のワープのみがスケジュールされます。(例として CC 2.0 を使用し、ブロックあたり 1024 スレッドのブロック構造を使用)。

于 2013-05-21T01:01:53.890 に答える