AMD vs Nvidia no Linux

Olá, hoje vou contar um pouco da minha experiência como usuário de desktop (principalmente do Fedora) com placas de vídeo Nvidia x AMD.

Comecei usando placas Nvidia, já tive gtx 460,560,780 e 1060 3GB. Atualmente usando minha primeira placa AMD a RX 580 8GB.

Instalação

nvidia

 

Primeiro ponto, relativo a instalação e uso prático de drivers das placas.

Nvidia

Com Nvidia nunca tive grandes problemas para instalação de driver, isso por que não fui atrás de qualquer tutorial por aí, aliás, já testei e comprovei na prática que muitos tutoriais sobre instalação de driver nvidia são furados. E seguir o procedimento recomendado da sua distribuição ou repositório (no caso RPMFusion para Fedora) é sempre “flawless”.

“siga a recomendação da sua distribuição, se for seguir tutorial, teste e confira se está de acordo com a documentação oficial.”

Todavia, se você é um fuçador/testador ou procura trocar kernel’s seguidamente, a chance de quebrar é grande. Na verdade, o máximo que pode acontecer é de o Xorg não subir ou subir com o Nouveau.

O driver da Nvidia é proprietário, comparado ao open source, tem um melhor desempenho e faz uso correto da GPU. Existe drive open source “nouveau” mas é constituído de muito trabalho de engenharia reversa e das especificações básicas, dadas pela Nvidia, ou seja, o Nouveau não é ruim por culpa dos dev’s, mas sim da empresa fabricante da placa.

Ser proprietário, quer dizer que não está “embutido” no kernel Linux, por isso a troca de kernel (feita inconsequentemente) pode causar problemas com driver Nvidia.

Então quer dizer, que se usar uma distribuição que atualiza seguidamente o kernel, terei problemas?

Não necessariamente, no caso do Fedora usam recursos via akmod’s. Que basicamente “reinstalam” os modulos/drivers Nvidia a cada nova versão de Kernel instalado/atualizado. O processo é automaticamente feito no boot e geralmente não leva mais de 1 minuto.

Em distribuições como o Arch Linux, o driver está nos repositórios principais (garantindo sincronia nos updates da distro) e seu gerenciador de pacotes se encarrega de todo trabalho nos updates de kernel’s.

No openSUSE existe repositório dedicado para Driver Nvidia sincronizado com atualizações da versão Leap. Já no Tumbleweed pode haver problemas ou apenas não tem suporte a coisas como CUDA/Nvenc da Nvidia.

E assim por diante, cada distribuição se encarrega de manter os binários Nvidia, compatíveis com os updates das suas respectivas versões principais e de testes.

Resumindo, não é uma boa você (usuário comum de desktop) baixar o binário do site e instalar por conta própria. Apesar de ser possível, caso saiba o que está fazendo.

Distribuições como Ubuntu / PopOS tendem a ser mais amigáveis a drivers Nvidia, principalmente as problemáticas placas híbridas.

Placas híbridas, algo que não recomendo para ninguém, se com placas de desktop pode ser preciso alguma ação externa da distro/usuário para fazer funcionar, com as híbridas pode não haver o que fazer por pura falta de suporte da Nvidia.

AMD

Instalação manual de driver (amdgpu) não é necessário, pois está no kernel Linux, todavia se você usa Debian free, terá que instalar firmwares do repo nonfree para funcionar. Tirando esta acessão de distro, é instalar o OS, a Steam e jogar!

Existe driver proprietário da AMD, porém é destinado ao uso enterprise e com foco nas tecnologias de gráficas de renderização/composição etc (O Davinci Resolve/Blender é compativel apenas com o driver proprietário). Pode ser usado em desktop e games, porém não tem tanta atenção como o amdgpu (open source) que é gerenciado pelo “mesa”.

Este que tem mais atenção de mantenedores da Valve, Intel, RedHat e inclusive a própria AMD. Ou seja, quando encontram bug’s em jogos, a chance do report e correção vir primeiro para o mesa/amdgpu são grandes.

Um fator importante para placas AMD é ter pacotes mesa/kernel relativamente atualizados. Não é preciso usar uma distribuição bleeding edge ou rolling release tipo ArchLinux, mas usar um Debian old stable sem backports é pedir para encontrar incompatibilidades.

