Mugichoko's blog

Mugichoko’s blog

しがない研究者のプログラミングを中心としたメモ書き.

今更PyTorchマスターへの道 (1) - Dockerの準備

今更感がすごいですが,それでもPyTorchを触りたいことに変わりはないのでちまちまやっていきます.

目標

  1. Dockerで仮想環境を構築し,その上でPyTorchを走らせる
  2. Python Engineerさんのチュートリアルを学んでいく
  3. Encoder-decoderみたいな簡単な構造のネットワークを書けるようになる

スペック(人間)

スペック (PC)

Skull PCことNUC8i7HVKを使います.本体表面にいかつい髑髏のマークがついたIntel NUCです.このマシンにはもともとAMD製のVegaしか入っていないので,NVIDIAGPUをThunderbolt経由でeGPUとしてつないでいます.

  • CPU: Intel(R) Core(TM) i7-8809G CPU @ 3.10GHz
  • RAM: 32 GB
  • eGPU: NVIDIA GTX 1080Ti
  • OS: Windows 11
    • 11にしておくと,最新のGPUドライバを入れておくだけで何もせずにWSL2経由でGPUが使えます

Docker

インストール

  1. Docker Desktop for Windowsをインストールして立ち上げておく
  2. NVIDIA公式からCUDAを使えるUbuntu 18のDockerイメージをダウンロードしてコンテナを生成する
    • PowerShellから以下のコマンドを実行し,イメージからコンテナを作る
    • docker run --gpus all -it --name ubuntu18_cuda nvidia/cuda:10.2-devel-ubuntu18.04 bash
      • --gpus all:アクセス可能な全GPUを使う
      • --name [name]:コンテナの名前を付ける
      • nvidia/cuda:10.2-devel-ubuntu18.04:ダウンロードするイメージ名(他のバリエーションは公式を参照
    • 特定のドライブにマウントしたい場合は-v [path]を使う
      • docker run --gpus all -it --name ubuntu18_cuda -v D:/DockerData/ubuntu18_cuda:/home/ nvidia/cuda:10.2-devel-ubuntu18.04 bash
  3. 一度ダウンロードしたコンテナは以下のコマンドで再度立ち上げることができる
    • docker exec -it ubuntu18_cuda bash

動作確認

コンテナ上でnvidia-smiを実行して,以下と似たような情報が表示されれば問題なし.

>> nvidia-smi
Wed Jun 22 22:04:34 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 510.73.08    Driver Version: 512.96       CUDA Version: 11.6     |
|-------------------------------+----------------------+----------------------+
| 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  NVIDIA GeForce ...  On   | 00000000:0C:00.0  On |                  N/A |
| 23%   29C    P8    12W / 250W |    910MiB / 11264MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

PyTorch

インストール

conda create -n pytorch python=3.9
conda activate pytorch
conda install pytorch torchvision torchaudio cudatoolkit=11.3 -c pytorch

2行目は今回のUbuntu (Linux) 環境に合わせて公式ページで選んだ.

https://pytorch.org/get-started/locally/ より

動作確認

最後に,上記のGPUがPyTorchから見えているかを確認する.

>> python
Python 3.9.12 (main, Jun  1 2022, 11:38:51)
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
True
>>> torch.cuda.device_count()
1
>>> torch.cuda.current_device()
0
>>> torch.cuda.device(0)
<torch.cuda.device object at 0x7f857a817fd0>
>>> torch.cuda.get_device_name(0)
'NVIDIA GeForce GTX 1080 Ti'

問題なく動作しているようです.次回からPython Engineerさんのチュートリアルを見ていこうと思います.