O lançamento desta semana do Blender 3.2 traz suporte a renderização de GPU AMD no Linux via interface HIP da AMD em conjunto com sua pilha de computação ROCm. Ansioso para ver o suporte de GPU AMD no Linux finalmente chegar, eu rapidamente comecei a experimentar este novo lançamento de software de modelagem 3D de código aberto Blender enquanto observava como o desempenho AMD RDNA2 HIP se compara ao das GPUs NVIDIA GeForce RTX 30 que há muito desfrutam dos melhores suporte de entalhe no Blender.

Enquanto o Blender 3.1 trouxe o suporte AMD HIP no Windows, esse não era o caso do Linux e só agora com o lançamento do Blender 3.2 desta semana existe o AMD HIP suporte com compilações Linux do Blender. Isso permite a aceleração da GPU ao ter a configuração da pilha de computação ROCm-infelizmente, isso significa que não há suporte se apenas usar os drivers Mesa e outros suportes prontos para uso em distribuições Linux.

A maioria dos usuários de Linux, infelizmente, não execute com a configuração da pilha ROCm neste momento devido à necessidade de configurá-la manualmente por meio dos drivers empacotados do Software Radeon para Linux ou dos procedimentos de instalação manual do ROCm. Mesmo assim, o suporte à distribuição Linux é limitado. Já faz mais de um mês desde que o lançamento do Ubuntu 22.04 LTS foi lançado e, infelizmente, ainda não há suporte para este mais novo lançamento de suporte de longo prazo do Ubuntu. Eu tentei primeiro contornar isso no Ubuntu 22.04 apenas querendo os bits do ROCm de qualquer maneira e não me preocupando com os componentes DKMS/Vulkan/OpenGL, mas as diferenças do pacote de ferramentas GNU do Ubuntu 20.04 vs. 22.04 tornaram isso mais uma dor de cabeça… no sistema de teste, acabei de limpá-lo e voltei a fazer uma instalação do Ubuntu 20.04.

No começo, mesmo no Ubuntu 20.04 LTS, tive problemas, além de obter o suporte AMD HIP ativado para o Blender. O driver empacotado no site da AMD é para os componentes Radeon Software 22.10.2, enquanto a rota de instalação do ROCm rendeu componentes de driver 22.10.3 mais recentes. Com alguns ajustes eu finalmente consegui que o Blender 3.2 funcionasse com sucesso com HIP/ROCm! Infelizmente, a maioria das distribuições Linux ainda não empacota o software AMD ROCm devido a suas complexidades e outras dores de cabeça. Enquanto isso, a AMD concentra seu suporte oficial ao ROCm Linux apenas nas poucas distribuições empresariais usuais do Linux. Em comparação, a pilha de drivers proprietários Linux da NVIDIA tem suporte/disponibilidade quase universal em todas as distribuições Linux. Já faz um bom tempo desde que me lembro de qualquer dor de cabeça simplesmente instalando o driver NVIDIA Linux corretamente.

Mas mesmo quando o ROCm funcionava com a primeira placa, um modelo RDNA2, trouxe outra limitação… A gama muito mais limitada de suporte a dispositivos de GPU do que o amplo suporte de dispositivos da NVIDIA por várias gerações. Oficialmente, o Blender 3.2 funciona com placas gráficas RDNA2 e RDNA(1) no Linux com HIP. Consegui testar todas as minhas placas de vídeo Radeon RX 6000 (RDNA2) disponíveis com o Blender 3.2, sim! Mas com todas as minhas placas gráficas testadas com RDNA1, todas elas renderam o Blender 3.2 com uma falha de segmentação. Tentar placas gráficas pré-RDNA, como a Radeon VII baseada em Vega, também gerou uma falha de segmentação, mesmo com a placa gráfica Radeon VII sendo suportada pela pilha de computação ROCm.

