5
私はCUDAプログラミングにNVIDIA Grid K2を使用しています。それには2つのGPUがあり、それぞれに1536のコアがあります。 1回または複数回のカーネルコールで両方のGPUを利用できますか?複数のCUDA GPUの使用
私はCUDAプログラミングにNVIDIA Grid K2を使用しています。それには2つのGPUがあり、それぞれに1536のコアがあります。 1回または複数回のカーネルコールで両方のGPUを利用できますか?複数のCUDA GPUの使用
いいえ、できません。グリッドK2のようなマルチGPUカード上の各GPUは、独自のメモリを持つ独立したCUDAデバイスです。したがって、各GPUは独自のCUDAコンテキストを取得し、明示的にプログラムする必要があります。 CUDAドライバまたはランタイムは、自動的に両方のデバイスをカーネル起動のための単一の仮想デバイスとして使用しません。
は少なくとも共有されていますか?すなわち、私はホストからdevice0にデータをコピーし、device0のデータを使用するdevice1でカーネルを実行できますか?またはデータをそれぞれ個別にコピーする必要がありますか?または少なくともデバイス間でデータを直接コピーすることは可能ですか(dev0からdev1へ)? – Val
@ ValCool:私の知る限り、答えはいいえ、メモリは共有されていません。サポートされているプラットフォームでは、統合仮想メモリとピアツーピアメモリアクセスを使用できますが、2つの個別GPUはボード上の共通PCI-eブリッジチップによってのみリンクされ、通信は基本的にPCI-e DMA速度 – talonmies
SLIはこの種の通信には使用されていませんか? – Val