Como resolver o problema com OpenCL no Blender e Davinci Resolve em placas AMD - Manjaro e Arch

Saudações camaradas, essa publicação aqui não é sobre o problema, mas sobre a solução que encontrei quando tive dificuldades pra fazer o Blender reconhecer minha GPU (Radeon RX 570). Também tive problemas para fazer funcionar o Davinci Resolve, que na verdade nem abria por conta do OpenCL.

O problema que tive basicamente consistia no Blender fechando toda vez que eu ia nas configurações, quando eu tentava renderizar algo no Cycles ou quando tentava visualizar objetos no modo de render, as vezes o consumo de memória RAM chegava a 100% e o computador simplesmente reiniciava.

Basicamente, a solução é instalar a versão 20.40.1 do driver opencl-amd porque a 20.45.1 não funciona muito bem, para isso, acesse o link para o pkgbuild nos repositórios do Arch, clique com o botão direito no corpo do texto e selecione a opção “salvar página como” e salve o arquivo com o nome de PKGBUILD na pasta que preferir, depois disso vá até essa pasta, abra um terminal e digite makepkg -si e faça a instalação da versão 20.40.1 do driver AMD com OpenCL. Depois da instalação, tanto o Blender quanto o Davinci Resolve devem passar a reconhecer sua GPU e permitir a opção de trabalhar com o OpenCL.

7 curtidas

Que triste que o 20.45.1 esta bugado.
Tenso.

1 curtida

Olá, @denielt ! :wave:

Fiquei interessadíssimo no que disse, visto os problemas que enfrentei recentemente com OpenCL no DaVinci Resolve nesse tópico criado por mim!

No meu caso, eu estou usando o Pop!_OS com os drivers 20.45, lançado em 17 de Dezembro de 2020 e com DaVinci Resolve versão 16.0.

Você poderia, por favor, detalhar qual a versão do DaVinci Resolve que está em sua máquina, de qual distribuição é o driver usado no seu Arch e também a versão da sua distro? Será de enorme ajuda se você puder me fornecer essas informações :hugs:, já que não estou contente em usar uma versão desatualizada do editor da Blackmagic! :disappointed:

Testarei a versão 20.40 no Pop!_OS por causa de sua indicação. :pray:

2 curtidas

Boa tarde, estou utilizando a versão 17.0-1 do Davinci Resolve, instalei pelo AUR, o pacote é esse aqui. O driver utilizado no meu sistema é do ubuntu, um pacote .deb, como já dito, da versão 20.40. Não estou utilizando Arch Linux, estou utilizando Manjaro, aqui vai as informações mais detalhadas:

 inxi -Fxz                                                       
System:
  Kernel: 5.9.16-1-MANJARO x86_64 bits: 64 compiler: gcc v: 10.2.1 
  Desktop: GNOME 3.38.3 Distro: Manjaro Linux 
Machine:
  Type: Desktop Mobo: ASUSTeK model: PRIME B450M-GAMING/BR v: Rev X.0x 
  serial: <filter> UEFI: American Megatrends v: 2006 date: 11/13/2019 
CPU:
  Info: 6-Core model: AMD Ryzen 5 2600 bits: 64 type: MT MCP arch: Zen+ 
  rev: 2 L2 cache: 3 MiB 
  flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm 
  bogomips: 81469 
  Speed: 3232 MHz min/max: 1550/3400 MHz boost: enabled Core speeds (MHz): 
  1: 3232 2: 1521 3: 1958 4: 1427 5: 1621 6: 1272 7: 2717 8: 1416 9: 3453 
  10: 1510 11: 1551 12: 1271 
Graphics:
  Device-1: AMD Ellesmere [Radeon RX 470/480/570/570X/580/580X/590] 
  vendor: XFX Pine driver: amdgpu v: kernel bus ID: 08:00.0 
  Display: x11 server: X.org 1.20.10 driver: loaded: amdgpu,ati 
  unloaded: modesetting resolution: <missing: xdpyinfo> 
  OpenGL: renderer: Radeon RX 570 Series (POLARIS10 DRM 3.39.0 
  5.9.16-1-MANJARO LLVM 11.1.0) 
  v: 4.6 Mesa 20.3.4 direct render: Yes 
