アカデミック

【Linuxお悩み解決】共同GPUサーバの使い方と心構え

この記事は, Linuxを利用して研究を行なっていく中で私がつまずいてしまったポイントをまとめていくものです。同じような状況で苦しんでいる方々の参考になれば嬉しいです。Linuxつまずきポイント集の目次は以下のページをご覧ください。

【超初心者お悩み解決】プログラミングつまずきポイント記事まとめページこの記事は, Linuxを利用して研究を行なっていく中で私がつまずいてしまったポイントをまとめていくものです。同じような状況で苦しんでい...
本記事で紹介する解決策がBestという保証はできません。正確な情報を発信するように心掛けていますが図らずも誤った情報を記載してしまう場合があります。もしご指摘等がありましたら,コメント欄またはお問い合わせページよりご連絡下さい。

環境

●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を利用する便利なコードを書くことができます。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です