2016-02-07 10 views
5

私はCUDAプログラミングにNVIDIA Grid K2を使用しています。それには2つのGPUがあり、それぞれに1536のコアがあります。 1回または複数回のカーネルコールで両方のGPUを利用できますか?複数のCUDA GPUの使用

答えて

8

いいえ、できません。グリッドK2のようなマルチGPUカード上の各GPUは、独自のメモリを持つ独立したCUDAデバイスです。したがって、各GPUは独自のCUDAコンテキストを取得し、明示的にプログラムする必要があります。 CUDAドライバまたはランタイムは、自動的に両方のデバイスをカーネル起動のための単一の仮想デバイスとして使用しません。

+1

は少なくとも共有されていますか?すなわち、私はホストからdevice0にデータをコピーし、device0のデータを使用するdevice1でカーネルを実行できますか?またはデータをそれぞれ個別にコピーする必要がありますか?または少なくともデバイス間でデータを直接コピーすることは可能ですか(dev0からdev1へ)? – Val

+2

@ ValCool:私の知る限り、答えはいいえ、メモリは共有されていません。サポートされているプラ​​ットフォームでは、統合仮想メモリとピアツーピアメモリアクセスを使用できますが、2つの個別GPUはボード上の共通PCI-eブリッジチップによってのみリンクされ、通信は基本的にPCI-e DMA速度 – talonmies

+0

SLIはこの種の通信には使用されていませんか? – Val