Ubuntu 16.04.6 LTS (GNU/Linux, x86_64) のGPUマシンの設定・TF1.13.1 / CUDA10.0 / cuDNN7.4.2
- 最終更新:2019/11/07
クリーンブートしたUbuntu16.04LTS マシンに,NVIDIA GPUを導入し,CuDA・cuDNNをセットアップしました. おもにtensorflow-gpuを使うためです.導入過程で色々とつまづいたので,得た知識をこのポストにまとめておきます.
実行環境
最終的に完成したマシンの動作環境は下記の通りです. latest update : 2019/05/15
- OS : Ubuntu 16.04.6 LTS (GNU/Linux 4.4.0-145-generic x86_64)
- Memory : 16 GB
- CPU(x8) : Intel Core i7-6700 CPU @ 3.40GHz
- GPU(x1) : NVIDIA Geforce GTX 1080
- NVIDIA CUDA : 10.0.130 (/usr/local/cuda-10.0/)
- NVIDIA cuDNN : 7.4.2.24 (/usr/lib/x86_64-linux-gnu/libcudnn.so.7.4.2)
- Python3 : 3.6.9 (/usr/bin/python3.6)
- Python2 : 2.7.12 (/usr/bin/python)
- tensorflow : 1.13.1 ($HOME/.local/lib/python3.6/site-packages)
- tensorflow-gpu : 1.13.1 ($HOME/.local/lib/python3.6/site-packages)
- keras : 2.2.4 ($HOME/.local/lib/python3.6/site-packages)
1. OS
- 方法1: unameコマンドを使う
uname
コマンドを使うと,「OS名,ホスト名,OSリリース,OSバージョン,マシンアーキテクチャ,CPUタイプ,プラットフォーム,OS名」が順に表示される.
$ uname -a
Linux XXXX 4.4.0-145-generic #171-Ubuntu SMP Tue Mar 26 12:43:40 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
- 方法2: /etc/issueをみる
マシンの「Linuxディストリビューション」が表示される.今回はUbuntu16.04.
$ cat /etc/issue
Ubuntu 16.04.6 LTS \n \l
- 方法3: /etc/lsb-releaseをみる
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION="Ubuntu 16.04.6 LTS"
- 方法4: /etc/os-releaseをみる
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="16.04.6 LTS (Xenial Xerus)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 16.04.6 LTS" VERSION_ID="16.04" HOME_URL="http://www.ubuntu.com/" SUPPORT_URL="http://help.ubuntu.com/" BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/" VERSION_CODENAME=xenial UBUNTU_CODENAME=xenial
- 方法5: /proc/versionをみる
/proc/version
をみると,Linuxカーネルの詳細が確認できる.
$ cat /proc/version
Linux version 4.4.0-159-generic (buildd@lgw01-amd64-042) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.10) ) #187-Ubuntu SMP Thu Aug 1 16:28:06 UTC 2019
2. HDD
2.1. HDDデバイスの確認
- dfコマンド
$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 7.8G 0 7.8G 0% /dev tmpfs 1.6G 34M 1.6G 3% /run /dev/sda1 214G 101G 103G 50% / tmpfs 7.9G 0 7.9G 0% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup tmpfs 1.6G 64K 1.6G 1% /run/user/1001 /dev/loop0 89M 89M 0 100% /snap/core/7270 /dev/loop1 384K 384K 0 100% /snap/patchelf/61 /dev/loop2 384K 384K 0 100% /snap/patchelf/69
3. メモリ
3.1. メモリデバイスの確認
- /proc/meminfoをみる
/proc/meminfo
をみると,メモリ容量の詳細を確認できる.
$ cat /proc/meminfo
MemTotal: 16377200 kB
MemFree: 3077848 kB
MemAvailable: 15767804 kB
Buffers: 363052 kB
Cached: 12274992 kB
SwapCached: 66936 kB
Active: 8048088 kB
Inactive: 4689560 kB
Active(anon): 25860 kB
Inactive(anon): 86584 kB
...
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 1907316 kB
DirectMap2M: 14815232 kB
DirectMap1G: 0 kB
3.2. 仮想メモリの状態確認
- 方法1: freeコマンド
free
を使う.
$ free
total used free shared buff/cache available
Mem: 16377148 300020 6661176 9876 9415952 15688968 Swap: 16720892 0 16720892
- 方法2: vmstatコマンド
vmstat
を使う.
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 0 90724 1771068 363852 9020168 322 295 335 492 1 1 2 0 97 1 0
- 方法3: topコマンド
top
を使う.
$ top
top - 20:17:14 up 56 days, 1:17, 5 users, load average: 2.02, 1.99, 1.66
Tasks: 180 total, 3 running, 177 sleeping, 0 stopped, 0 zombie %Cpu(s): 25.0 us, 0.0 sy, 0.0 ni, 75.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 16377200 total, 1078612 free, 5914516 used, 9384072 buff/cache KiB Swap: 16720892 total, 16630168 free, 90724 used. 10049856 avail MemPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14461 xxxxxxx 20 0 54.634g 1.768g 12740 R 100.0 11.3 18:30.96 python3
14499 xxxxxxx 20 0 54.634g 1.752g 12448 R 100.0 11.2 17:54.35 python3
1 root 20 0 119680 4616 3084 S 0.0 0.0 0:31.51 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.20 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:05.32 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root 20 0 0 0 0 S 0.0 0.0 18:07.52 rcu_sched
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
9 root rt 0 0 0 0 S 0.0 0.0 0:00.25 migration/0
...
4. CPU
4.1. CPUデバイスの確認
- 方法1: /proc/cpuinfoをみる
# CPUデバイスの確認 $ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 94
model name : Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
stepping : 3
microcode : 0xc6
cpu MHz : 800.062
cache size : 8192 KB
physical id : 0
siblings : 8
...
processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 94
model name : Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz
...
5. GPU
5.1. GPUデバイスの確認
lshw
コマンド
# GPUデバイスの確認 $ sudo lshw -C display
*-display
詳細: VGA compatible controller
製品: GP104 [GeForce GTX 1080]
ベンダー: NVIDIA Corporation
物理ID: 0
バス情報: pci@0000:01:00.0
バージョン: a1
幅: 64 bits
クロック: 33MHz
性能: pm msi pciexpress vga_controller bus_master cap_list rom
設定: driver=nvidia latency=0
リソース: irq:16 メモリー:de000000-deffffff メモリー:c0000000-cfffffff メモリー:d0000000-d1ffffff IOポート:e000(サイズ=128) メモリー:df000000-df07ffff
lspci
コマンド
lspci
でハードウェアデバイス一覧が確認できる.
# GPUデバイスの確認 $ lspci | grep -i nvidia
01:00.0 VGA compatible controller: NVIDIA Corporation GP104 [GeForce GTX 1080] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GP104 High Definition Audio Controller (rev a1)
5.2. NVIDIA ドライバ
下記のリンクから,自分のGPUにあうドライバを検索して,ダウンロードする.
今回,NVIDIA GeForce 1080に対応したドライバ情報は以下のようになった.
新しくGPUドライバ(NVIDIAドライバ)をインストールする前に,すでにインストールされているGPUドライバを確認する.
# マシンにインストール済みのNVIDIAドライバを一覧表示 $ dpkg -l | grep nvidia # apt-getでインストールできるNVIDIAドライバの一覧表示 $ apt-cache search "^nvidia-[0-9]{3}$"
# NVIDIA ドライバを提供している xorg-edgers レポジトリを追加する $ sudo add-apt-repository ppa:xorg-edgers/ppa -y $ sudo apt-get update
# ドライバ nvidia-396 をインストール $ sudo apt-get install -y nvidia-396 $ reboot
5.3. CUDA 10.0をマシンにインストール
- CUDA Toolkit Documentation > Release Notes > 1. CUDA Toolkit Major Components > CUDA Driver - https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html
- CUDA Toolkit Documentation - https://docs.nvidia.com/cuda/index.html
まず,CUDA・cuDNN・TensorFlow-GPUのバージョンを合わせる必要があります. 以下のリンクから,Tensorflow-gpuに対応するcuDNNとCUDAのバージョンを確認できます.
今回は,
で環境構築しようと思います.
以下のURLから,自分の環境にあったCUDA Toolkitパッケージをダウンロードし,マシンへインストールします.
- CUDA Toolkit Archive - https://developer.nvidia.com/cuda-toolkit-archive
注意:https://developer.nvidia.com/cuda-downloads は,最新バージョンのダウンロードリンクなので,ここから安易にダウンロードしてはいけない.特に,tensorflow-gpuは,最新のCUDA Toolkitに対応していないので注意する.CUDAとTensorflow-gpuのバージョンがあっていないと,たとえばImportError: libcublas.so.10.0が発生する. github.com
今回は,CUDA10.0で,マシンの環境として,
を選択しました.
対応するCUDA Toolkit(CUDA 10.0)の.debファイル(network)は「cuda-repo-ubuntu1604_10.0.130-1_amd64.deb」です.
この.debファイルをwget
コマンドを使って,マシンへダウンロードし,
$ wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_10.0.130-1_amd64.deb
dpkg
コマンドでパッケージとして保存します.さらに,apt
コマンドでcuda
パッケージをインストールします.
注意:公式に書かれているsudo apt-get install cuda
を実行すると自動的に最新版のCUDAがインストールされる.
# CUDA Toolkit(CUDA 10.0)をマシンにインストールする $ sudo dpkg -i cuda-repo-ubuntu1604_10.0.130-1_amd64.deb $ sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/7fa2af80.pub $ sudo apt-get update $ sudo apt-get install cuda-10-0
これでCUDA Toolkit(10.0)のインストールは完了です. あとは,環境変数を設定しましょう.
- CUDAの確認
CUDA Toolkit(CUDA 10.0)が正常にインストールされているか確認します.
# CUDAがインストールされているか確認 $ ls -l /usr/local/ | grep cuda
lrwxrwxrwx 1 root root 9 11月 7 16:51 cuda -> cuda-10.0
drwxr-xr-x 16 root root 4096 11月 7 16:51 cuda-10.0
/usr/local/
以下にcuda-10.0
というディレクトリがあり,かつリンク cuda -> cuda-10.0
が貼られています.
- CUDA Toolkit(cuda-10.0)のパス - /usr/local/cuda-10.0/bin
- NVIDIAドライバ(nvidia-418)のパス - /usr/lib/nvidia-418
次にnvcc
コマンドのPATHを通すために,~/.bashrc
に以下を追加して,source ~/.bashrc
で更新します.
# 環境変数$PATHにCUDA Toolkitのパスを追加
export PATH=/usr/local/cuda-10.0/bin:${PATH}
# 環境変数$LD_LIBRARY_PATHにCUDA Toolkitのパスを追加
export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64:${LD_LIBRARY_PATH}
# 環境変数$LD_LIBRARY_PATHにNVIDIAドライバのパスを追加
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia-418
- CUDAの詳細情報
CUDA Toolkitの詳細情報は,nvcc
コマンドで取得できます.
# CUDAの確認 $ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2018 NVIDIA Corporation
Built on Sat_Aug_25_21:08:01_CDT_2018
Cuda compilation tools, release 10.0, V10.0.130
nvcc
コマンドは,CUDA Toolkitに対応して「/usr/local/cuda-10.1/bin/nvcc」にあればOK
$ which nvcc
/usr/local/cuda-10.0/bin/nvcc
- CUDAのバージョン確認
CUDAのバージョンを確認したい場合,/usr/local/cuda/version.txt
をみればよい.
# CUDAのバージョン確認 $ cat /usr/local/cuda/version.txt
CUDA Version 10.0.130
5.4. cuDNN 7.4.2をマシンにインストール
- NVIDIA cuDNN - https://developer.nvidia.com/cudnn
NVIDIA Deep Learning SDK Documentation - https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html
cuDNNのインストール
cuDNNのインストールには,NVIDIA accountを登録(無料)してログインする必要があります. (注:https://developer.nvidia.com/rdp/cudnn-download は,最新バージョンのダウンロードリンクなので,ここから安易にダウンロードしてはいけない.
今回はCUDA10.0を使うので,「Download cuDNN v7.4.2 (Dec 14, 2018), for CUDA 10.0」を選択します.
インストールするマシンのOS(Ubuntu16.04)に合わせて,3つの.debファイルをダウンロードします.
- cuDNN Code Samples and User Guide for Ubuntu16.04 (Deb) - libcudnn7_7.4.2.24-1+cuda10.0_amd64.deb
- cuDNN Runtime Library for Ubuntu16.04 (Deb) - libcudnn7-dev_7.4.2.24-1+cuda10.0_amd64.deb
- cuDNN Developer Library for Ubuntu16.04 (Deb) - libcudnn7-doc_7.4.2.24-1+cuda10.0_amd64.deb
パッケージをダウンロードしたディレクトリで,パッケージをインストールします.
# cuDNN7.4.2 (for CUDA10.0)をインストール $ sudo dpkg -i libcudnn7_7.4.2.24-1+cuda10.0_amd64.deb $ sudo dpkg -i libcudnn7-dev_7.4.2.24-1+cuda10.0_amd64.deb $ sudo dpkg -i libcudnn7-doc_7.4.2.24-1+cuda10.0_amd64.deb
注意:3つの.devファイルには依存関係があるので,「libcudnn7 > libcudnn7-dev > libcudnn7-doc」の順番でインストールする.
5.5. cuDNNの動作確認
CUDA Toolkit(CUDA10.0)に付属しているサンプルコードを実行して,cuDNNの動作確認をします.
$ cd /usr/local/cuda-10.0/bin # ホームディレクトリにサンプルコードのあるディレクトリをコピー $ cuda-install-samples-10.0.sh ~ Copying samples to /home/uchiumi/NVIDIA_CUDA-10.0_Samples now... Finished copying samples. $ cd ~/NVIDIA_CUDA-10.0_Samples $ make $ cd 2_Graphics/volumeRender $ ./volumeRender # exeファイルを実行する $ cd $ rm -rfv ~/NVIDIA_CUDA-10.0_Samples/ # サンプルコードを消す。
5.6. cuDNNの確認
dpkg -l
コマンドでインストール済みのパッケージを一覧表示する.
# マシンにインストール済みのcuDNNパッケージを一覧表示 $ dpkg -l | grep cudnn
ii libcudnn7 7.4.2.24-1+cuda10.0 amd64 cuDNN runtime libraries
ii libcudnn7-dev 7.4.2.24-1+cuda10.0 amd64 cuDNN development libraries and headers
ii libcudnn7-doc 7.4.2.24-1+cuda10.0 amd64 cuDNN documents and samples
5.7. cuDNNの保存場所
# debパッケージが保存されているディレクトリを確認(-Lオプション) $ dpkg -L libcudnn7
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libcudnn.so.7.4.2
/usr/share
/usr/share/doc
/usr/share/doc/libcudnn7
/usr/share/doc/libcudnn7/changelog.Debian.gz
/usr/share/doc/libcudnn7/copyright
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libcudnn7
/usr/lib/x86_64-linux-gnu/libcudnn.so.7
5.9. CUDA(/usr/local/cuda-***/bin
)のPATHチェック
# 出力に"/usr/local/cuda-10.0/bin"が含まれているか? $ echo $PATH
5.10. CUDAとNVIDIAドライバ(/usr/lib/nvidia-***
)のPATHチェック
# 出力に"/usr/local/cuda-10.0/lib64"と"/usr/lib/nvidia-418"が含まれているか? $ echo $LD_LIBRARY_PATH
5.11. CUDAとnvcc
コマンドのPATHチェック
# 出力が"/usr/local/cuda-10.0/bin/nvcc"になっているか? $ which nvcc /usr/local/cuda-10.0/bin/nvcc
5.12. nvidia-smi
コマンドのPATHチェック
# 出力が"/usr/bin/nvidia-smi"になっているか? $ which nvidia-smi /usr/bin/nvidia-smi # GPUの状態が表示されているか? $ nvidia-smi Thu May 16 13:26:12 2019 +-----------------------------------------------------------------------------+ | NVIDIA-SMI 430.14 Driver Version: 430.14 CUDA Version: N/A | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 GeForce GTX 1080 Off | 00000000:01:00.0 Off | N/A | | 32% 42C P5 27W / 200W | 0MiB / 8118MiB | 0% Default | +-------------------------------+----------------------+----------------------+ +-----------------------------------------------------------------------------+ | Processes: GPU Memory | | GPU PID Type Process name Usage | |=============================================================================| | No running processes found | +-----------------------------------------------------------------------------+
6. Tensorflow-GPU
6.1. tensorflow インストール (1.10.0以上だとCUDAに対応していないかも)
以下のリンクから,Tensorflow-gpuに対応するcuDNNとCUDAのバージョンを確認する. - https://www.tensorflow.org/install/source#linux
なお,Version 1.16.4より最新のNumpyを使っている場合,import tensorflow
としたときに不具合が発生します.
pip3 numpy install==1.16.4
とすればOK.(下記参照)
github.com
Ubuntuの場合,
- sudo pip3でインストールしたもの
→/usr/local/lib/python3.?/site-packages/
へ保存 - pip3でインストールしたもの
→/home/<username>/.local/lib/python3.?/site-packages/
へ保存
# tensorflow インストール $ pip3 uninstall tensorflow-gpu $ pip3 install tensorflow-gpu==1.13.1 $ pip3 show tensorflow-gpu # version check
$ python3 Python 3.6.9 (default, Jul 3 2019, 15:36:16) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from tensorflow.python.client import device_lib >>> device_lib.list_local_devices() ...
[name: "/device:CPU:0"
device_type: "CPU"
memory_limit: 268435456
locality {
}
incarnation: 12399580590058509262
, name: "/device:XLA_GPU:0"
device_type: "XLA_GPU"
memory_limit: 17179869184
locality {
}
incarnation: 8346102148670114463
physical_device_desc: "device: XLA_GPU device"
, name: "/device:XLA_CPU:0"
device_type: "XLA_CPU"
memory_limit: 17179869184
locality {
}
incarnation: 16269880268349154236
physical_device_desc: "device: XLA_CPU device"
, name: "/device:GPU:0"
device_type: "GPU"
memory_limit: 7938857370
locality {
bus_id: 1
links {
}
}
incarnation: 9065886904258284582
physical_device_desc: "device: 0, name: GeForce GTX 1080, pci bus id: 0000:01:00.0, compute capability: 6.1"
]
7.ディスプレイ
7.1 ディスプレイマネージャ(DM)を確認
$ cat /etc/X11/default-display-manager /usr/sbin/lightdm
7.2 GUI/CUIの切り替え
systemctl
コマンドを使って,GUI/CUIの切り替えを行う.
#GUIログインが有効かどうか確認 $ sudo systemctl get-default graphical.target #GUIログインが有効
# CUIログインに変更 $ sudo systemctl set-default multi-user.target # GUIログインに変更 $ sudo systemctl set-default graphical.target
8.ディスクとファイルシステム
8.1. 現在のディレクトリ直下のファイル数を確認
ls
コマンドの出力結果の行数をwc
コマンドで数える.
# ファイル数を確認 $ ls -1 | wc -l
8.2. 現在のディレクトリ直下のファイルサイズを確認
ncdu
コマンドを使って,ファイルサイズを確認.
# ncduコマンドをインストール $ sudo apt-get install ncdu -y (Debian/Ubuntu) $ sudo yum install ncdu -y (RHEL系) # ルート直下でncduコマンドを起動 $ cd / $ ncdu
du
コマンドを使って,ファイルサイズを確認.du
は,ディスク使用量をディレクトリごとに集計して表示するLinuxコマンド.
# カレントディレクトリ直下のファイルおよびディレクトリのディスク使用量とその合計を表示する $ du -s -c * 84698948 Kaggle 1292748 NVIDIA_CUDA-10.1_Samples 705000 Research 107836 dataset 12 envinfo.txt 12 examples.desktop 9484 gym 7830428 workspace 1412 yt8m 686388 ダウンロード 4 テンプレート 4 デスクトップ 4 ドキュメント 4 ビデオ 4 ピクチャ 4 ミュージック 4 公開 95332296 合計
8.3. ディスクの空き領域を確認
df
コマンドを使って,ディスクの空き領域を確認./dev/sda1
が物理的な(ハードウェアレベルでの)データ容量.
# dfでディスクの空き領域を表示 # -hオプション: 読みやすいサイズ表記で表示する $ df -h Filesystem Size Used Avail Use% Mounted on udev 7.8G 0 7.8G 0% /dev tmpfs 1.6G 9.2M 1.6G 1% /run /dev/sda1 214G 111G 92G 55% / tmpfs 7.9G 184K 7.9G 1% /dev/shm tmpfs 5.0M 4.0K 5.0M 1% /run/lock tmpfs 7.9G 0 7.9G 0% /sys/fs/cgroup /dev/loop0 384K 384K 0 100% /snap/patchelf/79 /dev/loop3 90M 90M 0 100% /snap/core/7713 /dev/loop2 89M 89M 0 100% /snap/core/7396 tmpfs 1.6G 36K 1.6G 1% /run/user/108 tmpfs 1.6G 0 1.6G 0% /run/user/1001 /dev/loop4 384K 384K 0 100% /snap/patchelf/87
9. Docker
9.1. Dockerをインストール
9.2. Dockerチュートリアル
参考文献
- Linuxでコマンドラインからマシンスペックを確認する方法 https://qiita.com/DaisukeMiyamoto/items/98ef077ddf44b5727c29
- CUDA 9.0とcuDNN 7.0をUbuntu 16.04LTSにインストールする https://qiita.com/JeJeNeNo/items/b30597918db3781e20cf
- Ubuntu 16.04LTSにNVIDIAドライバ(nvidia-390)とCUDA 9.1を入れた時のメモ http://swytel.hatenablog.com/entry/2018/05/08/174943
- 環境構築 - Ubuntu 16.04 に NVIDIA ドライバをインストールする方法について http://pynote.hatenablog.com/entry/env-install-nvidia-driver-on-ubuntu1604