GPU関連でよく使うコマンドまとめ

NVIDIA製GPUについて、触る機会が多くなったので纏めてみた。

[更新]
AWSだとこちらが便利
 - https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/install-nvidia-driver.html
 - こちらで使いたいDriverを見つける: 
https://www.nvidia.com/Download/index.aspx?lang=en-us

initでインストールする場合は以下のように書いた方がサイレントでインストール可能。

```
KERNEL_VERSION=`uname -r`
./NVIDIA.run --silent --kernel-source-path=/usr/src/kernels/$KERNEL_VERSION
```

## プロセッサの種類
NVIDIAのサイトを見るといくつかあり、またドライバーをダウンロードする際にも複数あるのでそれぞれ用途について調べてみた。

 - Geforce
ゲーム、3D映画向け。

 - Quadro
画像処理向け。クリエイティブ用途に最適化されたGPU。

 - Tegra
モバイル向け。

 - NVS
デジタルサイネージなどのパソコン以外のディスプレイ向け。

 - Tesla
データセンター向けのワークステーションで利用する計算性能をもつもの。

 - GRID
仮想GPUの技術。ハイパーバイザに組み込まれている。
Amazon EC2にも載っているもの。

 - その他
3D Vision,ION,Legacy(旧モデル)などがある。

## GPUの種類確認

```
lspci | grep -i nvidia
00:03.0 VGA compatible controller: NVIDIA Corporation GK104GL [GRID K520] (rev a1)
```


## nvidia driverのバージョン確認コマンド
cat /proc/driver/nvidia/version



## cudaのバージョン確認のコマンド
$CUDA_ROOT/nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2015 NVIDIA Corporation
Built on Tue_Aug_11_14:27:32_CDT_2015
Cuda compilation tools, release 7.5, V7.5.17

## GPUの使用状況がわかるコマンド
```
$ nvidia-smi -l
    
+------------------------------------------------------+                       
| NVIDIA-SMI 352.79     Driver Version: 352.79         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GRID K520           On   | 0000:00:03.0     Off |                  N/A |
| N/A   24C    P8    17W / 125W |     11MiB /  4095MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
Wed Aug 31 19:38:45 2016       
+------------------------------------------------------+                       
| NVIDIA-SMI 352.79     Driver Version: 352.79         |                       
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GRID K520           On   | 0000:00:03.0     Off |                  N/A |
| N/A   24C    P8    17W / 125W |     11MiB /  4095MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID  Type  Process name                               Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
↑ここに使われているものが出る
```

```
$ nvidia-smi dmon -s pu -d 5
# gpu   pwr  temp    sm   mem   enc   dec
# Idx     W     C     %     %     %     %
    0    17    24     0     0     0     0
    0    17    24     0     0     0     0
    0    17    24     0     0     0     0
    0    17    24     0     0     0     0
    0    17    24     0     0     0     0
    0    17    24     0     0     0     0
    0    17    24     0     0     0     0
    0    17    24     0     0     0     0
    0    17    24     0     0     0     0
    0    17    24     0     0     0     0
    0    17    24     0     0     0     0
```

## Amazon Linuxへのインストールの注意点
 - AMIの場合は `/opt/nvidia/cuda` の下にcuda tool kitの内容が展開されているが、runfileでインストールした場合は `/usr/local/cuda` の下に展開される。
 - 概ね、[ここ](https://github.com/pfnet/chainer-test/blob/master/docker.py)のレポジトリと[公式](http://docs.nvidia.com/cuda/#axzz4So7izOLR)を参考に、NVIDIA driver, CUDA toolKit, cuDNNをインストールする。※chainer用途
 - NVIDIA driverとCUDA toolkitの組み合わせで動作しないことがある。ドライバのバージョンを変えると上手くいく。
 - 上のレポジトリにあるPATHを参考に環境に合わせて通すこと。


明日はぼへぼへさんです！(漫画読んでます!)