Audio:
  Device-1: AMD Ellesmere HDMI Audio [Radeon RX 470/480 / 570/580/590] 
  vendor: XFX Pine driver: snd_hda_intel v: kernel bus ID: 08:00.1 
  Device-2: AMD Family 17h HD Audio vendor: ASUSTeK driver: snd_hda_intel 
  v: kernel bus ID: 0a:00.3 
  Sound Server: ALSA v: k5.9.16-1-MANJARO 
Network:
  Device-1: Realtek RTL8111/8168/8411 PCI Express Gigabit Ethernet 
  vendor: ASUSTeK driver: r8169 v: kernel port: f000 bus ID: 07:00.0 
  IF: enp7s0 state: up speed: 100 Mbps duplex: full mac: <filter> 
Drives:
  Local Storage: total: 447.13 GiB used: 10.05 GiB (2.2%) 
  ID-1: /dev/sda vendor: Kingston model: SA400S37480G size: 447.13 GiB 
Partition:
  ID-1: / size: 48.97 GiB used: 8 GiB (16.3%) fs: ext4 dev: /dev/sda2 
  ID-2: /boot/efi size: 269.5 MiB used: 312 KiB (0.1%) fs: vfat 
  dev: /dev/sda1 
  ID-3: /home size: 389.64 GiB used: 2.04 GiB (0.5%) fs: ext4 dev: /dev/sda3 
Swap:
  Alert: No Swap data was found. 
Sensors:
  System Temperatures: cpu: 48.1 C mobo: N/A gpu: amdgpu temp: 47.0 C 
  Fan Speeds (RPM): N/A gpu: amdgpu fan: 1123 
Info:
  Processes: 312 Uptime: 2h 00m Memory: 15.63 GiB used: 5.05 GiB (32.3%) 
  Init: systemd Compilers: gcc: 10.2.0 clang: 11.1.0 Packages: 1128 
  Shell: Zsh v: 5.8 inxi: 3.3.01 

