11 pontos por GN⁺ 2024-07-18 | 4 comentários | Compartilhar no WhatsApp
  • A NVIDIA lançou em maio de 2022, com o driver R515, os módulos de kernel de GPU para Linux como open source sob dupla licença GPL e MIT
  • Na época, isso era voltado para GPUs de computação de data center, e as GPUs GeForce e Workstation estavam em estado alfa
  • A empresa anunciou que, em lançamentos posteriores, ofereceria suporte Linux mais robusto e completo para GeForce e Workstation, e que os módulos abertos de kernel da NVIDIA acabariam substituindo o driver fechado
  • Dois anos depois, os módulos de kernel de GPU open source alcançaram desempenho de aplicações equivalente ou melhor e adicionaram novos recursos significativos, como:
    • Suporte a HMM (heterogeneous memory management)
    • Computação confidencial
    • Arquitetura de memória coerente da plataforma Grace
    • Entre outros
  • Agora é o momento apropriado para fazer a transição completa para os módulos de kernel de GPU open source, e essa mudança será aplicada no próximo lançamento do driver R560

GPUs compatíveis

  • Nem todas as GPUs são compatíveis com os módulos de kernel de GPU open source
  • Plataformas mais recentes, como NVIDIA Grace Hopper e NVIDIA Blackwell, exigem o uso dos módulos de kernel de GPU open source, e o driver proprietário não é suportado nessas plataformas
  • Para GPUs mais novas com arquiteturas Turing, Ampere, Ada Lovelace e Hopper, é recomendada a migração para os módulos de kernel de GPU open source
  • GPUs mais antigas com arquiteturas Maxwell, Pascal e Volta não são compatíveis com os módulos de kernel de GPU open source, portanto devem continuar usando o driver proprietário da NVIDIA
  • Em distribuições no mesmo sistema que misturam GPUs antigas e novas, deve-se continuar usando o driver proprietário
  • A NVIDIA fornece um novo script auxiliar de detecção para orientar qual driver deve ser escolhido. Para mais detalhes, consulte a seção "Usando o script auxiliar de instalação" mais adiante neste post

Mudanças no instalador

  • Em geral, a versão padrão do driver instalada por todos os métodos de instalação está sendo alterada do driver proprietário para o driver open source. Há alguns cenários específicos que exigem atenção especial:
    • Gerenciador de pacotes com metapacote CUDA
    • Arquivo executável
    • Script auxiliar de instalação
    • Detalhes do gerenciador de pacotes
    • Windows Subsystem for Linux
    • CUDA Toolkit

Uso de gerenciador de pacotes com metapacote CUDA

  • Ao instalar o CUDA Toolkit com um gerenciador de pacotes (e não com arquivo run), existe e normalmente é usado um metapacote de instalação. Ao instalar o pacote de nível superior cuda, são instalados em conjunto o CUDA Toolkit e a versão de driver associada

Uso de arquivo executável

  • Ao instalar o CUDA ou o driver da NVIDIA usando um arquivo .run, o instalador consulta o hardware e instala automaticamente o driver mais adequado para o sistema. Também é possível escolher entre o driver proprietário e o driver open source por meio de uma opção na interface

Usando o script auxiliar de instalação

  • Como mencionado anteriormente, se você não tiver certeza de qual driver escolher para a GPU do sistema, a NVIDIA criou um script auxiliar para orientar esse processo de escolha
  • Para usá-lo, primeiro instale o pacote nvidia-driver-assistant com o gerenciador de pacotes e depois execute o script

Detalhes do gerenciador de pacotes

  • Para uma experiência consistente, a NVIDIA recomenda usar o gerenciador de pacotes ao instalar o CUDA Toolkit e o driver. No entanto, os sistemas específicos de gerenciamento de pacotes ou a estrutura dos pacotes usados em diferentes distribuições podem variar de acordo com cada distribuição
  • Esta seção descreve os detalhes específicos, cuidados ou etapas de migração necessários para várias plataformas

Windows Subsystem for Linux

  • O Windows Subsystem for Linux (WSL) usa o driver de kernel NVIDIA do sistema operacional Windows hospedeiro. Nenhum driver específico deve ser instalado nesta plataforma. Se você usa WSL, nenhuma mudança ou ação é necessária

