2021-06-09 Blender, OpenCL и Radeon ProRender

Материал из YourcmcWiki
Перейти к: навигация, поиск

Получилось завести под линуксом Blender на радеоне с OpenCL и Radeon ProRender.

За последние лет 10 пытался это сделать несколько раз, ни разу не получалось. OpenCL всегда был болью и страданием, и вообще возникает ощущение, что на него все положили с прибором, включая самих AMD. Я, правда, всё надеюсь на улучшения, т.к. монополизм нивидии не люблю по причине того, что они ставят палки в колёса разработчикам открытых драйверов.

Сейчас наконец получилось. Получилось на карточке Radeon RX 5500M ("Navi 14"). Увы, не через Mesa - ей для работы на новых радеонах не хватает реализации libclc - не хватает файла /​usr/lib/clc/gfx1012-amdgcn-mesa-mesa3d.bc и подобных.

Но, по крайней мере, получилось без полного перехода на закрытый драйвер, т.е. с использованием открытого модуля ядра.

В общих чертах - достаточно скачать драйвер AMDGPU-Pro, извлечь пакеты и поставить всё, что относится к OpenCL, не ставя всё остальное.

Для AMDGPU-Pro 20.40 это:

  • amdgpu-core, amdgpu-pro-core (пустые метапакеты)
  • opencl-amdgpu-pro-comgr
  • opencl-amdgpu-pro-icd
  • ocl-icd-libopencl1-amdgpu-pro

Для AMDGPU-Pro 20.50 это:

  • amdgpu-core, amdgpu-pro-core (пустые метапакеты)
  • opencl-rocr-amdgpu-pro
  • comgr-amdgpu-pro
  • hsa-runtime-rocr-amdgpu
  • hsakmt-runtime-rocr-amdgpu
  • ocl-icd-libopencl1-amdgpu-pro
  • opencl-rocr-amdgpu-pro
  • libdrm-amdgpu-amdgpu1, libdrm-amdgpu-common, libdrm2-amdgpu требуются по зависимостям, но по факту не нужны, - теоретически можно поправить зависимости пакета hsakmt-runtime-rocr-amdgpu и эти пакеты не ставить
  • rocm-device-libs-amdgpu-pro, llvm-amdgpu-pro-rocm, libllvm-amdgpu-pro-rocm - не уверен на 100%, что нужны, но поставил до кучи

Ещё понадобилось сделать adduser свой_юзер render, чтобы был доступ к /dev/kmt.

Правда, есть плохая новость:

В общем, плохая новость: на Mesa OpenCL для новых карточек (Navi и подобных) не работает.


Интересный вопрос - как завести на Linux, во-первых, Radeon-овский OpenCL, а во-вторых, Radeon ProRender для блендера.


Очень меня расстраивает тот факт, что Blender-овский Cycles на Radeon-ах работает, как говно.

Давным-давно хотел добиться работы Blender-а на линуксе с Radeon-ом. Наконец-таки умудрился. Конкретно - на Radeon RX 5500M ("Navi 14").

Правда, увы,


Hi, just a note for future users who face the same issue on how I solved it. I installed Blender 2.93 from the official site on Debian testing and Radeon ProRender 3.1.0 "for Ubuntu 20" using Blender Addons -> Install... It showed me this error message. Installing python3-cffi via apt-get didn't help. The problem was that Radeon ProRender contains _cffi_backend.cpython-37m-x86_64-linux-gnu.so which is for Python 3.7 and official Blender uses Python 3.9. So I linked /usr/lib/python3/dist-packages/_cffi_backend.cpython-39-x86_64-linux-gnu.so to ~/.config/blender/2.93/scripts/addons/rprblender/_cffi_backend.cpython-39-x86_64-linux-gnu.so and it started to work. By the way, I use a closed-source OpenCL driver from AMDGPU-Pro 20.40 with open-source 3D and kernel drivers. I.e. it's sufficient to install opencl-amdgpu-pro-comgr, opencl-amdgpu-pro-icd and ocl-icd-libopencl1-amdgpu-pro and put

/opt/amdgpu-pro/lib/x86_64-linux-gnu /opt/amdgpu-pro/lib/i386-linux-gnu

into /etc/ld.so.conf.d/10-amdgpu-pro.conf to get OpenCL working.

[ Хронологический вид ]Комментарии

(нет элементов)

Войдите, чтобы комментировать.