OpenCL на AMD APU и картах с драйверами Mesa 3D

Leap 15.1 и 15.2.
Железо: AMD Ryzen 3 3200G.

Долго пытался заставить работать AMD ROCm. Он работает, но медленно.

Наконец-то поставил OpenCL драйвера от Pro (amdgpu-pro).

Установка:

  1. Скачать установщик с сайта AMD.
    Лучше наверное взять файл, поддерживающий ваше железо.
    Я взял файл для Vega64: amdgpu-pro-20.40-1147287-sle-15.2.tar.xz

  2. Распаковать файл во временную папку.

  3. Запустить оттуда

amdgpu-pro-install --opencl=legacy,pal --headless

Можно добавить:
“-y” чтобы не отвечать на вопросы
“–no-dkms” - то ли нужно, то ли нет. Посмотрим как ОС будет ядро обновлять, могут быть глюки.

  1. Перезагрузить систему.

У меня встройка GPU Vega 8.
Система видит pal драйвера, legacy = orca - не видит.

В итоге скорость по сравнению с ROCm 3.3 и 3.10 выросла в 4-8 раз.
Мерял с помощью clpeak, luxmark-linux64-v3.1.
luxmark на CPU заработал быстрее - похоже, помогает GPU.
FAHBench заработал, с ROCm на OpenCL не хотел.
SVP 4 с Pro работает хорошо, с ROCm тормозил и вешал VLC.

Blender benchmark-launcher 2.0.5: требует ‘GLIBC_2.27’.
Запускать либо benchmark-launcher-cli, либо как здесь](https://bugzilla.opensuse.org/show_bug.cgi?id=1163301).
На CPU - грузит на 100% и греется, на GPU (OpenCL) - CPU свободен и холоден.
Но расчёт bmw27 выполняется на CPU быстрее - 8,5 мин вместо 14,3.

Стало:


:~> glxinfo | grep -i OpenGL **
OpenGL vendor string: AMD**
OpenGL renderer string: AMD RAVEN (**DRM 3.33.0**, 5.3.18-lp152.57-default, LLVM 9.0.1)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.3.2
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.3.2
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 20.3.2
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions: 

Было:


:~> glxinfo | grep -i opengl 
**OpenGL vendor string: X.Org**
OpenGL renderer string: AMD RAVEN (**DRM 3.36.0**, 5.5.5-3.g5157fff-default, LLVM 9.0.1)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 20.0.0
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 20.0.0
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 20.0.0
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

Похоже что установка amdgpu-pro поменяла драйвер amdgpu с Mesa на AMD.

Тесты проводились с видеопамятью объёмом 1 ГиБ. Возможно, нужно больше.