2021-06-09 Blender, OpenCL и Radeon ProRender
м |
м |
||
Строка 1: | Строка 1: | ||
Получилось завести под линуксом Blender на радеоне с OpenCL и Radeon ProRender. | Получилось завести под линуксом Blender на радеоне с OpenCL и Radeon ProRender. | ||
− | За последние лет 10 пытался это сделать несколько раз, ни разу не получалось. OpenCL всегда был болью и страданием, и вообще возникает ощущение, что на него все положили с прибором, включая самих AMD. Я, правда, всё надеюсь, т.к. монополизм нивидии не люблю по причине того, что они ставят палки в колёса разработчикам открытых драйверов. | + | За последние лет 10 пытался это сделать несколько раз, ни разу не получалось. OpenCL всегда был болью и страданием, и вообще возникает ощущение, что на него все положили с прибором, включая самих AMD. Я, правда, всё надеюсь на улучшения, т.к. монополизм нивидии не люблю по причине того, что они ставят палки в колёса разработчикам открытых драйверов. |
Сейчас наконец получилось. Получилось на карточке Radeon RX 5500M ("Navi 14"). Увы, не через Mesa - ей для работы на новых радеонах не хватает реализации libclc - не хватает файла /usr/lib/clc/gfx1012-amdgcn-mesa-mesa3d.bc и подобных. | Сейчас наконец получилось. Получилось на карточке Radeon RX 5500M ("Navi 14"). Увы, не через Mesa - ей для работы на новых радеонах не хватает реализации libclc - не хватает файла /usr/lib/clc/gfx1012-amdgcn-mesa-mesa3d.bc и подобных. | ||
Строка 7: | Строка 7: | ||
Но, по крайней мере, получилось без полного перехода на закрытый драйвер, т.е. с использованием открытого модуля ядра. | Но, по крайней мере, получилось без полного перехода на закрытый драйвер, т.е. с использованием открытого модуля ядра. | ||
− | + | В общих чертах - достаточно скачать драйвер 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%, что нужны, но поставил до кучи | ||
+ | |||
+ | Ещё понадобилось сделать <tt>adduser свой_юзер render</tt>, чтобы был доступ к /dev/kmt. | ||
+ | |||
+ | Правда, есть плохая новость: | ||
В общем, плохая новость: на Mesa OpenCL для новых карточек (Navi и подобных) не работает. | В общем, плохая новость: на Mesa OpenCL для новых карточек (Navi и подобных) не работает. |
Версия 15:55, 8 июня 2021
Получилось завести под линуксом 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.