私のCUDA開発では、16コアのマシンと、16SMの1GTX580GPUを使用しています。私が行っている作業では、16個のホストスレッド(各コアに1個)を起動し、スレッドごとに1個のカーネルを起動します。それぞれに1つのブロックと1024個のスレッドがあります。私の目標は、16個のSMで16個のカーネルを並行して実行することです。これは可能/実行可能ですか?
私は独立した文脈について可能な限り読み込もうとしましたが、入手できる情報はあまり多くないようです。私が理解しているように、各ホストスレッドは独自のGPUコンテキストを持つことができます。しかし、独立したコンテキストを使用した場合、カーネルが並行して実行されるかどうかはわかりません。
16個のホストスレッドすべてからすべてのデータを1つの巨大な構造に読み取り、それをGPUに渡して1つのカーネルを起動できます。ただし、コピーが多すぎてアプリケーションの速度が低下します。