RX470で機械学習ことはじめ その3 ~ROCmとTensorFlowのインストール~
※2019.8.16追記:ROCmのバージョンが2.7になりましたが、Ubuntu Japanese teamで配布されているUbuntu18.04日本語remixでは正常にtensorflowが動作しません。オリジナルの英語版Ubuntu18.04だと動く模様。
ようやく機械学習に触れる
初心者である自分にとってROCmは分からない言葉だらけで、とても混乱する。
実際にやる作業の難易度は高くないんだけど、ROCmだとかMIOpenだとかHIPだとかROCkだとかOpenCLだとかOpenCVだとか、ああもう何がなんなんだ!という感じ。
単語とコマンドを検索しながら雲をつかむような気持ちで進めている。
AMDのGPUで機械学習するなら、GPUのドライバは削除しておこう
その1でインストールしたRX470のドライバは使えないどころか、ROCmのインストールの邪魔になる。
ROCmに含まれるドライバとバッティングして面倒なことになるので、ROCmをインストールする前に削除しておこう。
noroue4.hatenablog.com
noroue4.hatenablog.com
ROCmのインストール
ようやくROCmのインストールを始める。
基本的にROCmのGithubページのUbuntu Support - installing from a Debian repositoryに従う。
まず最初に
sudo apt update sudo apt dist-upgrade
でUbuntu18.04を最新の状態にアップデートして、
sudo apt install libnuma-dev sudo reboot
で前提となるパッケージをインストールして、再起動する。
次に、Radeonのリポジトリのgpgキーを取得し、登録する。
wget -qO - http://repo.radeon.com/rocm/apt/debian/rocm.gpg.key | sudo apt-key add - echo 'deb [arch=amd64] http://repo.radeon.com/rocm/apt/debian/ xenial main' | sudo tee /etc/apt/sources.list.d/rocm.list
wgetはダウンロードコマンド。これでgpgキーをダウンロードしてきて、apt-key addコマンドでキーを登録している。
二行目は、リポジトリの定義を保存して、aptコマンドで使えるようにしている。
これで、aptコマンドでRadeonのリポジトリサーバからROCm関連のパッケージをインストールすることができるようになったので、ROCmのインストールに取り掛かれる。
sudo apt update sudo apt install rocm-dkms
AMDGPUドライバが先にインストールされていると、ここでエラーになってしまう。あらかじめアンインストールしておこう。
次に、自分のUbuntuログインアカウントがvideoグループに所属していないと権限の問題で操作ができないらしく、所属の変更をする。
groups
のコマンドで自分のログインアカウント名を確認して、
sudo usermod -a -G video ログインアカウント名
のコマンドを実行したら、いったん再起動する。
この時点ではvideoグループができていないように見えるが、再起動するとvideoグループが確認できる。
この時点で一応ROCmのインストールは完了していて、
/opt/rocm/bin/rocminfo
のコマンドでGPU情報が確認でき、GPUを認識していることが分かる。
RX470はGFX803として認識されている。
また、
/opt/rocm/bin/rocm-smi
のコマンドで、GPUの状態が分かる。
温度・消費電力・ファンの回転数・GPU使用率などが表示される。現在はもうちょっと更新されていて、VRAM使用量なども確認できる。
TensorFlowのインストール
TensorFlowのインストール方法もいくつかあるようだが、最も簡単らしいPIPを使う。
PIPはPythonのパッケージ管理ツールということで、これをインストールするとPIPを使って様々なパッケージをインストールできるようになる。
PIPとPython3のインストール
Python2版とPython3版があるようだが、今回はPython3版を使う。
sudo apt install python3-pip
これで、一緒にpython3もインストールされるようだ。
TensorFlowのインストール
pip3 install tensorflow-rocm
これでROCm版のTensorFlowがインストールされる。
問題なくインストールできたら、
python3
のコマンドでPythonの対話モード(一文ずつ書いて実行する)に入る。
そこで
import tensorflow
でTensorFlowのPythonパッケージをインポートできるか確認すると、ファイルが足りないというエラーが出るのでいろいろインストールしていく。
いったん
exit()
のコマンドでPython対話モードを抜けて
sudo apt install cxlactivitylogger miopen-hip miopengemm rocrand rocfft rocblas rccl
これで、再びPython対話モードで「import tensorflow」を打ち込むとTensorFlowのインポートが成功するはずだ。
機械学習の内容によっては、計算系のライブラリscipyも使うので
pip3 install scipy
もやっておくといい。
TensorFlowのインストールは完了したが
これで、TensorFlowのサンプルプログラムを拾ってきたら動くはずだ。
仮にtest.pyというファイルであれば、test.pyのあるフォルダで
python3 test.py
とコマンドを入れると動作する。
試しに、チュートリアルでよく使われるMNISTという数字認識訓練を実行してみたら、動作したようだ。(サンプルプログラムはMNISTでぐぐったらたくさん出てくる)
まだコピペレベルでしか扱えないので、TensorFlowの使い方を勉強したら続きを書く・・・と思う。
それではまた。