LoginSignup
2
1

More than 3 years have passed since last update.

Pytorch-ROCm DockerでPytorch-ROCmをビルドしてみる(ROCm2.4編)

Posted at

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がインストールできます。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1