なんとなく日誌

覚え書きとか。twitter:https://twitter.com/noronoroxxxxxx

RX470で機械学習ことはじめ~ubuntu18.04インストールからradeontopのビルドまで~

先日買ったRX470で機械学習を始めてみたい。

noroue4.hatenablog.com
noroue4.hatenablog.com

まずはOSインストールとドライバの導入

どうやら、Radeon機械学習にはUbuntuを使うといいらしい。
デスクトップ用として人気のLinuxディストリビューションだ。
ということでUbuntu Japanese Teamというところで(公式なのかな?)公開されている日本語バージョンのUbuntu18.04をインストールする。

f:id:noroUE4:20190131235220j:plain
f:id:noroUE4:20190201001534p:plain
Ubuntuのデスクトップ
次に、AMDのホームページからドライバをダウンロード。
f:id:noroUE4:20190131235257j:plain
f:id:noroUE4:20190131235315j:plain
RX470のUbuntu18.04用ドライバをダウンロード
解凍してできたフォルダに入って、何もないところで右クリックして「端末で開く」を選択するとターミナル(Windowsでいうコマンドプロンプト)が開くので、「sudo ./amdgpu-install」と打つとインストールすることができる。
(機械学習をする場合、ROCmのインストールで一緒にドライバが入るので、ここでインストールしておくと問題が発生するかも!)
ただし、OpenCLを使う場合には「sudo ./amdgpu-install --opencl=pal,legacy」とオプションを付ける。機械学習にはたぶんOpenCLが必要?と思う。
(PALはVega10以降のGPU、Legacyはそれ以前のGPUらしい。RX470はVega以前だと思うけど自信がない)

radeontopでGPUメモリ使用量の確認

ところで、せっかくRX470には8GBのビデオメモリがあるので、どのくらい使用されているのか確認できると嬉しい。
「radeontop」を使うとAMDGPUのステータスを表示させることができるのだけど、Ubuntu公式リポジトリにあるradeontopでは、GPUメモリ使用量を読み込むことができない
仕方ないので、自分でradeontopをビルドしてみよう。

radeontopのソースをgithubからダウンロードして解凍したら、「radeontop-master」というフォルダができる。
radeontop-masterフォルダ内の何もないところを右クリックして「端末で開く」でターミナルを開き、「sudo make amdgpu=1」コマンドを打ち込むことでビルドできる。
この「amdgpu=1」のオプションが重要で、これがないとVRAM使用量を読み込めないそうだ。
これでエラーが出なければ完了なのだけど、実際には「pkg-config」なんてコマンドないよと言われる。
「sudo apt install pkg-config」でインストールしてから再度「sudo make amdgpu=1」を試すと、「pciaccess」「libdrm」「xcb」「xcb-dri2」というパッケージがないよって言われる。
「sudo apt install libpciaccess-dev」「sudo apt install libdrm-dev」「sudo apt install libx11-xcb-dev」「sudo apt install libxcb-dri2-0-dev」でインストールしてから再度「sudo make amdgpu=1」を試すと、「ncurse.h」なんてファイルないよって言われるので、
「sudo apt install libncurses5-dev」でインストールしてから再度「sudo make amdgpu=1」を試すと、(警告は出るけど)エラーが出ずに完了する。
最後に「sudo make amdgpu=1 install」でradeontopのビルドとインストールが完了する。
うまく動作するか試してみよう。
ターミナルで「sudo radeontop」のコマンドを打つと、VRAM使用量が表示されている。成功だ。

f:id:noroUE4:20190131224415p:plain
radeontopにVRAM使用量が表示されている
ちなみに、radeontop起動後に「c」キーを打つと色付きで表示される。
これで、どれくらいRX470のメモリが使われているか確認することができる。
機械学習にはまだ触ってないんだけども。
※ROCmインストールで導入されるドライバでは、上記radeontopでもメモリ使用量が読めない。
※と思ってたいたが、ROCm環境でもちゃんとradeontopでVRAM使用量が読み込めるようだ。
noroue4.hatenablog.com


GPU温度は、psensorを使うと見れるようだ。
「sudo apt install psensor」
でインストールできる。

f:id:noroUE4:20190201015610p:plain
psensor画面
※ROCmのインストールができたら、「/opt/rocm/bin/」にある「rocm-smi」を実行することでも温度・消費電力・ファンの回転数・GPU使用率等が分かるようだ。ただし、メモリ使用量は分からない?

続く
noroue4.hatenablog.com
noroue4.hatenablog.com