notícias

Empresa iniciante NVIDIA: simule CUDA na placa AMD, compile e execute o programa original diretamente

2024-07-16

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

  • Crecy vem do Templo Aofei
    Qubits | Conta pública QbitAI

Sem qualquer modificação ou conversão, a placa gráfica AMD pode executar o programa CUDA original!

Uma start-up britânica lançou uma ferramenta de compilação de programas CUDA para AMD, que é gratuita para uso comercial.

Assim que a ferramenta foi lançada, ela despertou discussões acaloradas e generalizadas entre internautas eAlcançou o topo da lista de favoritos do HackerNews



A ferramenta é chamada SCALE e os desenvolvedores a posicionam como um kit de ferramentas de programação GPGPU (GPU de uso geral).



Atualmente, 9 programas, incluindo a estrutura de modelo grande llama-cpp, passaram no teste e estão funcionando normalmente.

Ao contrário de outras implementações, SCALESimule diretamente a instalação do kit de ferramentas CUDA, a compilação pode ser concluída a partir do código-fonte sem conversão para outros idiomas.

Portanto, SCALE também pode fornecer suporte para linguagens intermediárias específicas da NVIDIA, como PTX inline.

Não há necessidade de conversão, deixe a AMD executar CUDA

A introdução do site oficial mostra que o SCALE possui principalmente um compilador nvcc compatível com três componentes, implementação AMD de tempo de execução CUDA e API de driver e biblioteca ROCm.

O compilador pode compilar diretamente programas escritos em linguagens específicas de CUDA, incluindo nvcc, PTX inline, etc. em códigos binários que podem ser executados em GPUs AMD.

A biblioteca ROCm é usada para fornecer a API "CUDA-X", e SCALE usa esse método ao lidar com bibliotecas como cuBLAS e cuSOLVER.



A principal inovação do SCALE é queAceite o programa CUDA como está, sem precisar portá-los para outro idioma,Compatível com nvcc e clange outros métodos de compilação, enquanto as ferramentas e scripts de construção existentes (como cmake) podem funcionar normalmente.

Segundo comunicado oficial, SCALE é totalmente compatível com CUDA, permitindoOs desenvolvedores não precisam escrever códigos separados para diferentes plataformas de GPU

Isso é muito diferente do HIP lançado pela AMD, porque o HIP reescreve o código CUDA de uma certa maneira e pode não ser capaz de entender macros complexas corretamente e não oferece suporte a linguagens proprietárias, como PTX inline.

Até o autor do SCALE acredita que o HIP não pode resolver o problema de compatibilidade do CUDA.

Além disso, a linguagem SCALE é um superconjunto do CUDA, fornecendo algumasExtensões de idioma opcionais, o que pode tornar mais fácil e eficiente para desenvolvedores que desejam se livrar do nvcc escrever código GPU.

O autor expressou a esperança de que no futuro os desenvolvedores possam escrever código uma vez e executá-lo em diferentes plataformas de hardware, e está trabalhando para preencher a lacuna de compatibilidade entre a popular linguagem de programação CUDA e outros fornecedores de hardware.

Atualmente, o suporte do SCALE para várias séries de GPUs AMD é o seguinte:

  • Já suportado: gfx1030 (série RX6000) e gfx1100 (série RX7000)
  • "parece funcionar": gfx1010 (série RX5000) e gfx1101
  • Adaptação: gfx900 (série RX Vega)

Além disso, o autor testou alguns projetos de código aberto CUDA e executou com sucesso 9 aplicativos CUDA usando SCALE.



No entanto, afinal, SCALE é um projeto totalmente novo, então o autor também preparou uma série de tutoriais desde a instalação até a compilação, fornecendo diferentes tipos de programas de exemplo.

As principais etapas do tutorial são acompanhadas de códigos relevantes e incluem até mesmo como determinar o modelo de sua própria GPU, que pode ser considerado muito detalhado.



Se você encontrar problemas durante o uso, o autor também apresenta métodos comuns de solução de problemas e também abre um fórum do Discord para se comunicar diretamente com a equipe de desenvolvimento.



A startup que criou o SCALE se chamaComputação Espectral, fundada no Reino Unido em 2018, afirma ter um conhecimento profundo da arquitetura de CPU e GPU e seu objetivo é ajudar os desenvolvedores a utilizar os recursos de computação de maneira eficiente.



Internauta: Desafie o fosso da Nvidia?

Alguns internautas acreditam que se o SCALE puder realmente ter o efeito (conforme anunciado), ele desafiará o fosso da NVIDIA e permitirá que a AMD concorra diretamente com ela.



No entanto, agora é muito cedo para tirar uma conclusão. Afinal, os funcionários do SCALE também admitem que ainda existem algumas falhas em comparação com o CUDA original.

E o desenvolvedor também deixou claro que algumas APIs e funções CUDA não são suportadas, mas não forneceu uma lista específica.



Em relação a mais deficiências da "solução AMD", um internauta que afirmou ter se comunicado com a equipe SCALE disse que o SCALE atual não pode operar o TensorCore, o que significa que a estrutura de aceleração FlashAttention não pode ser executada na AMD.

Além disso, como a placa N possui uma poderosa unidade de multiplicação de matrizes, mesmo que possa ser compilada e executada, o desempenho da placa AMD pode não ser tão bom quanto o da placa N.



Alguns internautas acreditam que a razão pela qual a Nvidia é dominante é que a AMD não está disposta a investir para fazer com que sua GPU tenha maior desempenho de aprendizado de máquina (não apenas a vantagem do CUDA).



Mesmo que funcionem de forma eficiente, há também a questão de saber se as placas AMD são realmente acessíveis e acessíveis.



Outra onda de internautas acredita que o maior problema não é se ele pode funcionar tecnicamente, mas sim as questões legais por trás dele.

Esta questão também desencadeou ampla discussão, mas ainda não há conclusão.

Algumas pessoas pensam que SCALE é tão questionável legalmente quanto ZLUDA (outra forma de executar programas CUDA na AMD) e pode levar a ações judiciais da NVIDIA.



Especificamente, de acordo com os termos do EULA da NVIDIA, o CUDA SDK só permite o desenvolvimento de aplicativos executados em placas N, o que pode proibir implementações compatíveis como SCALE.



Mas imediatamente alguns internautas disseram que o SCALE não usava o "SDK" da NVIDIA, então por que falar sobre o acordo de uso do SDK?



Em suma, quer se trate de uma deficiência técnica ou de uma questão jurídica, a discussão sobre esta nova ferramenta ainda está em curso.

Quanto a ser útil ou não, cabe aos desenvolvedores votar com os pés.

Links de referência:
[1]https://docs.scale-lang.com/
[2]https://news.ycombinator.com/item?id=40970560