Então, para Nesta rodada de testes, consegui mostrar como as placas gráficas da série Radeon RX 6000 podem funcionar com o HIP do Blender 3.2 no Linux. Para comparação, também testei todas as placas NVIDIA GeForce RTX 30 que tenho disponíveis. NVIDIA com Blender suporta caminhos CUDA e OptiX para renderização no Linux com OptiX sendo o renderizador preferido para as placas gráficas GeForce RTX e o que foi usado para esta comparação.

As placas gráficas que testei no Blender 3.2 incluíam todas as placas RDNA2 e RTX 30 que tenho disponíveis (infelizmente, nenhuma série RX 6900 ainda da AMD):

-Radeon RX 6400
-Radeon RX 6500 XT
-Radeon RX 6600
-Radeon RX 6600 XT
-Radeon RX 6700 XT
-Radeon RX 6750 XT
-Radeon RX 6800
-Radeon RX 6800 XT
-GeForce RTX 3060
-GeForce RTX 3060 Ti
-GeForce RTX 3070
-GeForce RTX 3070 Ti
-GeForce RTX 3080
-GeForce RTX 3080 Ti
-GeForce RTX 3090

Todos testando o mesmo Estação de trabalho AMD Ryzen 9 5950X executando Ubuntu 20.04 LTS com kernel Linux 5.13 e os drivers AMD/NVIDIA mais recentes.

A boa notícia é que o back-end AMD HIP para Blender funciona muito melhor do que o antigo OpenCL back-end que foi descartado no Blender 3.0… O o ld O back-end do OpenCL era mal mantido, geralmente exibia um escalonamento muito ruim entre as GPUs e era um desastre. Infelizmente, como mostram esses benchmarks do Blender 3.2 Linux, a NVIDIA com seu back-end OptiX foi muito mais rápida. Mesmo usando o back-end CUDA em alguns testes adicionais ainda estava oferecendo um desempenho relativamente melhor do que essas placas gráficas RDNA2 com HIP.

Uma olhada no consumo de energia da GPU durante a cena BMW com as diferentes placas gráficas.

Infelizmente, o baixo desempenho do HIP não estava limitado a apenas uma cena, mas estava mostrando consistentemente baixo desempenho de RDNA2 em relação à série NVIDIA RTX 30 no Blender 3.2 no Ubuntu Linux.

Pelo menos para a maioria das CPUs de desktop, usar o back-end Radeon HIP com uma placa de vídeo da série Radeon RX 6700/6800/6900 de ponta ainda ofereceria um desempenho de renderização Blender mais rápido do que usar renderização puramente baseada em CPU.

Pelo menos o back-end Radeon HIP está finalmente exposto no Linux para aqueles que desejam fazer uso dele. Esperamos que o back-end, bem como o próprio código ROCm/HIP continuem a amadurecer bem. Os desenvolvedores do Blender também ainda estão explorando o suporte Vulkan e outras melhorias que podem acontecer a tempo de oferecer um bom suporte entre fornecedores. A Intel também está trabalhando no suporte SYCL + oneAPI para Blender para aceleração Intel Arc Graphics.

Pelo menos o suporte Radeon HIP no Blender 3.2 pode funcionar no Linux e com uma GPU de ponta é mais rápido do que com base em CPU renderização, mas o suporte da NVIDIA com seus back-ends OptiX e CUDA continua sendo superior neste estágio. Também é lamentável que a implantação do suporte ao software HIP Linux fora das distribuições Linux com suporte oficial da AMD possa ser uma dor e, da mesma forma, mais de um mês após o lançamento do Ubuntu 22.04 LTS, ainda não há suporte oficial da AMD para esta versão mais recente do UbuntuLinux. E também infelizmente com GPUs RDNA1 e, antes, estou recebendo falhas de segmentação com o Blender 3.2, pois a gama de GPUs com suporte da NVIDIA é muito robusta e abrange todo o portfólio por gerações.

Por fim, para os curiosos, abaixo está uma olhada no consumo de energia da GPU e dados térmicos para toda a extensão de diferentes cenas de teste do Blender que foram comparadas para esta comparação do Blender 3.2 Linux.

Categories: IT Info