Моя главная цель состоит в том, чтобы сделать Блендер 2.82a способным обнаружить GPU моей системы, затем используют, поскольку OpenCL вычисляют для крепления времени в рендеринге.
Проблема, кажется, моя версия распределения Ubuntu, слишком высоко, как я имею 19.10 (с ядром 5.5.11-050511-lowlatency
) + компонент OpenCL AMDGPU-PRO может только официально поддерживать до Ubuntu 18.04, то же переходит к ROCm.
Я действительно пробовал, устанавливают OpenCL AMDGPU-PRO с помощью его сценария установки, предназначающегося только для компонента OpenCL (через --headless
), и даже вручную установите один за другим пакет; все без успеха. Это ясно, как указано, не поддерживают разоблаченный в сообщении об ошибке. Я хотел бы попробовать еще раз с ROCm, но его пакет, кажется, является большим. Без предварительно созданного пакета, доступного для моего дистрибутива, я предполагаю, что он приведет то же к сбою.
Таким образом, каковы были бы мои опции, если возвращение к 18,04 будет последним средством в установке драйвера OpenCL для моего GPU (APU от Ryzen 3 2200 г, чтобы быть точным, у меня нет дискретного GPU) вместе с уже установленным драйвером OpenGL/вулкана с открытым исходным кодом от Мезаструктуры?
Править:
Тем временем я сделал то, через что я могу для проверения вещей путем установки OpenCL 1.1 libclang-common-10-dev libclc-amdgcn libclc-dev libclc-r600 libllvm10 mesa-opencl-icd
пакеты. Это показывает значимую информацию через clinfo
. Но Блендер все еще не обнаружил GPU как устройства OpenCL.
Обновление 1:
Я протестировал с ROCm. С хорошими отчетами отсюда, и здесь, это становится ясной версией выпуска Ubuntu 19,10, не должна быть проблема, только что нуждаться в надлежащей версии ядра. Таким образом я вернулся своя версия ядра назад к 5.3.x (конкретно используют 5.3.18 универсальных, поскольку 5.3 указан как поддерживаемая версия для ROCm, и из отчета).
Обратите внимание, что я минимально устанавливаю пакеты, столь же установленные в 2-й ссылке отчета, как пакеты ROCm огромны, затем следуют меньше инструкции по установке от README.md его страницы GitHub. Хотя я иду eoan
и пакет от xenial
, Я действительно рискую на данный момент. Все передали. Я могу проверить через clinfo
или /opt/rocm-3.1.0/opencl/bin/x86_64/clinfo
оба дают значимый результат, что у меня теперь есть OpenCL 2.1, но без найденного устройства!!!.
Результат clinfo
Number of platforms 1
Platform Name AMD Accelerated Parallel Processing
Platform Vendor Advanced Micro Devices, Inc.
Platform Version OpenCL 2.1 AMD-APP (3084.0)
Platform Profile FULL_PROFILE
Platform Extensions cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
Platform Host timer resolution 1ns
Platform Extensions function suffix AMD
Platform Name AMD Accelerated Parallel Processing
Number of devices 0
NULL platform behavior
clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...) AMD Accelerated Parallel Processing
clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)
clCreateContext(NULL, ...) [default] No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_CPU) No devices found in platform
clCreateContextFromType(NULL, CL_DEVICE_TYPE_GPU) No devices found in platform
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) No devices found in platform
ICD loader properties
ICD loader Name OpenCL ICD Loader
ICD loader Vendor OCL Icd free software
ICD loader Version 2.2.11
ICD loader Profile OpenCL 2.1
Результат /opt/rocm-3.1.0/opencl/bin/x86_64/clinfo
Number of platforms: 1
Platform Profile: FULL_PROFILE
Platform Version: OpenCL 2.1 AMD-APP (3084.0)
Platform Name: AMD Accelerated Parallel Processing
Platform Vendor: Advanced Micro Devices, Inc.
Platform Extensions: cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
Platform Name: AMD Accelerated Parallel Processing
ERROR: clGetDeviceIDs(-1)
Тестирование Asides с Блендером все еще не обнаруживает GPU, правильно поскольку теперь у меня есть проблема с устройством, не найденным.
Я далее занимаюсь расследованиями...
Обновление 2:
Проблема решила, хотя производительность не хороша. См. мой ответ этого вопроса ниже.
Наконец, я делаю это работами, и вот результат clinfo
(двоичный файл, связанный от ROCm).
umber of platforms: 1
Platform Profile: FULL_PROFILE
Platform Version: OpenCL 2.1 AMD-APP (3004.6)
Platform Name: AMD Accelerated Parallel Processing
Platform Vendor: Advanced Micro Devices, Inc.
Platform Extensions: cl_khr_icd cl_amd_event_callback cl_amd_offline_devices
Platform Name: AMD Accelerated Parallel Processing
Number of devices: 1
Device Type: CL_DEVICE_TYPE_GPU
Vendor ID: 1002h
Board name: Unknown AMD GPU
Device Topology: PCI[ B#7, D#0, F#0 ]
Max compute units: 8
Max work items dimensions: 3
Max work items[0]: 1024
Max work items[1]: 1024
Max work items[2]: 1024
Max work group size: 256
Preferred vector width char: 4
Preferred vector width short: 2
Preferred vector width int: 1
Preferred vector width long: 1
Preferred vector width float: 1
Preferred vector width double: 1
Native vector width char: 4
Native vector width short: 2
Native vector width int: 1
Native vector width long: 1
Native vector width float: 1
Native vector width double: 1
Max clock frequency: 1100Mhz
Address bits: 64
Max memory allocation: 1825361100
Image support: Yes
Max number of images read arguments: 128
Max number of images write arguments: 64
Max image 2D width: 16384
Max image 2D height: 16384
Max image 3D width: 2048
Max image 3D height: 2048
Max image 3D depth: 2048
Max samplers within kernel: 16
Max size of kernel argument: 1024
Alignment (bits) of base address: 2048
Minimum alignment (bytes) for any datatype: 128
Single precision floating point capability
Denorms: No
Quiet NaNs: Yes
Round to nearest even: Yes
Round to zero: Yes
Round to +ve and infinity: Yes
IEEE754-2008 fused multiply-add: Yes
Cache type: Read/Write
Cache line size: 64
Cache size: 16384
Global memory size: 7301444400
Constant buffer size: 1825361100
Max number of constant args: 8
Local memory type: Scratchpad
Local memory size: 65536
Max pipe arguments: 16
Max pipe active reservations: 16
Max pipe packet size: 1825361100
Max global variable size: 1642824960
Max global variable preferred total size: 7301444400
Max read/write image args: 64
Max on device events: 1024
Queue on device max size: 8388608
Max on device queues: 1
Queue on device preferred size: 262144
SVM capabilities:
Coarse grain buffer: Yes
Fine grain buffer: Yes
Fine grain system: No
Atomics: No
Preferred platform atomic alignment: 0
Preferred global atomic alignment: 0
Preferred local atomic alignment: 0
Kernel Preferred work group size multiple: 64
Error correction support: 0
Unified memory for Host and Device: 1
Profiling timer resolution: 1
Device endianess: Little
Available: Yes
Compiler available: Yes
Execution capabilities:
Execute OpenCL kernels: Yes
Execute native function: No
Queue on Host properties:
Out-of-Order: No
Profiling : Yes
Queue on Device properties:
Out-of-Order: Yes
Profiling : Yes
Platform ID: 0x7f6233d65f10
Name: gfx902
Vendor: Advanced Micro Devices, Inc.
Device OpenCL C version: OpenCL C 2.0
Driver version: 3004.6 (PAL,HSAIL)
Profile: FULL_PROFILE
Version: OpenCL 2.0 AMD-APP (3004.6)
Extensions: cl_khr_fp64 cl_amd_fp64 cl_khr_global_int32_base_atomics cl_khr_global_int32_extended_atomics cl_khr_local_int32_base_atomics cl_khr_local_int32_extended_atomics cl_khr_int64_base_atomics cl_khr_int64_extended_atomics cl_khr_3d_image_writes cl_khr_byte_addressable_store cl_khr_fp16 cl_khr_gl_sharing cl_khr_gl_depth_images cl_amd_device_attribute_query cl_amd_vec3 cl_amd_printf cl_amd_media_ops cl_amd_media_ops2 cl_amd_popcnt cl_khr_image2d_from_buffer cl_khr_subgroups cl_khr_gl_event cl_khr_depth_images cl_khr_mipmap_image cl_khr_mipmap_image_writes cl_amd_copy_buffer_p2p
Давайте нагоним здесь немного. Теперь моя система
apt
команда.Точка после завершает установку ROCm. Необходимо загрузить последний драйвер AMD. С моей записи это - версия 19.50, точная ссылка является amdgpu-pro-19.50-967956-ubuntu-18.04.tar.xz. Не волнуйтесь о версии выпуска Ubuntu, даже Вы в 19,10 как мой случай, важная вещь могла бы состоять в том, чтобы остаться в ядре 5.3.x для безопасности, которая удовлетворит и ROCm и драйверу AMD.
Затем Вы используете / изменяют сценарий от tuxutku здесь. Можно прокомментировать строку загрузки удаленного файла, поскольку Вы теперь загружаете его сами, затем действуете офлайн против такого файла в файловой системе вместо этого. Проявите хорошую заботу о последней команде, в которую она скопирует файлы результата /
. Можно даже прокомментировать, что строка и делает это вручную сами для безопасности также.
Выгода из сценария - то, что мы ничего действительно не устанавливаем от пакета драйвера AMD, но просто берем совместно использованную библиотеку, и несколько файлов конфигурации затем помещают в нашей системе. ROCm будет взаимодействовать с ним. Это вовлекает совместно использованную библиотеку переименования для предотвращения конфликта в случае, если у Вас есть работа, AMDGPU-Pro установленная уже также, таким образом, это изолирует проблему.
Помните это /opt/OpenCL/vendors/amdocl64.icd
имеет libamdocl64.so
как его содержание. Мы уже скопировали извлеченный .so
файл к /
таким образом это будет относиться к нему вместо связанного ROCm's .so
файл. Если Вы обратитесь к ROCm's, то он не будет работать и выкрикнет ошибку никакого найденного устройства.
Теперь все сделанные. Можно проверить все вещи при помощи отдельного двоичного файла clinfo
или тот связался от ROCm, чтобы проверить, подходили ли вещи.
Еще лучше имейте некоторые находящиеся в OpenCL приложения для проверения его. Я использую набор тестов Phoronix т.е. pts/juliagpu
или pts/luxmark
протестировать возможность OpenCL. Для Блендера это обнаруживает и перечисляет как после
Выберите первый (неизвестный), кажется, истинный GPU для Блендера, как выбрано второй, который Вычисляет установка Сцены "GPU", отобразится серым.
Да, необходимо удостовериться, что это не greyed, чтобы быть уверенным, что это - действительно GPU тот рендеринг. Или можно использовать radeontop
контролировать действие при рендеринге сцены.
Наконец, хотя это работает теперь, и Блендер обнаруживает мой GPU. Но производительность хуже, чем прежде использования ЦП с отстающей загрузкой, когда Вы нажимаете для рендеринга сцены. Эта проблема Блендера указывает, что только официально поддерживает собственный драйвер. Таким образом следующий шаг попытался бы просто использовать AMDGPU-PRO и проверить вещи, но Вы должны вовлечь усилие в правильно переключатель между драйвером с открытым исходным кодом и закрыли тот.