この記事は, Linuxを利用して研究を行なっていく中で私がつまずいてしまったポイントをまとめていくものです。同じような状況で苦しんでいる方々の参考になれば嬉しいです。Linuxつまずきポイント集の目次は以下のページをご覧ください。
【超初心者お悩み解決】プログラミングつまずきポイント記事まとめページ
この記事は, Linuxを利用して研究を行なっていく中で私がつまずいてしまったポイントをまとめていくものです。同じような状況で苦しんで...
スポンサーリンク
読みたい場所へジャンプ!
環境
●Ubuntu 16.04
現象
共同GPUの使い方が分からない。
Ubuntu上のターミナルから.pyをGPU上で動かす方法が分からない。
解決策
sshでGPUにログイン
nvidia-smiというコマンドの利用
CUDA_VISIBLE_DEVICESという環境変数の利用
sshでGPUにログイン
$(ローカルマシン上で) ssh [使いたいGPUのマシン名]
このコマンドで,お使いのローカルマシンからGPUサーバにアクセスすることができます。
GPU使用状況の確認
$(GPUマシン上で) nvidia-smi
このコマンドを利用すれば,現在使用しているGPUの番号が分かります。基本的に,1つの番号では1つのプロセスを実行することが前提であるため,自分がGPUを使いたい場合は他の番号を利用する必要があります。これを知らずに適当な番号のGPUを利用してしまうと,使用中の方から鬼の形相でしかめっ面をされることになってしまいます。
今回は,空いている番号1を使用してみましょう。GPU番号を指定するために利用されるのが「CUDA_VISIBLE_DEVICES」です。
GPU番号の指定
$(GPUマシン上で) CUDA_VISIBLE_DEVICES=1 python train.py
$(GPUマシン上で) nvidia-smi
GPU番号に1を指定して「train.py」を実行してみました。その後,nvidia-smiを叩くとしっかりとGPU番号1が新たに利用されていることが分かります。
ひとこと
.pyのプログラムの中でも,GPUに値を渡す処理を記述しなければなりません。例えばpytorchではdeviceを「torch.device(“cuda” if torch.cuda.is_available() else “cpu”)」と指定することで,GPU環境の場合にはGPUを利用し,CPU環境であればCPUを利用する便利なコードを書くことができます。