[解決済み] ジョブを実行するGPUはどのように選択するのですか?
質問内容
マルチGPUコンピュータで、CUDAジョブがどのGPUで実行されるべきかを指定するにはどうすればよいですか?
例として、CUDA をインストールする際に、私は
NVIDIA_CUDA-<#.#>_Samples
のインスタンスを複数回実行した後
nbody
シミュレーションを実行しましたが、それらはすべて1つのGPU 0で実行され、GPU 1は完全にアイドル状態でした(GPU 1で監視しているのは
watch -n 1 nvidia-dmi
). 確認中
CUDA_VISIBLE_DEVICES
を使って
echo $CUDA_VISIBLE_DEVICES
これが設定されていないことがわかりました。 を使用して設定してみました。
CUDA_VISIBLE_DEVICES=1
を実行すると
nbody
を再度実行しましたが、やはりGPU 0になりました。
関連する質問を見てみました。
CUDAプログラムを実行するために指定されたGPUを選択する方法を教えてください。
しかし
deviceQuery
コマンドはCUDA 8.0のbinディレクトリにはありません。 さらに
$CUDA_VISIBLE_DEVICES$
他の投稿では、環境変数である
$CUDA_DEVICES
が、これらは設定されておらず、使用方法についての情報も見つかりませんでした。
私の質問とは直接関係ないのですが
nbody -device=1
GPU 1 でアプリケーションを動作させることができましたが、GPU 2 で動作させるには
nbody -numdevices=2
は、GPU0と1の両方で実行されませんでした。
このテストは、CentOS 6.8、CUDA 8.0、2つのGTX 1080 GPU、およびNVIDIAドライバ367.44で、bashシェルを使って実行するシステムで行っています。
CUDA を使用して記述する場合、使用する CUDA リソースを管理および制御できることは知っていますが、コンパイルされた CUDA 実行ファイルを実行する場合、コマンド ラインからどのように管理するのでしょうか。
どのように解決するのですか?
を設定していないことが原因でした。
CUDA_VISIBLE_DEVICES
変数が正しく設定されています。
CUDAデバイスを指定する場合
1
を設定すると、例えば
CUDA_VISIBLE_DEVICES
を使って
export CUDA_VISIBLE_DEVICES=1
または
CUDA_VISIBLE_DEVICES=1 ./cuda_executable
前者は現在のシェルの寿命に対して変数を設定し、後者はその特定の実行可能な呼び出しの寿命に対してのみ変数を設定します。
複数のデバイスを指定したい場合は
export CUDA_VISIBLE_DEVICES=0,1
または
CUDA_VISIBLE_DEVICES=0,1 ./cuda_executable
関連
-
[解決済み] Cudamemcpy関数の使用法
-
[解決済み] cuda atomicAdd のサンプルで正しい出力が得られない
-
[解決済み] CUDAコンテキストとは何ですか?
-
[解決済み] ファンネルシフトとは?
-
[解決済み] CUDAドライバのバージョンがCUDAランタイムのバージョンに対して不足しています。
-
[解決済み] cudaMemcpyToSymbolとcudaMemcpyの比較 なぜまだ残っているのか (cudaMemcpyToSymbol)
-
[解決済み] nvcc fatal : Visual Studio 12.0 が PATH に追加されているが、コンパイラ 'cl.exe' が PATH に見つからない。
-
[解決済み] ハードウェアなしでCUDAプログラミングができるGPUエミュレータ【終了しました
-
[解決済み] GPU上のCUDAアクティビティを監視するためのtopライクなユーティリティ
-
[解決済み] AMD GPU上でCUDAを動作させることは可能ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】NVIDIA NVML Driver/library version mismatch [終了しました。]
-
[解決済み] ジョブを実行するGPUはどのように選択するのですか?
-
[解決済み] Cudamemcpy関数の使用法
-
[解決済み] このCUDAカーネルの起動パラメータを理解する
-
[解決済み] cudaMemcpyToSymbolとcudaMemcpyの比較 なぜまだ残っているのか (cudaMemcpyToSymbol)
-
[解決済み] nvcc fatal : Visual Studio 12.0 が PATH に追加されているが、コンパイラ 'cl.exe' が PATH に見つからない。
-
[解決済み] ハードウェアなしでCUDAプログラミングができるGPUエミュレータ【終了しました
-
[解決済み] X サーバーを特定の GPU で実行するように xorg.conf ファイルを変更するにはどうすればよいですか?(複数のGPUを使用しています) [クローズド].
-
[解決済み】CUDAランタイムAPIを使用してエラーをチェックする標準的な方法は何ですか?
-
[解決済み】CuDNNのインストールを確認する方法は?