3

たとえば、ブロックが 1 つだけで、このブロック内にスレッドが 1 つしかない CUDA カーネルを呼び出しています。

カーネル<<<1、1>>>

このカーネルは、指定された単一のCUDA コアでのみ実行されますか? たとえば、GPU に 128 個のコアがある場合、128 個のうち 1 個だけが機能するのでしょうか?

どうもありがとう!

4

2 に答える 2

7

いいえ。CUDA は SIMD スタイルのアーキテクチャであり、基本的な実行ユニットはワープです。つまり、ハードウェア上でロック ステップごとに実行される 32 のスレッドのグループです。1 つのスレッドを含む 1 つのブロックを起動すると、ハードウェアは 32 のスレッドの 1 つのワープを実行し、そのうち 31 はマスクされ、noops のストリームに相当するものを実行します。特定のワープは単一のストリーミング マルチプロセッサで実行され、使用しているハードウェアの世代に応じて、ワープが実行される SM の 8、16、または 32 コアが必要になる場合があります。

于 2012-12-10T05:45:29.123 に答える
2

各 CUDA コアは、SM の SIMD のレーンです。カーネルは 1 つの SM のみをアクティブにし、レーンの 1 つを利用します。そのため、カーネル <<<1,1>>> は非常に非効率的で、1 つの SM の 1 つのレーンしか使用しません。

于 2012-12-10T05:44:29.823 に答える