UBUNTU22.04にRX470のドライバーが入らない

最近のAIブームで筆者もまあまあいろいろなことをしているが、とにかく計算資源が足らない。

そこではるか昔に使っていたRX470が二枚ほどあったのでこれを活用し、何らかの形で現在のメインPCの肩代わりをさせようと思った。

が、ドライバーを入れる際にかなりつまずいたのでそれの共有。

環境

入れたてほやほやのUBUNTU Desktop 22.04.3 LTS

RX470 2枚

CPU:3400G

インストール

ここからドライバーを持ってくる。

今回はOpenCLをインストールすることにする。Llama.cppのOpenBlastに使ってみようと思う。

RadeonにはROCmがあるが、RX470はROCmとOpenCL(ROCm)のサポートが終了しているため、今回はlegacy版のドライバーを入れる。

1
2
dpkg -i amdgpu-install-VERSION.deb(ご自身の環境に合わせてVERSIONを変更)
amdgpu-install --opencl=legacy --accept-eula

--accept-eulaを付けないとエラーを吐いてうまくいかなかった。

さてエラーを吐かずにインストールできたのでclinfoコマンドでGPUが表示されるはずだ。

表示されなかった場合、inxi -Gコマンドを使う。

1
2
3
Graphics:
  Device-1: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] driver: amdgpu v: kernel
  Device-2: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] driver: amdgpu v: kernel

正常ではこのように表示される。driveramdgpuなことを確認。

筆者Tips

筆者はここでつまずいたがdriverが正常にインストールされず、N/Aと表示されていた。

インストールできているとunloadedamdgpuが表示されている。

その際にはmodprobe amdgpuとしてドライバーを再起動してあげるとよい。

結果

大体うまくいった、が、いくつか問題が発生している。

1.一枚しかOpenCLが動作しない。

2枚あるRX470のうち1枚のみしかOpenCLが動作していないようである。現状モニターには出力されており、壊れているわけではなく、clinfoもほぼ正常に見える。

2.clinfoに謎のデバイスがみられる。

ほぼ正常というのは

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
NULL platform behavior
  clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  No platform
  clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)   No platform
  clCreateContext(NULL, ...) [default]            No platform
  clCreateContext(NULL, ...) [other]              Success [AMD]
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  Success (1)
    Platform Name                                 AMD Accelerated Parallel Processing
    Device Name                                   gfx803
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU)  Success (1)
    Platform Name                                 AMD Accelerated Parallel Processing
    Device Name                                   gfx803
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ACCELERATOR)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_CUSTOM)  No devices found in platform
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_ALL)  Success (1)
    Platform Name                                 AMD Accelerated Parallel Processing
    Device Name                                   gfx803

というものが表示されている。

gfx803はRX470のことなので、何かがおかしいのかもしれない。

研究室の一角 - にほんブログ村
Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Hugo で構築されています。
テーマ StackJimmy によって設計されています。