見出し画像

多分一番楽なGPU計算環境構築

GPUで機械学習環境構築するのって色んなドライバーのバージョンやらなんやらで禿げ上がりそうになるんですが、色々やってみてこれが多分一番楽そうなのでご紹介します。

想定環境

・Linux Mint 19.3
・RTX2070 SUPER
・tensorflowを使用
・Anacondaを使用

ドライバーを入れる

まずはNVIDIAのドライバーを入れます。
nouveauが動いている人は無効化する必要があるそうですが、私の環境では動いてなかったので特に設定していません。

sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
ubuntu-drivers devices

これで推奨のドライバー等が出てきますので、素直に最新のものを入れました。

modalias : pci:v000010DEd00001E84sv00001462sd000037B3bc03sc00i00
vendor   : NVIDIA Corporation
driver   : nvidia-driver-455 - third-party free recommended
driver   : nvidia-driver-440-server - distro non-free
driver   : nvidia-driver-450-server - distro non-free
driver   : nvidia-driver-435 - distro non-free
driver   : xserver-xorg-video-nouveau - distro free builtin
sudo apt install nvidia-driver-455

インストールできると再起動して以下を実行して、ドライバーの情報が表示されれば成功です。

nvidia-smi
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 455.32.00    Driver Version: 455.32.00    CUDA Version: 11.1     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  GeForce RTX 207...  On   | 00000000:01:00.0 Off |                  N/A |
| 31%   32C    P8     6W / 215W |     73MiB /  7982MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      1158      G   /usr/lib/xorg/Xorg                 71MiB |
+-----------------------------------------------------------------------------+

conda仮想環境を作る

今回はconda installにtensorflow, cuda, cudnnのバージョン合わせをお任せしようというやり方です。
なので、まずconda環境を作ります。

conda create --name NAME python=3.7

環境ができているかどうかは

conda info -e

で確認できます。
無事に作成できていたら、

conda activate NAME

で仮想環境をアクティベートしましょう。

tensorflow, cuda, cudnnインストール

ドライバーのバージョンが古い場合のみ対応するcuda→tensorflowという順番で、tensorflowのバージョンを特定してください。
例えばドライバーが384.81しか入らなかったら、cuda9.0になって、それに対応するtensorflowはtensorflow_gpu-1.12.0です。下記リンクを参照ください。

私の場合は455.32を入れれたので、cuda、tensorflowも最新のものを利用できます。以下を実行します。

conda install tensorflow-gpu

これでtensorflowだけでなく、cuda、cudnnも適切なバージョンが入ってしまいます。

# conda list tensorflow
tensorflow                2.2.0           gpu_py37h1a511ff_0
tensorflow-base           2.2.0           gpu_py37h8a81be8_0
tensorflow-estimator      2.2.0              pyh208ff02_0
tensorflow-gpu            2.2.0                h0d30ee6_0
# conda list cuda
cudatoolkit               10.1.243             h6bb024c_0
# conda list cudnn
cudnn                     7.6.5                cuda10.1_0

以下を実行してエラーが特になければGPUを正常に認識しています。

tensorflow.config.list_physical_devices("GPU")

まとめ

GPU計算環境を構築するのにすごい時間を奪われたので、最終的に簡単にできた方法を共有します。

この記事が気に入ったらサポートをしてみませんか?