Existe um problema causado por uma desinformação, onde o usuário comum que acabou de comprar sua placa de video do ano (problema não tão comum aqui no BR) escolhe um sistema “user friedly” porem, este mesmo sistema congela pacotes/drivers e pode levar meses para fazer backport (isso quando faz) dos novos drivers ou atualização de compatibilidade com novos hardwares (falo de distros geralmente LTS) levando a problemas de incompatibilidade.

Tweak’s e centro de controle/monitoramento

images

Nvidia

Junto com o driver Nvidia, geralmente vem o pacote “nvidia-settings” (este da imagem acima, parece ter saido do Windows XP!) que é uma interface gráfica para gerenciamentos específicos da placa/driver que não estão integrados a DE ou o próprio sistema. Por exemplo: controles de filtros de cores/imagem/processamento, consumo energético, desempenho, monitoramento de temperaturas, clock, resolução da tela (esta está integrada na DE) etc. É uma ferramenta fantástica e também avançada, algumas opções podem exigir privilégios de super usuário/root, como para salvar um perfil de configurações avançadas ou liberar alguns recursos travados por padrão.

O nvidia-settings é necessário para ativação de opções como o “composittion pipeline” que elimina qualquer tearing que possa haver em jogos, compositores de janelas, app’s gráficos, navegadores… a custo de algum desempenho (que pode ser muito pouco para perceber ou não, depende da placa). É uma opção que deveria ser ativa por padrão e usuários de primeira viagem, podem não saber da sua existência e sofrer com a tela rasgada em alguns casos.

Para monitoramento de temperaturas, pode-se usar o próprio nvidia-settings. Para informações “ingame” existe uma opção no próprio do nvidia-settings (porém não mostra frametimes) ou ferramentas da comunidade como: Vulkan Overlay, DXVK_HUD e MangoHUD.

AMD

Se com Nvidia não possui uma integração “out of the box” com as DE’s/distribuições/kernel Linux, com AMD é ao contrário, você não vai precisar fazer nada para resolver tearing (pelo menos usando driver amdgpu). Ele vem basicamente no modo “pronto para jogar” e não precisa de tweak’s.

Porém, se você quiser ter maior controle das configurações e monitoramento da GPU AMD, não existe um “centro de controle oficial” como o nvidia-settings. Existe algumas soluções open source, algumas tem controle de clock/fan, monitoramento de temperaturas… porém não funcionam em todas placas e necessitam de procedimentos muito complexos para usuário comum.

Existe uma ferramenta muito interessante chamada “coreCtrl” está nos repositórios do Fedora e é basicamente para controlar hardware em geral, criação de perfis etc:

Captura de tela de 2020-07-10 20-35-11

Para monitoramento de temperaturas, pode-se usar também o próprio lm_sensors. Para  informações “ingame” como contador de FPS, frametime… existe ferramentas nativas como GALLIUM_HUD para OpenGL, Vulkan Overlay e MangoHUD.

Compatibilidade de Software / Games

Captura de tela de 2019-11-12 18-01-41.png

Este é um ponto que não vejo diferença, pois hoje em dia, a compatibilidade está muito diferente do que foi a alguns anos, jogos eram portados sem compatibilidade com mesa (usado em AMD e Intel). Hoje em dia até os antigos (teoricamente sem suporte) estão rodando com AMD/mesa.

Todos os jogos de minha lib na Steam rodaram com AMD/Nvidia, tanto os nativos quanto via Proton. Tive mais casos de bug’s corrigidos em atualizações de driver Nvidia, porém por conta do maior tempo de uso. É bem possível que se eu tivesse começado a usar AMD no desktop Linux, teria passado por mais bug’s e incompatibilidades também.

Existe incompatibilidades de drivers ou recursos dos drivers AMDGPU com programas que precisam de implementação OpenCL proprietária, como: Davinci Resolve e Blender.

Para estes softwares é preciso o driver proprietário da AMD (suportado apenas para Ubuntu/SUSE/RHEL) e que não são muito sincronizados com pequenas atualizações destes sistemas.

Gravação de tela

Captura de tela de 2019-11-12 18-02-31.png

Este é um ponto que comparo NVENC (nvidia) e VAAPI (amd/intel). São os encoders via hardware, necessários para fazer gravação de tela sem usar muito processamento, evitando lag enquanto joga/transmite.

Não tenho como fazer um benchmark comparativo, tenho apenas minha impressão de que com Nvenc, no geral, consigo melhor qualidade na gravação ou talvez melhor adaptação no balanceamento do desempenho do game/gravação.

