コンピューターに複数の CUDA 対応 GPU がある場合、各 GPU にはdevice ID
. デフォルトでは、CUDA カーネルは で実行されdevice ID 0
ます。を使用cudaSetDevice(int device)
して別のデバイスを選択できます。
マシンに GTX 480 と GTX 670 の 2 つの GPUがあるとします。CUDA は、どの GPU がどの GPU であるかをどのように判断しますか?device ID 0
device ID 1
CUDA がデバイス ID を割り当てる方法のアイデア (ブレインストーミングのみ):
- 計算能力の降順
- PCI スロット番号
- デバイスがシステムに追加された日時 (コンピュータに追加されたばかりのデバイスの ID 番号が大きい)
動機: 私はいくつかの HPC アルゴリズムに取り組んでおり、いくつかの GPU に対してそれらのベンチマークと自動調整を行っています。私のプロセッサには、フル帯域幅で cudaMemcpys を 3 つの GPU に駆動するのに十分な PCIe レーンがあります。そのため、GPU を常にマシンに出し入れする代わりに、コンピューターに 3 つの GPU を保持することを計画しています。コンピューターに GPU を追加または交換したときに何が起こるかを予測できるようにしたいと考えています。