ROCm https://github.com/RadeonOpenCompute/ROCm と amdgpu-pro ドライバを両方インストールしている場合,
VEGA GPU で OpenCL を使うには, ROCm の方を見るようにしないとダメでした.
CPU: Ryzen5 1600
Mobo: B350
OS: Ubuntu 16.04.3
Kernel: 4.11(ROCm kernel)
GPU: VEGA 56 (PCI-Gen3 スロット. Gen2 だとそもそも ROCm が動かない)
ROCm: 1.6.148
amdgpu-pro: 17.30
ROCm とは?
グラフィックスだけでなく, Compute に特化したソフトウェアスタックのようです.
CUDA + ヘテロジニアス計算環境のスタックみたいな感じでしょうか.
レイトレーシング, 機械学習, マイニングするなら ROCm のほうがフィットしそうですね!
仮定
ROCm 環境で OpenCL runtime パッケージを入れておく.
amdgpu-pro パッケージも別途入れておく.
ubuntu の opencl-icd パッケージあたりはインストールしない(インストールされていれば消しておく)
背景
ROCm の OpenCL は developer preview のようなので, amdgpu-pro ドライバも入れて, amdgpu-pro の OpenCL を使おうとしましたが, RX 470 などの Polaris では clinfo
でデバイス認識しますが, VEGA では認識されず(/opt/amdgpu-pro/bin/clinfo
はクラッシュし, apt で入る clinfo
では VEGA GPU が認識されない)困っていました.
解決
LD_LIBRARY_PATH
で /opt/rocm/opencl/lib/x86_64
の libOpenCL.so
を見るように設定すると OpenCL プログラムが動きました.
VEGA では, ROCm + amdgpu-pro 環境だと, ROCm のほうを使わないとダメでした.
問題点
ただし, ROCm の OpenCL だと性能があまりでなかったり, amdgpu-pro OpenCL でも Blender の OpenCL kernel がコンパイルできなかったりと, いろいろ issue が上がっています.
https://github.com/RadeonOpenCompute/ROCm/issues
https://community.amd.com/thread/220517
xmr-stak-amd も VEGA ではコンパイルに失敗します.
ROCm. amdgpu-pro 共に時期アップデートではコンパイラやドライバなどいろいろ改善されるようですが, VEGA + OpenCL はしばらくは熟成待ちですね.
(2017 年 12 月 26 日追記: ROCm 1.7 でそれなりに改善されて, xmr-stak がコンパイルできるようになりました)
TODO
amdgpu-pro だけの環境で VEGA で amdgpu-pro の OpenCL が動くか確認する.