minhas informações de contato
Correspondência[email protected]
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.
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:
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.
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