CUDA Toolkit

  • A instalação do CUDA Toolkit não muda via gerenciador de pacotes. Basta executar o seguinte comando:
$ sudo apt-get/dnf/zypper install cuda-toolkit  

Mais informações

  • Para detalhes sobre como instalar o driver NVIDIA ou o CUDA Toolkit, consulte a seção "Instalação do driver" do guia de instalação do CUDA

Opinião do GN⁺

  • O fato de a NVIDIA disponibilizar os módulos de kernel de GPU como open source é uma mudança muito positiva para o ecossistema de computação com GPU. Isso permitirá que usuários e desenvolvedores depurem e resolvam com mais facilidade problemas relacionados aos drivers de GPU da NVIDIA

  • A transição para open source deve oferecer mais flexibilidade e transparência para usuários que utilizam GPUs da NVIDIA em áreas como HPC, IA e machine learning. Em especial, isso pode ajudar a reduzir preocupações com segurança e estabilidade na adoção de soluções com GPUs NVIDIA em ambientes corporativos

  • Ainda assim, durante a transição para open source podem surgir problemas de compatibilidade com aplicações existentes baseadas no driver proprietário. A NVIDIA deverá apresentar diretrizes claras e um caminho de migração para isso

  • Também pode ser interessante comparar com plataformas concorrentes de computação com GPU open source, como o ROCm da AMD. A expectativa é que a transição open source da NVIDIA intensifique a concorrência no setor de computação com GPU

  • Espera-se que, daqui para frente, a NVIDIA aceite ativamente contribuições da comunidade e continue melhorando o desempenho e a estabilidade dos módulos de kernel de GPU open source. Isso deve contribuir para acelerar a popularização e a inovação na computação com GPU

4 comentários

 
bbulbum 2024-07-18

Linus Torvalds: NVIDIA! Toma! Tchau!

 
halfenif 2024-07-19

Uma frase forte.. F*da-se..!

 
bbulbum 2024-07-18

Pode ser, haha

 
GN⁺ 2024-07-18
Comentários do Hacker News
  • Lembro que, há alguns anos, a Nvidia sofreu um hack sério

    • Os hackers ameaçaram divulgar todos os dados se os drivers não fossem abertos como código-fonte
    • Talvez os hackers tenham conseguido o que queriam
  • O módulo de kernel da Nvidia é dividido em dois componentes

    • Um componente "OS-agnostic" independente do sistema operacional
    • Um componente "kernel interface layer" específico da versão e da configuração do kernel Linux
    • Quando incluído no pacote de instalação .run da Nvidia, o componente OS-agnostic é fornecido em binário
  • Troquei para AMD porque usar Sway e Wayland com a Nvidia era difícil demais

    • O principal problema era uma issue no gitlab.freedesktop.org que agora já foi resolvida
  • Fico curioso sobre como está a situação atual dos drivers da Nvidia no Linux

    • Montei um desktop novo com GPU AMD
    • Queria evitar os problemas de código-fonte fechado ou de drivers open source insuficientes/desatualizados
  • A Nvidia fez a transição completa para módulos de kernel de GPU open source

    • Ou a Nvidia está fazendo a transição completa para módulos de kernel de GPU open source
  • Espero que essa mudança facilite a instalação/atualização dos drivers da Nvidia no Linux

    • Resolver incompatibilidades de versão entre drivers, utilitários e runtime de contêiner era um pesadelo
  • Não adianta jogar um tarball e dizer "se vira!"

    • Vou continuar comprando AMD até que eles realmente contribuam com o driver para o kernel upstream
  • Como alguém cético que lê os detalhes com cuidado, acho que isso é um bom movimento

    • Não vejo desvantagens, exceto a possibilidade de reforçar a cultura proprietária da Nvidia
  • Lembro de quando o Linus olhou para a câmera e mandou o dedo do meio para a Nvidia

    • Agora me pergunto se esse tempo já passou, se é hora de fazer as pazes, ou se ainda há problemas
  • O fato de terem entregado pelo menos o módulo de kernel já significa alguma coisa

    • Mas provavelmente isso não será contribuído para o upstream