clinfo                                                           
Number of platforms                               1
  Platform Name                                   AMD Accelerated Parallel Processing
  Platform Vendor                                 Advanced Micro Devices, Inc.
  Platform Version                                OpenCL 2.1 AMD-APP (3188.4)
  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                                 1
  Device Name                                     Ellesmere
  Device Vendor                                   Advanced Micro Devices, Inc.
  Device Vendor ID                                0x1002
  Device Version                                  OpenCL 1.2 AMD-APP (3188.4)
  Driver Version                                  3188.4
  Device OpenCL C Version                         OpenCL C 1.2 
  Device Type                                     GPU
  Device Board Name (AMD)                         Radeon RX 570 Series
  Device PCI-e ID (AMD)                           0
  Device Topology (AMD)                           PCI-E, 08:00.0
  Device Profile                                  FULL_PROFILE
  Device Available                                Yes
  Compiler Available                              Yes
  Linker Available                                Yes
  Max compute units                               32
  SIMD per compute unit (AMD)                     4
  SIMD width (AMD)                                16
  SIMD instruction width (AMD)                    1
  Max clock frequency                             1286MHz
  Graphics IP (AMD)                               8.0
  Device Partition                                (core)
    Max number of sub-devices                     32
    Supported partition types                     None
    Supported affinity domains                    (n/a)
  Max work item dimensions                        3
  Max work item sizes                             1024x1024x1024
  Max work group size                             256
  Preferred work group size (AMD)                 256
  Max work group size (AMD)                       1024
  Preferred work group size multiple (kernel)     64
  Wavefront width (AMD)                           64
  Preferred / native vector sizes                 
    char                                                 4 / 4       
    short                                                2 / 2       
    int                                                  1 / 1       
    long                                                 1 / 1       
    half                                                 1 / 1        (cl_khr_fp16)
    float                                                1 / 1       
    double                                               1 / 1        (cl_khr_fp64)
  Half-precision Floating-point support           (cl_khr_fp16)
    Denormals                                     No
    Infinity and NANs                             No
    Round to nearest                              No
    Round to zero                                 No
    Round to infinity                             No
    IEEE754-2008 fused multiply-add               No
    Support is emulated in software               No
  Single-precision Floating-point support         (core)
    Denormals                                     No
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 Yes
    Round to infinity                             Yes
    IEEE754-2008 fused multiply-add               Yes
    Support is emulated in software               No
    Correctly-rounded divide and sqrt operations  Yes
  Double-precision Floating-point support         (cl_khr_fp64)
    Denormals                                     Yes
    Infinity and NANs                             Yes
    Round to nearest                              Yes
    Round to zero                                 Yes
    Round to infinity                             Yes
    IEEE754-2008 fused multiply-add               Yes
    Support is emulated in software               No
  Address bits                                    64, Little-Endian
  Global memory size                              3392983040 (3.16GiB)
  Global free memory (AMD)                        3291812 (3.139GiB) 3125442 (2.981GiB)
  Global memory channels (AMD)                    8
  Global memory banks per channel (AMD)           16
  Global memory bank width (AMD)                  256 bytes
  Error Correction support                        No
  Max memory allocation                           2693943705 (2.509GiB)
  Unified memory for Host and Device              No
  Minimum alignment for any data type             128 bytes
  Alignment of base address                       2048 bits (256 bytes)
  Global Memory cache type                        Read/Write
  Global Memory cache size                        16384 (16KiB)
  Global Memory cache line size                   64 bytes
  Image support                                   Yes
    Max number of samplers per kernel             16
    Max size for 1D images from buffer            134217728 pixels
    Max 1D or 2D image array size                 2048 images
    Base address alignment for 2D image buffers   256 bytes
    Pitch alignment for 2D image buffers          256 pixels
    Max 2D image size                             16384x16384 pixels
    Max 3D image size                             2048x2048x2048 pixels
    Max number of read image args                 128
    Max number of write image args                8
  Local memory type                               Local
  Local memory size                               32768 (32KiB)
  Local memory size per CU (AMD)                  65536 (64KiB)
  Local memory banks (AMD)                        32
  Max number of constant args                     8
  Max constant buffer size                        2693943705 (2.509GiB)
  Preferred constant buffer size (AMD)            16384 (16KiB)
  Max size of kernel argument                     1024
  Queue properties                                
    Out-of-order execution                        No
    Profiling                                     Yes
  Prefer user sync for interop                    Yes
  Profiling timer resolution                      1ns
  Profiling timer offset since Epoch (AMD)        1614887493160477441ns (Thu Mar  4 16:51:33 2021)
  Execution capabilities                          
    Run OpenCL kernels                            Yes
    Run native kernels                            No
    Thread trace supported (AMD)                  Yes
    Number of async queues (AMD)                  2
    Max real-time compute queues (AMD)            0
    Max real-time compute units (AMD)             0
    SPIR versions                                 1.2
  printf() buffer size                            4194304 (4MiB)
  Built-in kernels                                (n/a)
  Device 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_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_amd_bus_addressable_memory cl_khr_spir cl_khr_gl_event 

NULL platform behavior
  clGetPlatformInfo(NULL, CL_PLATFORM_NAME, ...)  AMD Accelerated Parallel Processing
  clGetDeviceIDs(NULL, CL_DEVICE_TYPE_ALL, ...)   Success [AMD]
  clCreateContext(NULL, ...) [default]            Success [AMD]
  clCreateContextFromType(NULL, CL_DEVICE_TYPE_DEFAULT)  Success (1)
    Platform Name                                 AMD Accelerated Parallel Processing
    Device Name                                   Ellesmere
  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                                   Ellesmere
  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                                   Ellesmere

ICD loader properties
  ICD loader Name                                 OpenCL ICD Loader
  ICD loader Vendor                               OCL Icd free software
  ICD loader Version                              2.2.14
  ICD loader Profile                              OpenCL 3.0
2 curtidas

Opa, muito obrigado, @denielt ! :blush:

Saberia se esse pacote funcionaria também no Ubuntu ou no Pop!_OS? :thinking:

Sobre o driver da sua GPU, é o 20.40 da “Radeon™ Software for Linux® Driver for Ubuntu 18.04.5 HWE” ou da “Radeon™ Software for Linux® Driver for Ubuntu 20.04.1” :thinking:

Obrigado, novamente, se for possível responder. :pray:

1 curtida

Cara, não sei dizer se funcionaria no Ubuntu ou PopOS, não tenho nenhum afinidade com ubuntu ou ubuntu-based, só testando pra ver. Recomendo que instale o opencl-headers, talvez o seu problema possa ser ausência de pacotes. E com relação ao driver, é o pacote para o Ubuntu 18.04; Radeon™ Software for Linux® Driver for Ubuntu 18.04.5 HWE este é o nome que aparece quando está fazendo o download do driver depois de digitar makepkg -si no terminal.

2 curtidas

Obrigado novamente pela sua disposição, @denielt ! :pray:

Eu testarei essa alternativa a instalação do OpenCL e do DaVinci Resolve amanhã!

Obrigado! :pray:

2 curtidas

Por nada, se precisar de ajuda estou a disposição. Um abraço.

2 curtidas

Olá mais uma vez, @denielt ! :wave:

Retorno com novidades - e alguns problemas que talvez possa me ajudar :sweat_smile: .

Sendo curto, eu tentei instalar o driver 20.40.1, o opencl-header e nessas instalações acabei tendo outras ideias para testar. No fim de tudo, o DaVinci, de uma forma ou de outra, ou não inicializava ou apresentava bugs que compremetiam o seu uso.

Agora, instalei o Manjaro na minha máquina e executei alguns dos passos que você descreveu no post, só que estou com dúvida sobre a instalação do DaVinci!

  1. Como devo instalá-lo corretamente no Manjaro? É só executar o arquivo .run? :thinking:

  2. E o pacote AUR que indicou? É só executar este comando no terminal?

sudo git clone https://aur.archlinux.org/davinci-resolve.git

  1. Devo baixar e instalar todas as dependências que estão descritas no site AUR indicado?

Grato se puder retornar e me ajudar! :pray:

1 curtida

O artigo é de 2019, mas pode ajudar:

2 curtidas

Obrigado pela sugestão, @Rodrigo_Chile , mas não há nada de diferente do que eu fiz para instalar o Resolve no Manjaro, exceto o comando no terminal pamac build davinci-resolve que eu executarei depois (embora pareça que deva ser executado antes de instalar o editor).

2 curtidas

Pra instalar o davinci-resolve no Manjaro só instalei o pacote do AUR davinci-resolve utilizando o yay, depois disso foi enter, enter, enter…

2 curtidas

Estranho que aqui no meu arch eu uso o opencl-amd 20.45.1164792-4, e funciona perfeitamente o Blender, Davinci entre outros.

1 curtida

Parece que é problema no modelo da Radeon RX 570, apenas. No Ubuntu e outras distros Debian, a RX 580 funciona normalmente.

2 curtidas

Na verdade no Debian a RX 580 p funcionar tive que instalar algumas outras libs e criar um script para subir o Davinci para funcionar perfeitamente.

3 curtidas

O meu “funciona normalmente” quis dizer isso, :sweat_smile:, visto o desdém da compatibilidade das GPUs da AMD com GNU/Linux .
No meu caso, nada disso adiantou com a RX 570, o DaVinci, de uma forma ou de outra, fica bugado. Usar versões antigas, no entanto, funcionam muito bem, mas quero ficar atualizado com o software da Blackmagic Design.

1 curtida

Se quiser posso comprimir a pasta que criei p executar o davinci, acredito que funcione p vc tbem, pois a RX 570 usa os mesmos drivers da RX 580. Basta por a pasta na home e abrir ele pelo script.

1 curtida

Toda ajuda é bem-vinda, :smile: ! Se for possível e quiser mandá-lo para mim, ficarei grato (e ainda mais se funcionar).

4 curtidas

https://drive.google.com/drive/folders/1hwDY7ZURrZ-LMTnZImHOBBbo9jibnzC6?usp=sharing

3 curtidas

Extraia dan-opencl-amdgpu-pro.tar.gz na sua pasta home, e o .desktop pode colocar em /usr/share/applications ou ~/.local/share/applications/

2 curtidas