ゲーミングPCのローカルディープラーニング環境セットアップ
ゲーミングPCを買いました
噂のワクチン副作用です。というわけでとりあえずディープラーニング環境を構築したのでメモします。
Docker編とネイティブCUDA編の2本立てです。GPUはNVIDIA RTX3060です。PCに関して詳しくは、以下記事参照ください。
Docker編
Dockerセットアップ
直接CUDA入れるなんて、そんな怖いことなかなかできないですよね。
そんな我々の強い味方がDockerでのGPU使用です。以下記事を参考にインストールしていきます。
Dockerイメージ、NVIDIA GPUの型番、Nvidiaドライバのバージョンによって動いたり動かなかったりするので注意しましょう。自分の場合は、対応しているはずの組み合わせのバージョンでも学習がうまく動かなかったりしたので、動かなかったらとりあえずうまくいくバージョンがみつかるまで試しましょう。
TensorFlow/PyTorchのバージョンは、以下のリリースノートを参照しましょう。
Docker動作
Dockerイメージを落として、Docker runしましょう。
TensorFlowの場合、私は、以下のバージョンがビンゴでした。
$ docker run --gpus all --rm --name ngc -p 8888:8888 -it nvcr.io/nvidia/tensorflow:21.03-tf2-py3
PyTorchの場合は、以下コマンド実行しました。
$ docker run --gpus all --rm --name ngc -p 8888:8888 -it nvcr.io/nvidia/pytorch:21.08-py3
実行したら、以下のようにDockerが立ち上がります。
Docker内でJupyter Labを起動します。
$ jupyter-lab
実行すると、最後に以下のような表示がでます。
http://hostname:8888/?token=xxxxxxxxxxxxxxxxxx
ブラウザでhostnameをlocalhostに変更してアクセスしましょう。
http://localhost:8888/?token=xxxxxxxxxxxxxxxxxx
アクセスできました!
GPU確認
GPUが正しく認識されているか確認しましょう。Jupyte LabのNotebook上でコマンド実行します。
TensorFlowの場合は以下です。
from tensorflow.python.client import device_lib
device_lib.list_local_devices()
PyTorchの場合は以下です。
import torch
print(torch.cuda.is_available())
print(torch.cuda.get_device_name())
print(torch.cuda.get_device_capability())
ディープラーニングの学習
とりあえずローカルで学習してみたいと思います。題材は、拙作「からあげ先生のAI自作教室」です。買ってね。
この書籍はGoogle Colaboratoryというクラウドサービスで実行することを想定していますが、GitHubのサポートサイトのJupyter Notebookを使えば、ローカルのGPUでも実行できるのです。
できるのですって、実は初めて試したんですけどね。ガハハハ。
試しに画像認識のノートブックを実行します。
Jupyter LabのTerminalを開いて以下コマンドを実行してセットアップします。
$ apt update
$ apt install -y git
$ pip3 install pillow
$ pip3 install matplotlib
$ git clone https://github.com/karaage0703/karaage-ai-book
あとは、以下のようにノートブック開けばGoogle Colaboratoryと同じ感覚で学習していくことができます。
うごく…うごくぞ!
ネットワーク関係のエラーでイメージが落とせない
何故かネットワーク関係のエラーになることがありました。
$ docker pull nvcr.io/nvidia/pytorch:21.08-py3
Error response from daemon: received unexpected HTTP status: 502 Bad Gateway
検索したら、たまにあることらしいです(!?)後日トライしたらOKになりました。
生CUDAインストール
まだやってません。ごめんなさい!やったら追記します。以下参考記事。
まとめ
からあげ先生とCUDAとの戦いは始まったばかりだ!(未完)
参考リンク
以下GPU設定は試したが、効果ありませんでした。
関連記事
Discussion