Ao forçar uma qualidade maior que a placa suporta com nvenc, perco mais desempenho no jogo e a gravação degrada, quando forço com vaapi, o jogo não perde desempenho, mas a gravação fica travada.

No geral consegui fazer boas gravações com a GTX 1060 e Nvenc:

e VAAPI na RX 580:

Compatibilidade com tecnologias open source

Captura de tela de 2019-11-12 18-05-25.png

Se você usa desktop Linux (independente da distros/DE) então usa muitas tecnologias open source, creio ser um ponto interessante para você.

Este é um ponto que mais me agradou na AMD, pois sou o tipo de usuário “entusiasta” e gosto de testar novas tecnologias (como foi com Wayland) sendo assim, usar Wayland com nouveau ninguém merece (pois o driver proprietário ainda não é compatível).

Uso GNOME Wayland a um bom tempo em meu notebook com Intel e queria ter a mesma experiência no desktop (um dos motivos de ter adquirido uma gpu amd).

Creio que a compatibilidade/otimização com compositores nas DE’s também é melhor com AMD, por usar tecnologias nativas/integradas com o sistema, porém é algo muito sutil, que dependendo do usuário/situação, talvez nem note a diferença usando gpu nvidia/amd.

Desempenho

Algo que também não tenho queixa em nenhuma das marcas, mostrei em muitos vídeos do meu canal, consegui rodar tranquilamente jogos AAA, nem todos no máximo obviamente, mas nenhum problema que impeça de jogar. Notei um pequeno upgrade em games com vulkan em relação a gtx1060 3GB para a RX580 8GB, mas ao meu ver não foi nada além do esperado.

Open vs Closed Source

Este é um fator que favorece a AMD, além de seus drivers serem open source e inclusos no kernel, existe mais engajamento de várias empresas e projetos de software. No lado do desenvolvedor, fica mais fácil integrar suas tecnologias open em outras tecnologias open, pois as coisas são mais transparentes sem depender do suporte nem sempre muito eficaz da Nvidia, a exemplo, por anos é esperado o suporte ao Wayland, problemas/bug’s/ inconsistências com compositores de janelas de várias DE’s e softwares em geral, muitas vezes dependem do interesse da Nvidia (isso quando existe) em corrigir os mesmos.

Por outro lado, caindo no problema da compatibilidade de software, ser open não quer dizer ser compatível com tudo, quer dizer que PODE ser compatível com quem tem interesse. O que não acontece com programas como Davinci Resolve e Blender, que funcionam com implementação proprietária do OpenCL no driver AMDGPU-Pro/Radeon Software, na qual tem suporte focado em sistemas enterprise como: Ubuntu LTS, CentOS/RedHat e SUSE.

Conclusão: Qual eu recomendo?

Resposta simples, recomendo as duas. Porém sou mais inclinado a recomendar Nvidia para quem pretende usar muito o nvenc e cuda. Creio que o VAAPI esta um pouco atrás do Nvenc na questão otimização no streaming/screencast e o uso do OpenCL provavelmente vai pedir driver proprietário, o mesmo focado em sistemas enterprise e pode limitar na escolha do sistema/distro por parte da AMD.

Já para quem quer o máximo de compatibilidade com tecnologias open source e maior experiencia out of the box, creio que é mais seguro a recomendação de GPU AMD.

Se não se importa nem com o uso do nvenc da Nvidia ou as possibilidades de usar placa com driver open source e quer apenas “jogar”. Basta analisar o desempenho bruto de cada placa, especificações e comparar seus preços independentemente da marca..

E sim, se você acha que minhas opiniões podem estar “contaminadas” devido minha experiência com GNOME, você está certo!

Apesar de eu não ter tido uma experiência ruim com GNOME + Nvidia + Xorg, como mostro neste vídeo:

Bom, na verdade nem sempre foi “flawless” usando Nvidia como nesta review do Ubuntu 18.04:

Com AMD, a única distribuição que não tive uma boa experiência default, foi no Debian, mas é uma questão de saber usar os repositórios da distro, como contei neste artigo.

Para mais vídeos rodando games nas minhas placas Nvidia e AMD veja no canal youtube.com/fastoslinux.

Se deseja me dar sugestões, mande para fastos2016@gmail.com ou nas redes sociais.

2 comentários em “AMD vs Nvidia no Linux

Adicione o seu

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Blog no WordPress.com.

Acima ↑

%d blogueiros gostam disto: