RadeonでOpenCLしたい
ちょっと深層学習を試したくて転がっていたRadeon RX470とあまりのパーツを使って1台PCを組んだ。 PlaidMLを通してTensorflowが使えれば目的のソフトが使えるはずなのだが、意外と道のりが長そうなので記事にすることにした。
Dockerでやりたい
結論から言うと無理だった。Dockerコンテナの中でRadeonを使うのは無理らしい。GeForceなら割と簡単にできそうだった。
Ubuntu 19.10でやりたい
これも無理そうだった。Pythonを使うなら新しい方が便利だろうと最新のUbuntuをインストールし、環境をセットアップしてみた。いざplaidml-setupを走らせると、GPUが見つからない。
Default Config Devices: No devices. Experimental Config Devices: llvm_cpu.0 : CPU (LLVM) Using experimental devices can cause poor performance, crashes, and other nastiness.
lspciでは認識されているが、clinfoでは見えない。
$ lspci | grep Radeon 01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] (rev cf) 01:00.1 Audio device: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] $ clinfo Number of platforms 0
調べてみるとプロプライエタリなドライバが必要らしい。amdgpu-pro linuxで検索すると色々出てくるが、結構古いVerのリリースノートが上に出てくるので注意。 2020年1月現在、19.50が最新っぽいのでそれを落としてきて、展開、インストール。
$ wget https://drivers.amd.com/drivers/linux//19.50/amdgpu-pro-19.50-967956-ubuntu-18.04.tar.xz $ tar -xf amdgpu-pro-19.50-967956-ubuntu-18.04.tar.xz $ sudo amdgpu-pro-19.50-967956-ubuntu-18.04/amdgpu-pro-install
色々言われるのだが、要は
ERROR: This package can only be installed on Ubuntu 18.04.
とのことでUbuntu18.04じゃなきゃだめなようだ。
Ubuntu 18.04でやりたい
Ubuntu 18.04で上記の手順でやってみたらすんなり動いた。やっぱり公式がやれって言うことは余程の理由がなければ守っといたほうが良い。