LoginSignup
7

More than 3 years have passed since last update.

【Linux】GPU逆引きコマンド

Last updated at Posted at 2019-04-23

nvidiaGPU便利コマンド関連

GPUでやりたい時、GPUの動作がおかしい時にやるコマンド。
ディープラーニングの学習用、仮想通貨のマイニングなどのGPU使用などを念頭にしてます。

コマンドは基本的にLinuxで使える。

GPUタスクをモニタしたい


nivida-smi -l

でメモリ使用率、温度、プロセスなどが出ます。
-l オプションをなくすと一度だけ表示させます。

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.48                 Driver Version: 410.48                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla P100-PCIE...  Off  | 00000000:04:00.0 Off |                    0 |
| N/A   52C    P0    76W / 250W |   7023MiB / 12198MiB |     21%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla P100-PCIE...  Off  | 00000000:82:00.0 Off |                    0 |
| N/A   39C    P0    75W / 250W |   1333MiB / 12198MiB |     67%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      9964      C   python                                       431MiB |
|    1     22430      C   python                                      1323MiB |
+-----------------------------------------------------------------------------+

学習に使用するGPUを指定したい

マルチGPUを利用し学習するときはコマンドライン上で使用するGPUを指定する。
指定を行わないと自動的に全てのGPUを掴んでしまい、迷惑をかけることも。
ちゃんと使うGPUは明示的にした方がベター。

bash shellの場合


# GPU0,1両方を利用
export CUDA_VISIBLE_DEVICES=0,1
# 学習開始
python train.py
# GPU0,1を利用し学習が行われる

#GPU0のみ利用
export CUDA_VISIBLE_DEVICES=0
# 学習開始
python train.py
# GPU0のみで学習が行われる

csh系の場合


# GPU0,1両方を利用
setenv CUDA_VISIBLE_DEVICES 0,1
# 学習開始
python train.py
# GPU0,1を利用し学習が行われる

#GPU0のみ利用
setenv CUDA_VISIBLE_DEVICES 0
# 学習開始
python train.py
# GPU0のみで学習が行われる

GPU、OSがよく落ちてしまう場合

冷却性能不足などでサーバが落ちてしまうことがある場合、GPUに電力リミットをつけると良い。


>nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.48                 Driver Version: 410.48                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla P100-PCIE...  Off  | 00000000:04:00.0 Off |                    0 |
| N/A   52C    P0    76W / 250W |   7023MiB / 12198MiB |     21%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla P100-PCIE...  Off  | 00000000:82:00.0 Off |                    0 |
| N/A   39C    P0    75W / 250W |   1333MiB / 12198MiB |     67%      Default |
+-------------------------------+----------------------+----------------------+

200Wに電力制限してみる。


# permuteモード。再起動するまで設定を保持する
>sudo nvidia-smi -pm 1
>sudo nvidia-smi -pl 200
>nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.48                 Driver Version: 410.48                    |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla P100-PCIE...  Off  | 00000000:04:00.0 Off |                    0 |
| N/A   52C    P0    76W / 200W |   7023MiB / 12198MiB |     21%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Tesla P100-PCIE...  Off  | 00000000:82:00.0 Off |                    0 |
| N/A   39C    P0    75W / 200W |   1333MiB / 12198MiB |     67%      Default |
+-------------------------------+----------------------+----------------------+

無事に電力リミットが200Wになったことを確認。
50W下げた程度ではパフォーマンスはあまり変わらないのでサーバが不安定なときにおすすめ。
これをやることで動作が安定になる場合も多い(本当は冷却機能や電源を拡充したほうがいいが。。)

GPUをリセットしたいリセット


# GPU0をリセット
sudo nvidia-smi --gpu-reset -i 0

どのユーザがGPUを利用しているか調べたい


sudo fuser -v /dev/nvidia*

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7