Fermi GPU で起動できるスレッドの最大数について混乱しています。
私の GTX 570 デバイス クエリには次のように表示されます。
Maximum number of threads per block: 1024
Maximum sizes of each dimension of a block: 1024 x 1024 x 64
Maximum sizes of each dimension of a grid: 65535 x 65535 x 65535
私の理解では、上記のステートメントを次のように理解しています。
CUDA カーネルの場合、最大で 65536 ブロックを起動できます。起動された各ブロックには、最大 1024 のスレッドを含めることができます。したがって、原則として、65536*1024 (=67108864) スレッドまで起動できます。
これは正しいです?スレッドが多くのレジスタを使用する場合はどうなりますか? この理論上の最大スレッド数にまだ到達できるでしょうか?
CUDA カーネルを作成して起動した後、起動したスレッドとブロックの数が実際にインスタンス化されていることを確認するにはどうすればよいですか。つまり、特定のカーネルで可能な数よりも多くのスレッドをたまたまインスタンス化した場合に、GPU がジャンクを計算したり、奇妙な動作をしたりしたくないということです。