2

縦糸は32本。マルチプロセッサで 32 のスレッドが並列に実行されますか? 32 個のスレッドが並行して実行されていない場合、ワープに競合状態はありません。いくつかの例を見た後、私はこの疑問を抱きました。

4

2 に答える 2

4

CUDAプログラミングモデルでは、ワープ内のすべてのスレッドが並行して実行されます。ただし、SM(Stream Multiprocessor)内のコア数は32未満になる可能性があるため、ハードウェアでの実際の実行は並列ではない可能性があります。たとえば、GT200アーキテクチャではSMごとに8コアがあり、ワープ内のスレッドには4クロックサイクルが必要です。実行を終了します。

複数のスレッドが同じ場所(共有メモリまたはグローバルメモリ)に書き込む場合、および競合を望まない場合は、CUDAプログラミングモデルがどのスレッドに書き込むかを保証しないため、アトミック操作またはロックを使用する必要があります。

于 2011-03-11T04:09:50.673 に答える
-1

はい。WARP 内の 32 のスレッドが並行して実行されます。GPU は SIMT (single instruction multiple thread) マシンであり、複数のスレッドによって並列に実行される単一の命令です。

ところで、SIMT はマーケティング用語のようなもので、基本的にSIMDと同じです。

于 2011-03-11T04:36:28.317 に答える