notícias

A NVIDIA anunciou oficialmente um driver de kernel de GPU de código aberto abrangente, que será iterado para a versão mais forte em dois anos!A próxima geração da Blackwell é totalmente de código aberto

2024-07-18

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina



  Novo Relatório de Sabedoria

Editor: Yongyong
[Introdução à Nova Sabedoria]A NVIDIA mudou totalmente para módulos de kernel de GPU de código aberto, e a história testemunhará mais uma vez o poder do código aberto na comunidade Linux.

NVIDIA anuncia sua mudança completa para módulos de kernel de GPU de código aberto!
Esta ação de código aberto é uma continuação da iniciativa da NVIDIA há dois anos——Anúncio do módulo de driver de kernel GPU Linux de código aberto em maio de 2022
Este incidente gerou discussões acaloradas em muitas comunidades e instituições de código aberto na época, e os internautas especularam que a razão por trás da mudança da Nvidia foi a pressão de Linus Torwalds, o pai do Linux.
Deixando de lado as queixas do passado, com o lançamento da mais recente série de drivers NVIDIA 555 Linux, o suporte para drivers de kernel de código aberto melhorou bastante. A NVIDIA publicou hoje uma longa postagem no blog para promovê-lo.
Nesta postagem do blog, a Nvidia explica seus módulos de kernel de GPU de código aberto que amadureceram nos últimos dois anos, bem como seus recursos recém-adicionados.
É importante notar que o código do driver de código aberto desta vez ainda está fora do kernel principal.
Os internautas do Reddit compararam a abordagem “aberta, mas não totalmente aberta” da Nvidia a uma “cozinha semiaberta”. Acontece que código aberto na verdade significa molho aberto.
Independentemente disso, ter esse suporte de driver de kernel de GPU de código aberto, mesmo que seu componente de driver de espaço de usuário permaneça de código fechado, é uma vitória.

Cumprir a promessa feita há dois anos

Há 2 anos, com o lançamento do driver R515, a NVIDIA lançou um conjunto de módulos de kernel de GPU Linux de forma aberta, com licenças duplas GPL e MIT.
A versão inicial é voltada para GPUs de computação de data center, com GPUs GeForce e de estação de trabalho em estado alfa.
Naquela época, a Nvidia anunciou que forneceria suporte mais poderoso e abrangente para GeForce e estações de trabalho Linux em versões subsequentes, e que os módulos de kernel abertos eventualmente substituiriam os drivers de código fechado.
Agora, a versão do driver R560 está prestes a ser lançada, e a NVIDIA optou por cumprir sua promessa anterior neste momento – fazer a transição completa para módulos de kernel de GPU de código aberto.
O módulo de kernel GPU de código aberto adiciona um grande número de novos recursos sem perder ou mesmo exceder o desempenho original:

- Suporte para gerenciamento de memória heterogênea (HMM)

- Computação confidencial

- Arquitetura de memória consistente da plataforma NVIDIA Grace

- Muitos outros recursos

GPUs suportadas

Embora se diga que há uma mudança abrangente para módulos de kernel de GPU de código aberto, nem todas as GPUs são compatíveis com módulos de kernel de GPU de código aberto.
De modo geral, é compatível com novos produtos e plataformas principais, mas GPUs mais antigas não são suportadas.
Especificamente, para as duas plataformas principais, Grace Hopper ou Blackwell, apenas módulos de kernel de GPU de código aberto são suportados e drivers proprietários não são mais suportados.
Para GPUs mais antigas com arquitetura Maxwell, Pascal ou Volta, elas não são compatíveis com módulos de kernel de GPU de código aberto e precisam continuar a usar drivers proprietários.
Alguns internautas expressaram pesar por isso——
Para GPUs mais recentes com arquitetura Turing, Ampere, Ada Lovelace ou Hopper, a NVIDIA recomenda mudar para o módulo de kernel de GPU de código aberto.
No caso de uma implantação mista de GPUs mais antigas e mais recentes no mesmo sistema, apenas o uso de drivers proprietários é suportado.

A comunidade de código aberto está aguardando ansiosamente


Por que os módulos de kernel de GPU de código aberto da Nvidia são interessantes para os desenvolvedores?
O driver tem duas partes, uma parte é executada no espaço do usuário e a outra parte é executada no espaço do kernel. Os drivers da Nvidia costumavam ser totalmente proprietários (exceto por uma camada de shim que interagia diretamente com o kernel).
Mas depois que a Nvidia escolheu o código aberto, os desenvolvedores podem ler, fazer engenharia reversa, bifurcar, enviar solicitações pull, etc., permitindo que os desenvolvedores melhorem o driver de código aberto e habilitem mais recursos do que antes.
Foi assim que nasceu o NVK. Este é um driver de código aberto desenvolvido em conjunto pela Collabora, Red Hat e a comunidade para placas gráficas NVIDIA. Seu objetivo é se tornar um driver de placa gráfica convencional.
NVK é a parte do espaço do usuário do driver e pode ser usado em conjunto com o Nouveau.
Nouveau é um driver antigo de código aberto que está em mau estado. A Red Hat está desenvolvendo um novo driver de espaço do kernel, Nova, para substituir o Nouveau.
À medida que os esforços de código aberto da NVIDIA se tornam cada vez maiores e mais contribuições da comunidade de código aberto são feitas, o potencial do NVK pode ser ainda mais estimulado e melhorado continuamente com a adição de recursos adicionais e suporte a GPU.
Acontece que esse processo pode exigir bastante “espera do paciente”.
A questão é: até onde a Nvidia pode ir em sua jornada de código aberto.
Depois de analisar a motivação e a lógica da mudança da Nvidia, alguns internautas chegaram à conclusão de que o kernel principal nunca será de código aberto. a razão é--
Módulos de código aberto são necessários porque o kernel do Linux foi modificado para impedir módulos não-GPLv2, o que causará muitos problemas para os drivers da Nvidia.
A solução é colocar todo o código proprietário no firmware, mantê-lo proprietário e tornar o restante do driver do kernel gratuito e de código aberto.
Agora, a Nvidia parece estar pronta para abandonar os antigos módulos de driver proprietários e continuar a usar módulos FOSS (Software Livre e de Código Aberto, Software Livre e de Código Aberto).
Mas isso não significa que estará no kernel principal, absolutamente não, já que é uma licença compartilhada (MIT+GPLv2).
Alguns internautas expressaram dúvidas sobre a mudança da NVIDIA, pensando que foi uma mudança forçada: a NVIDIA é constantemente incentivada por parceiros da indústria (como a Red Hat) e continua a receber humilhação da comunidade de código aberto. para manter atualizações e considerações da pilha do driver para execução em novos kernels.
Um internauta bem versado no temperamento de Lao Huang sugeriu que “a NVIDIA sempre foi indiferente às opiniões de seus parceiros”. Isso deveria estar relacionado ao LLM, permitindo que mais códigos fizessem parte do conjunto de treinamento, permitindo ferramentas como ChatGPT/ Claude/Copilot para melhor geração de código para GPUs NVIDIA.
Na verdade, é difícil acreditar que uma das empresas mais valiosas do mundo se preocupe realmente com a alegada humilhação e o sentimento público. Deve estar ocupada a utilizar o hardware do seu centro de dados para imprimir dinheiro como um louco.
O que a Nvidia realmente se preocupa são mercados em crescimento como o Linux. Embora o mercado do Linux ainda seja pequeno, ele está crescendo e se tornando mais importante no espaço de GPU não relacionado a jogos.
Referências: