OpenCL, Placa de Vídeo AMD e GNU/Linux - O inimigo agora é... o mesmo, mas pior!

Muito "blá, blá, blá"!

Dei o chute na porta necessário e “migrei” completamente para o KDE Neon. Por te adorado o ambiente de desktop KDE Plasma, escolhi a distribuição mantido pelo próprio grupo deles.

Já tinha passado por experiência com o Kubuntu em inicialização dupla com o Windows, no laptop. Comecei a familiarizar com ferramentas de design gráfico e, sobretudo, editores de vídeos GNU/Linux, como o KDEnlive e Olive.

Ainda sim, gostaria de manter o DaVinci Resolve como uma alternativa secundária e de emergência. O software precisa do recurso OpenCL pra funcionar completamente no GNU/Linux. Eu nem preciso comentar a dor de cabeça que esse assunto traz consigo. Pesquisa rápida aqui no fórum e no Google e encontrarão problemas atrás de problemas.

Por um breve momento de felicidade, eu consegui adicionar o OpenCL ao meu sistema e o DaVinci Resolve pareceu funcionar completamente para a versão mais recente instalada. Eu só tive problemas com a barra de menus superior, um caso isolado em ambiente de desktop plasma, mas que encontrei facilmente uma solução de outros usuário no fórum da Blackmagic Design.

Depois de algumas reinicializações, o sistema se corrompeu completamente, não conseguindo mais avançar para o ambiente gráfico. O sistema pausava em uma tela preta que emitia, um de seus trechos, a seguinte mensagem:

failed to start Service for snap application cups.cupsd.

Mas ainda sim eu conseguia alternar para uma sessão TTY (sinceramente, não sei o que é isso, é como um “terminal” (?)…) .

Eu tentei umas soluções que encontrei nessa nova onda de pesquisas, inclusive desinstalar o driver que tinha acabado de instalar, mas nenhum pôde restabelecer novamente a inicialização. Curiosamente, enquanto pesquisava sobre o OpenCL, li alguns relatos de usuário que o sistema operacional deles tinham corrompido também.

Sem tanta paciência mais, reinstalei todo o sistema operacional. Nesse momento, estou só com o driver que acompanha o sistema, que no meu caso é o Radeon.

Motivação da publicação

Resumo pra quem escolheu não ler o conteúdo colapsado acima (sábia escolha): gostaria de usar o DaVinci Resolve no GNU/Linux, precisava do recurso OpenCL pra que isso acontecesse, até consegui adicioná-lo, porém conduziu o sistema operacional a uma aparente corrupção completa (não conseguia inicializá-lo mais).

Embora tudo ter dado (“lá ele”) errado no final, eu gostaria documentar até onde obtive (ou quase) sucesso, a fim de nortear outros usuários a enfrentar esse problema ou, se formos sortudos, talvez, um usuário mais experiente melhore ou me corriga.

1. Instalação do Driver

  1. Baixe o driver mais recente (à minha época, Radeon™ Software for Linux® version 23.30 for Ubuntu 22.04.3) para sua GPU (minha GPU Radeon RX 570) no site oficial da AMD.
  2. Descompacte o arquivo comprimido.
  3. Abra o terminal e navegue até o diretório onde o driver está armazenado.
  4. Execute esse comando com os seguintes parâmetros (uma resposta para um pergunta similar a instalação do OpenCL no askubuntu).

amdgpu-install --usecase=workstation,rocm,opencl --opencl=rocr,legacy --vulkan=pro --accept-eula

Observação para os arquivos baixados para Ubuntu: apesar de não existir o arquivo “amdgpu-install”, o sistema consegue “enxergá-lo” dentro do arquivo de extensão .deb.

Provavelmente, a instalação ficará incompleta e alguns itens não serão configurados devidamente. Apesar disso, nesse momento, o OpenCL já está disponível no seu sistema, preparado para executar os softwares que o dependem ou para utilizar a acelaração gráfica por GPU.

2. Adicionar apenas OpenCL para o sistema (?)

Eu não testei essa opção, porém irei incluir nesse registro essa outra solução que pareceu ajudar algumas pessoa e, quem sabe, também lhe ajude.

Para essa alternativa, é só executar esse comando no terminal:

sudo apt install mesa-opencl-icd

3. Use outra distribuição GNU/Linux

Se você ainda tiver fôlego, tente utilizar outras distribuições GNU/Linux. Durante a longa pesquisa de instalação do OpenCL, vi comentários de usuários que pertenciam as seguintes distribuições de que adicionar o OpenCL foi “menos problemático”:

  • Arch e semelhantes, como Manjaro;
  • Geento.

Insenção de responsabilidade

Quero posicionar que sou apenas um usuário leigo do GNU/Linux e que apoia a iniciativa do software Livre. Isso signfica que eu não entendendo muito bem das coisas que compartilhei, pelo menos no meu caso, levaram à ruína o meu sistema operacional, no entanto, como tudo estava fresco, não “saí” prejudicado.

No entanto, eu acredito que ainda sim essa publicação possa ajudar alguém, ao menos, a não executar os comandos mostrados…

Infelizmente, nem todo trecho contempla as referências, mas as que julguei mais importante eu consegui.

:warning: Atenção

Executei as instruções por sua própria conta e risco.

Minhas configurações de Software e Hardware

Operating System: KDE neon 5.27
KDE Plasma Version: 5.27.9
KDE Frameworks Version: 5.111.0
Qt Version: 5.15.11
Kernel Version: 6.2.0-36-generic (64-bit)
Graphics Platform: X11
Processors: 12 × AMD Ryzen 5 3600 6-Core Processor
Memory: 15.5 GiB of RAM
Graphics Processor: AMD Radeon RX 570 Series
Manufacturer: Gigabyte Technology Co., Ltd.
Product Name: B450M DS3H

2 curtidas

Ainda não me surpreendo kkkkk
Por mais que a AMD invista no software livre ela ainda odeia o mesmo de maneira bem disfarçada
Mas as demais tbm não gostam de investir no usuário final quando o assunto e Linux

1 curtida

Até quando eu usava a rx570, o rocm não funcionava. Pra funcionar OpenCL era só com uma artimanha pra instalar o driver proprietário ao lado do livre. Felizmente troquei pra uma placa mais recente rx6600 que funciona com o rocm e consegui desinstalar mais um blob proprietário.

2 curtidas

As placas de arquitetura AMD Polaris (RX 4xx, RX 5xx) são historicamente problemáticas com programas como o DaVinci Resolve, dependendo do driver proprietário para que a aceleração funcione. Mas isso acaba não recebendo muita atenção por afetar poucos usuários (para quem apenas joga, por exemplo, o driver open source funciona muito bem).

A tendência é isso se agravar no futuro, já que a AMD anunciou que não desenvolverá novos drivers para essa arquitetura (que já é antiga). Serão implementadas apenas correções de segurança.

Ao menos nas placas novas da AMD isso parece ter sido superado. São, de longe, a melhor opção para quem usa Linux.

Para quem compra Nvidia, problemas são diversos e super comuns, afetando desde a usabilidade básica ao sistema como um todo. A maioria esmagadora dos problemas que tenho no Linux estão relacionados ao driver proprietário da Nvidia (que é adição obrigatória, já que o driver open source Nouveau tem várias limitações de desempenho e funcionalidade).

2 curtidas

Tá me parecendo que é melhor investir em uma CPU com grande poder de processamento (bastante núcleos) em detritemento de uma placa de vídeo para GNU/Linux, isso para quem não tem interesse em desfrutar de jogar na plataforma.

Para o Davinci, apenas instale o rocm-opencl, não precisa de toda stack gráfica fechada da AMD RX 6600 no Linux : Testando Davinci Resolve | by Fast OS | Medium
Davinci Resolve no Fedora – GPU AMD – Fast OS

Para Blender (4.0 suporta rdna2/3) rocm-hip, opencl foi/está sendo descontinuado pela Blender.

1 curtida

Bem, eu programei em OpenCL e posso falar que a parada é mais complicada.

Acontece que a Nvidia tem a implementação dela para cálculos computacionais, a CUDA. Então tem uma briga aí que a AMD não faz a implementação de CUDA (não tenho certeza, mas parece que a Nvidia nem deixa isso acontecer pelo CUDA ser proprietário). E a Nvidia faz uma implementação malfeita do OpenCL, que é código livre. Não bastasse isso, a Nvidia tem a imensa maioria do mercado de placas de vídeo, então o OpenCL fica pra escanteio.

Pessoalmente, no meu programa, enfrentei problemas dos mais malucos com o OpenCL.
Havia placas de vídeo Nvidia que rodavam certo (série 1000 e 2000), outras não rodavam (series 900), e outras que rodavam errado (série 3000).
Até mesmo na AMD, placas HD 7970 rodavam errado, placas rx400 e rx500 rodavam certo, e quando troquei pela RX6600 rodava errado no linux e certo no windows. Depois de uns 6 meses passou a rodar certo também no linux (rocm).
Também teve caso de gente que tinha duas placas de vídeo e o programa travava, mesmo eu tendo programado a opção de escolher a placa…

A moral da história é que usar essas placas para cálculos computacionais adiciona um novo grau de incerteza. Se o usuário depende deles, então deve comprar a placa específica que seja suportada pelo programa. Infelizmente a maioria de nós compra o hardware por outros motivos, geralmente preço e disponibilidade. Daí em certos pontos acabamos ficando reféns de situações que não sabíamos que existia.

3 curtidas

Então a distribuição Fedora parece ser “a casa” para uma experiência do OpenCL funcionar com programas dependentes dele mais estável. Obrigado por compartilhar os links.

Obrigado por compartilhar o assunto mais afundo do que eu poderia ir, desde que não sou um programador.

E (talvez) complementando como você disse, a CUDA é proprietária da NVIDIA, enquanto o OpenCL é algo como um “consórcio”, um projeto financiado por várias empresas.

Apesar de não ter sido você que comentou sobre isso, eu consigo entender, ao menos, o desleixo para as duas com o GNU/Linux: não é uma plataforma lucrativa como da Microsoft, sem contar a falta de popularidade comparada a outros sistemas operacionais.

Dá para instalar rocm (é open source) em outras distros também, mas via repos delas só vi no Arch e Fedora…

Até onde eu lembro, acho que já descontinuaram o suporte para a série AMD Radeon RX xxx (Polaris).

até ano passado consegui usar o Davinci com RX580…

1 curtida

Teria alguma recomendação, por favor, do que eu poderia fazer para tentar novamente conseguir o OpenCL sem corromper o sistema operacional já instalado? Eu fiz várias configurações, e seria tão ruim ter que fazer tudo de novo…

Talvez configurar uma dupla inicilização, mas seria possível com a mesma distribuição? Ou talvez uma diferente mesmo?

Olá!

primeira coisa que pode fazer é ter um disco externo igual ou maior tamanho que seu disco interno. Daí você faz uma imagem clone utilizando o clonezilla. Assim, qualquer B.O. que acontecer é só restaurar todo o disco exatamente como estava no momento que fizer a imagem.

1 curtida

Obrigado pela indicação (apesar do meu parecer tardio, :sweat_smile: ), me parece quase igual ao recurso de ponto de restauração do Windows (algo assim, o nome).

Tem uma matéria no próprio site do Diolinux ensinando a instalar o Driver AMD + OpenCL:

1 curtida

Obrigado pela indicação, kalebepsouza, mas eu já testei isso e infelizmente não funcionou, na verdade, os arquivos baixados atualmente no conteúdo atualmente, para sistemas baseadas em Debian, mas não sei dizer para outras distribuições.

1 curtida