https://qiita.com/T_keigo_wwk/items/42c018c202a58104da67
この続きといった感じです。
前回は動いてるのかどうか微妙・・と行った感じでしたが最近またDocker imageが更新されたりしたので実際動かしてみたいと思います。
ただこのDocker image、pytorchが元々インストールされているような便利な代物ではなく自前でビルドするのに必要な環境がそろってるだけでpullして即使えるような代物ではないと点で注意が必要です。
ビルドには半日近くかかります。
#ホストマシンでの作業
ここでは~home/data
を作業ディレクトリにします
cd ~home/data
git clone https://github.com/pytorch/pytorch.git
cd pytorch
git submodule update --init --recursive
#Docker runさせる
$ sudo docker pull rocm/pytorch:rocm2.4_ubuntu16.04_pytorch
$ docker run --name pytroch_rocm -it -v /home/***/data/:/data --privileged --rm --device=/dev/kfd --device=/dev/dri --group-add video rocm/pytorch:rocm2.4_ubuntu16.04_pytorch
以前とは異なり現在は一々gfx906などGPUアーキテクチャの指定が無用になりました
ここではホストマシンディレクトのマウントは$HOME/data
をコンテナディレクトリの/data
でしています。
***の部分はホームディレクトリの絶対パスなのでpwd $HOME
なりして入れてください
ここなどを参考に動かしていきたいと思います。
http://blog.gpueater.com/ja/2019/03/20/00013_rocm_pytorch/
最近までまともな公式ドキュメントはありませんでした最近ビルド方法が追加されたらしく今まで省略気味だったスクラッチでのビルド方法も一応載ってるようです。
#コンテナ内での環境構築
cd ~
apt update
apt upgrade
apt install nano #viしかないため、viで十分です!って人は要らない
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash ./Miniconda3-latest-Linux-x86_64.sh
#せっかくなのでbashrcにexport HCC_AMDGPU_TARGET=gfx906を追記しておくとよい(Vega20ならgfx906,Vega10ならgfx900,Polalisならgfx806)
source .bashrc
conda create -n py37 python=3.7
conda activate py37
これでpy37環境を整えることができました。
#pytorch-rocmのビルド
なんでdockerコンテナでわざわざ一々buildせんといかんのだみたいな気持ちはあるんですが公式ドキュメントにそう書いてあるのでどうしようもないです。
cd /data/pytorch
./.jenkins/pytorch/build.sh
大体5時間ほどかけて当方の環境ではビルドしました。とても時間がかかります
#pytorchのテスト
pip listを見てみます。
# pip list
Package Version
---------- ---------------
certifi 2019.6.16
future 0.17.1
numpy 1.16.4
pip 19.1.1
PyYAML 5.1.1
setuptools 41.0.1
six 1.12.0
torch 1.2.0a0+2132ea1
typing 3.7.4
wheel 0.33.4
torchが入ったことがわかります。
テストスクリプトがコレで走るので走らせてみましょう
.jenkins/pytorch/test.sh
pip list
Package Version
--------------- ---------------
absl-py 0.7.1
attrs 19.1.0
certifi 2019.6.16
future 0.17.1
grpcio 1.21.1
hypothesis 4.24.6
Markdown 3.1.1
mypy 0.711
mypy-extensions 0.4.1
ninja 1.9.0.post1
numpy 1.16.4
Pillow 6.0.0
pip 19.1.1
protobuf 3.8.0
PyYAML 5.1.1
setuptools 41.0.1
six 1.12.0
tb-nightly 1.15.0a20190624
torch 1.2.0a0+2132ea1
torchvision 0.3.0a0+05ba3f5
typed-ast 1.4.0
typing 3.7.4
Werkzeug 0.15.4
wheel 0.33.4
追加で更にインストールされます
これでひとまずpytorchの環境構築は終了です。
ここらでタイミングでdocker commitなりしてコンテナを保存するとよいと思います。
#pip installなどで新規にコンテナ内でビルド済みpytorch-rocmをインストールする方法
conda activate hoge
など任意のpython環境を用意してからコンテナ内の
/pytorch/.jenkins/pytorch/test.sh
でbuild済みのtorchがインストールできます。