LoginSignup
3
3

More than 3 years have passed since last update.

ROCm 3.7 で Navi で OpenCL が動くようになりました

Last updated at Posted at 2020-08-30

最新情報

ROCm 3.10 だと Navi GPU がハングするようになりました.
(e.g. rocminfo などを実行)

ROCm で Navi は, オフィシャルから正式対応があるまで(あれば良いですが...)あきらめましょう.

発端

長らく ROCm で Navi は動きませんでしたが, 3.7 からひっそりと OpenCL は動くようになりました.

HIP(clang 利用) はまだうごかない: https://qiita.com/syoyo/items/240a1b08cb72f1ea6fbe
上記 tweet にあるように, (Ubuntu の場合)自前で最新 upstream カーネル(or Navi 対応 dkms module?)を使うなどすればいけるかもはしれません.

また, 3.7 から OpenCL imaging 部分も open source になったようで, OpenCL 周りのより OSS 化が進んでいます.

環境

  • Ubuntu 20.04.1
  • RX 5700 無印
  • X570 mobo

セットアップ

ROCm の手順にあるとおりです.

render group

Ubuntu 20.04 からは, /dev/kfd(AMD GPU HW へのインターフェイス?) の権限が代わり, render group に追加も必要になっていますので注意しましょう.

動作確認(OpenCL)

/opt/rocm-3.7.0/opencl/bin/clinfo

で確認します.

libOpenCL.so が rocm のを使うように(本来は /etc/OpenCL/vendors の ICD 設定で見に行く .so を指定したほうがよいのであろうが),

LD_LBRARY_PATH/opt/rocm-3.7.0/opencl/lib にパスを通しておきます.

xmrig で cryptonight-heavy(Haven)を動かしてみます.

そのままでは libOpenCL.so 関連の探索がうまくいかないのか, OpenCL 見つからないエラーになるので,

--opencl-loader=/opt/rocm-3.7.0/opencl/lib/libamdocl64.so

として直接指定します.

* ABOUT        XMRig/6.3.2 gcc/9.3.0
 * LIBS         libuv/1.34.2 OpenSSL/1.1.1f hwloc/2.1.0
 * HUGE PAGES   supported
 * 1GB PAGES    disabled
 * CPU          AMD Ryzen 9 3950X 16-Core Processor (1) x64 AES
                L2:8.0 MB L3:64.0 MB 16C/32T NUMA:1
 * MEMORY       2.2/94.3 GB (2%)
 * DONATE       1%
 * ASSEMBLY     auto:ryzen
 * POOL #1      haven.miner.rocks:4005 algo cn-heavy/xhv
 * COMMANDS     hashrate, pause, resume, results, connection
 * ADL          press e for health report
 * OPENCL       #0 AMD Accelerated Parallel Processing/OpenCL 2.0 AMD-APP (3182.0)
 * OPENCL GPU   #0 0b:00.0 Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] (gfx1010) 1750 MHz cu:18 mem:6949/8176 MB
 * CUDA         disabled
[2020-08-30 18:16:42.095]  net      use pool haven.miner.rocks:4005  51.38.152.26
[2020-08-30 18:16:42.095]  net      new job from haven.miner.rocks:4005 diff 30000 algo cn-heavy/xhv
[2020-08-30 18:16:42.095]  opencl   use profile  cn-heavy  (2 threads) scratchpad 4096 KB
|  # | GPU |  BUS ID | INTENSITY | WSIZE | MEMORY | NAME
|  0 |   0 | 0b:00.0 |       864 |     8 |   3456 | Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] (gfx1010)
|  1 |   0 | 0b:00.0 |       864 |     8 |   3456 | Navi 10 [Radeon RX 5600 OEM/5600 XT / 5700/5700 XT] (gfx1010)
[2020-08-30 18:16:42.368]  opencl   GPU #0 compiling...
[2020-08-30 18:16:54.703]  net      new job from haven.miner.rocks:4005 diff 30000 algo cn-heavy/xhv
[2020-08-30 18:17:00.754]  opencl   GPU #0 compilation completed (18386 ms)
[2020-08-30 18:17:00.757]  opencl   READY threads 2/2 (18662 ms)
[2020-08-30 18:17:23.399]  opencl   accepted (1/0) diff 30000 (359 ms)
[2020-08-30 18:17:42.181]  opencl   #0 0b:00.0 109W 58C 2289RPM 1750/875MHz
[2020-08-30 18:17:42.181]  miner    speed 10s/60s/15m 1342.2 n/a n/a H/s max 1343.3 H/s
[2020-08-30 18:17:44.078]  net      new job from haven.miner.rocks:4005 diff 21428 algo cn-heavy/xhv
[2020-08-30 18:18:01.697]  opencl   accepted (2/0) diff 21428 (359 ms)
[2020-08-30 18:18:42.284]  opencl   #0 0b:00.0 132W 67C 2282RPM 1750/875MHz

Voila! :tada:

Powerlimit 運用でハッシュレート 1340 H/s 出ました.
本来は 2000 H/s が期待されるところですが, intensity なり調整すれば出るかしらん?

ETH マイニング性能

Teamredminer 0.7.9 で確認してみます.

rocm-smi --setsclk 2 で,

GPU 0 [61C, fan 69%]       ethash: 48.62Mh/s, avg 47.19Mh/s

48 MH/s @ 110 W でした.

amdgpu-pro(プロプライエタリ OpenCL ドライバ)でも大体同等のワットパフォーマンスでしたので, ROCm 版 OpenCL で性能が落ちるのは確認できませんでした(ので良い!)

動きはするが... 将来が不安

Navi で動くというのは ROCm 3.7 リリースノートにはありません.

今回の進展は CDNA に向けての布石でしょうから, 今後 ROCm で RDNA できちんと OpenCL が動作するか + RDNA Navi/RDNA2 BigNavi 自体が正式サポートするかどかは不明です.
(一応ソースコードには gfx10xx 系(Navi)の対応はあるが)

また, github issue のやり取りを見る限り, 最近はより HPC 顧客(Frontier とかでしょうね)向けに業務しており, 一般ユーザ向けはないがしろにされています.

一般ユーザ向けには, 引き続き通常の amdgpu ドライバ(で OpenCL)を利用したほうがよいと思われます.

amdgpu, amdgpu-pro のメモ
https://qiita.com/syoyo/items/154e0be7157a579e1d32

3
3
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
3
3