Pular para o conteúdo

CUDA em GPUs AMD no Windows com ZLUDA

Ver no idioma original →

Autoria: Fahd Mirza · Assistir no YouTube

Vídeo de autoria do canal indicado, não da IANIA; todos os direitos pertencem ao criador. Transcrição, resumo e tradução gerados automaticamente; o conteúdo no idioma original é preservado na versão em idioma original.

Idioma original: inglês

Vídeo original: CUDA on AMD GPUs on Windows with ZLUDA · Canal: Fahd Mirza · 09:23 · Assistir no YouTube

Tópicos: Engenharia de software com IA, Infraestrutura e hardware de IA, Modelos locais e open source

O vídeo apresenta o ZLUDA, uma camada de tradução que permite executar alguns aplicativos CUDA sem modificações em GPUs que não são da Nvidia, e explica uma iniciativa para facilitar esse uso no Windows. O projeto combina o ZLUDA oficial com HIP e ROCm da AMD, oferecendo um processo de instalação reproduzível e resultados iniciais promissores em um teste de treinamento de aprendizado por reforço. No entanto, o software ainda é experimental, foi validado em apenas uma GPU e pode não funcionar com vários modelos e recursos avançados. O apresentador vê a iniciativa como um vislumbre de um futuro em que a marca da GPU não determine quais softwares podem ser executados.

  • ZLUDA traduz chamadas CUDA para permitir que certos aplicativos CUDA rodem em GPUs que não são da Nvidia, sem reescrever nem recompilar o aplicativo.
  • O projeto apresentado é um pacote para Windows construído em torno do ZLUDA oficial, do HIP e do ROCm da AMD; não é o próprio ZLUDA.
  • O autor do pacote relatou um teste de treinamento de aprendizado por reforço cerca de 3% mais lento que a execução nativa.
  • O processo inclui instalar os drivers AMD e o HIP SDK, clonar o repo, executar o instalador, fazer diagnósticos e iniciar o aplicativo CUDA.
  • A única GPU validada pelo autor é a RX 9060 XT; outras placas AMD são possibilidades, não compatibilidades garantidas.
  • A cobertura do ZLUDA depende do workload; modelos com muitas convoluções e algumas extensões CUDA podem falhar.
  • O projeto é experimental e pequeno, por isso o apresentador recomenda experimentá-lo, mas não depender dele em produção.
  • O vídeo relata que o ZLUDA começou em 2020 para GPUs Intel, recebeu financiamento da AMD por alguns anos e depois foi reconstruído pelo desenvolvedor após a retirada do apoio.
Início Capítulo Resumo
00:01 O que é o ZLUDA O vídeo apresenta a ideia de executar aplicativos CUDA em GPUs AMD e explica o papel do ZLUDA como camada de tradução.
02:13 O pacote para Windows O apresentador descreve o repo CUDA for AMD on Windows, que combina o ZLUDA oficial com HIP e ROCm.
04:24 Como funciona e como instalar O vídeo detalha as camadas entre o aplicativo CUDA e a GPU AMD e mostra as etapas para configurar e iniciar o sistema.
06:42 Limitações e riscos O apresentador ressalta que o software é experimental, foi validado em apenas uma GPU e pode não suportar determinados workloads.
08:20 A história do ZLUDA e o que vem pela frente O vídeo relata a trajetória do projeto e conclui que ele é um vislumbre promissor, mas ainda não substitui uma configuração Nvidia.

Quase toda a IA roda em CUDA. E CUDA só roda em Nvidia. — 01:07

O aplicativo fala. O ZLUDA traduz na hora, e a placa AMD entende na própria linguagem. — 02:45

É algo fantástico para experimentar. Não é algo em que apostar a produção. — 07:49

Um vislumbre real de um futuro em que a marca da GPU não decide quais softwares você pode executar. — 09:23

  • ZLUDA (ferramenta): Camada de tradução que permite executar alguns aplicativos CUDA sem modificações em GPUs que não são da Nvidia.
  • CUDA for AMD on Windows (repo): Repo apresentado no vídeo que reúne componentes para executar aplicativos CUDA em GPUs AMD no Windows.
  • speeds2 (pessoa): Desenvolvedor identificado como autor do pacote CUDA for AMD on Windows.
  • HIP (ferramenta): Tecnologia da AMD usada no pacote como parte da ponte entre as chamadas traduzidas e a GPU.
  • ROCm (ferramenta): Plataforma de software da AMD que fornece o runtime de GPU usado pelo projeto.
  • RX 9060 XT (modelo): GPU citada como a única placa validada pelo autor do pacote.
  • AMD (empresa): Empresa responsável pelas GPUs, pelo HIP e pelo ROCm mencionados no vídeo.
  • NVIDIA (empresa): Empresa associada ao CUDA, plataforma para a qual foram desenvolvidos os aplicativos abordados.

00:01 Há uma palavra que você vai ouvir bastante nos próximos minutos: Zluda. E aqui vai uma curiosidade. Em polonês, Zluda significa delírio e ilusão. Algo que parece real, mas não é bem o que parece. E esse é quase o nome perfeito para o que estamos vendo hoje. Porque a ideia toda parece um delírio: executar aplicações CUDA da Nvidia em uma GPU AMD no Windows.

00:32 Algo que, no papel, não deveria funcionar de jeito nenhum. Mas funciona. Então, vamos falar sobre como isso acontece. Outra curiosidade: o quarto maior grupo de inscritos do meu canal é da Polônia. Sou muito grato a todas essas pessoas da bela Polônia e também, é claro, a todos os membros e ao restante do público. Eu sou Fahad Mirza, e dou as boas-vindas a você ao canal. Recentemente, também comecei esta newsletter semanal gratuita sobre IA, na qual você pode se inscrever em fahadmirza.substack.com.

01:07 Aqui está a situação, resumida em uma frase: quase toda a IA funciona com CUDA. E CUDA só funciona em Nvidia. Esse é o fosso competitivo da Nvidia. Se você tem uma placa AMD, a maior parte do mundo CUDA simplesmente fica fora do seu alcance. E já falamos bastante sobre isso no canal. Você pode ter um ótimo hardware bem aí, mas ainda assim ficar de fora. Esse é o problema que as pessoas tentam contornar há anos e anos. E Zluda é uma das tentativas mais

01:39 interessantes até agora. E, se você já acompanha este canal, já conhece ZLUDA. Já falei sobre ele mais de uma vez, e aqueles vídeos foram muito bem porque essa ideia mexe com a imaginação. ZLUDA é uma camada de tradução, digamos assim. Ela permite que aplicações CUDA sem modificações sejam executadas em GPUs que não são da Nvidia. Você não reescreve o aplicativo. Não o recompila. ZLUDA fica no meio e faz a tradução para você. Hoje

02:13 vamos ver algo novo construído sobre ela. Então, se esta é a primeira vez que você ouve falar de ZLUDA, continue assistindo. Tudo vai fazer sentido em um minuto. Mas ainda acredito que ZLUDA está avançando muito devagar. Enfim, olhe para este diagrama. Primeiro, vamos criar um modelo mental, simples e direto. Imagine três personagens. De um lado, temos um aplicativo CUDA, que só fala Nvidia. Do outro, temos uma GPU AMD, que só fala AMD. Esses

02:45 dois não conseguem se comunicar. Eles falam idiomas diferentes. ZLUDA é a intérprete que fica entre eles. O aplicativo fala. ZLUDA traduz na hora, e a placa AMD entende no próprio idioma. Nada é reescrito. O aplicativo nem sabe que está se comunicando com uma AMD. Esse é o truque. Essa é toda a mágica, em uma imagem simples. E esse é o tema deste vídeo. E isso nos leva ao projeto de que este vídeo trata de verdade. É um

03:19 repo do GitHub chamado CUDA for AMD on Windows, criado por um desenvolvedor que usa o nome speeds2. Agora, é importante entender uma coisa, e quero deixar isso bem claro. Isso não é o próprio ZLUDA. É um pacote para Windows construído em torno do ZLUDA oficial, além do HIP e do ROCm da AMD. Pense nisso como alguém juntando todas as partes complicadas da configuração, aquelas que normalmente dão trabalho no Windows, e conectando tudo em um processo reproduzível.

03:50 O autor testou o pacote em uma carga de trabalho real, uma pequena execução de treinamento de aprendizado por reforço, e relatou um desempenho cerca de 3% mais lento que o de uma única placa nativa em uma única carga de trabalho, mas ainda assim um resultado realmente promissor. E o motivo pelo qual isso me atrai bastante, pelo menos, é o Windows. ZLUDA sempre foi mais forte no Linux. Vimos isso em primeira mão naqueles vídeos. Fazer isso funcionar bem no Windows ainda é, na minha opinião, a parte difícil, e é exatamente isso que este projeto está tentando fazer. Agora, o motivo pelo qual falo sobre esses

04:24 projetos é que eles representam esperança. Estes são os primeiros passos, e acredito que, se não for este projeto, talvez outra pessoa assuma essa missão e siga em frente com ela, e talvez vejamos algo que seja valioso para a comunidade em geral. Vamos nos aprofundar um pouco mais e ver o que está acontecendo por baixo dos panos. Porque não se trata de apenas um tradutor, mas de uma pequena pilha de componentes. No topo está seu aplicativo CUDA para Windows, escrito para Nvidia e completamente alheio a tudo isso. Logo abaixo está ZLUDA,

04:59 fingindo ser CUDA. Quando o aplicativo chama uma biblioteca matemática CUDA, ZLUDA mapeia essa chamada para o equivalente da AMD. CUBLAS vira ROCm BLAS, CU SPARS vira ROCm SPARS. Essas chamadas então seguem para o HIP e o ROCm, que são o ambiente de execução de GPU próprio da AMD. E, por fim, na base, a GPU AMD faz o trabalho de verdade. Cada camada passa o trabalho para a seguinte e, para o aplicativo no topo, tudo parece ser apenas CUDA. Essa passagem de uma camada para outra é todo o projeto.

05:35 Então, como você faria para executar isso? Organizei o processo em cinco etapas simples, como você pode ver na tela. Etapa um: instale o driver da AMD e o AMD HIP SDK. Essa é a metade da ponte que cabe à AMD, e a versão 6.4 é a que foi testada. Etapa etapa dois: clone o repo. Etapa três: execute o script de instalação, como você pode ver aqui. Aliás, é ele que faz o trabalho pesado. Ele detecta sua GPU, baixa ZLUDA e libtorch, verifica os hashes e executa uma verificação CUDA integrada na sua pilha AMD.

06:09 Etapa quatro: execute o script de diagnóstico, o doctor, e a verificação da GPU, só para confirmar que tudo está sendo detectado antes de confiar no resultado. E etapa cinco: indique ao inicializador seu aplicativo CUDA. Ele coloca o componente ZLUDA ao lado do aplicativo e o executa. Esse é o processo completo, do início ao fim. Os comandos estão todos na tela, caso queira pausar e copiá-los. Eu não tenho o hardware físico para testar isso de verdade. Estou com muita vontade de fazer o teste. Então, se você é da AMD ou, sabe, se quiser patrocinar para que eu possa testar na prática, entre em contato pela página de contato, na página inicial do canal, e ficarei feliz em fazer um vídeo com testes práticos, se isso fizer sentido.

06:42 Mas, de novo, sempre existe um “mas”. Esta é uma parte que nunca pulo, porque quero que você comece com os olhos bem abertos. Este é um software experimental em estágio inicial e tem limitações reais. Apenas uma GPU foi validada pelo autor: a RX 9060 XT. Todas as outras placas AMD são possibilidades, não uma

07:18 garantia. Não há QDNN no HIP SDK estável para Windows, o que significa que modelos com muitas convoluções, muitos trabalhos com imagens, podem simplesmente falhar. ZLUDA não é uma implementação completa de CUDA, então a compatibilidade depende inteiramente da sua carga de trabalho específica. Recursos avançados como Nickel, TensorRT e algumas extensões CUDA personalizadas talvez não funcionem de jeito nenhum, e o próprio repo é minúsculo: tem um único colaborador e é muito, muito novo. Então, é algo fantástico

07:49 para experimentar e talvez até contribuir. Mas não é algo em que se deva apostar para produção. As duas coisas são verdade ao mesmo tempo. E acho que a história por trás de ZLUDA explica por que tudo isso parece um pouco frágil e um pouco heroico ao mesmo tempo. ZLUDA começou em 2020. Isso mesmo, como uma forma de executar CUDA em GPUs Intel. Depois, a AMD financiou discretamente o projeto por alguns anos para fazê-lo funcionar em placas Radeon. Então, em 2024, a AMD

08:20 retirou o financiamento e, pouco depois, seus advogados pediram que o código fosse removido. Então, o desenvolvedor o reconstruiu do zero, usando a base de código mais antiga, anterior à AMD, para manter tudo em ordem. O projeto encontrou um patrocinador por um tempo, mas agora, a partir do lançamento da versão 6, até esse financiamento acabou, e ele voltou a ser o projeto de fim de semana de uma só pessoa. Um único desenvolvedor enfrentando um monopólio no tempo livre. Quando você sabe disso, o nome ganha ainda mais força: delírio. Só que ele continua se recusando a ser apenas um delírio. Mas veja,

08:50 eu ainda tenho muitas esperanças em ZLUDA ou, se não for ZLUDA, talvez em algum outro projeto. Talvez alguém patrocine esse projeto ou qualquer outro que tente fazer isso, porque já dá para ver que a ideia não é tão fantasiosa assim. Acho que isso é bem viável. Então, veja: este projeto não vai substituir uma configuração Nvidia hoje, isso é certo, e, para ser justo, nem está tentando fazer isso. Mas é um vislumbre real e funcional de um futuro em que a marca da sua GPU não determina o que

09:23 software que você tem permissão para executar, e esse futuro vale a pena acompanhar de perto. Vou deixar o link do repo na descrição do vídeo, então confira. Conte nos comentários o que você achou. E, mais uma vez, seria muito, muito bom se você assinasse este boletim informativo. E, se quiser ajudar o canal, torne-se membro. Obrigado por todo o apoio.

Transcrição original

[00:01] There is a word you are going to hear a lot in the next few minutes. Zluda. And here is a fun part. In Polish, Zluda means delusion and illusion. Something that looks real but isn’t quite what it seems. And that is almost the perfect name for what we are looking at today. Because the whole idea sounds like a delusion. Running Nvidia’s CUDA applications on an AMD GPU on Windows.

[00:32] Something that on paper is not supposed to work at all. But it does. So, let’s talk about it as how. Another fun fact is that fourth largest subscriber base on my channel is from Poland. Very grateful for all of those people from the beautiful Poland and also, of course, to all the members and rest of the viewership. So, this is Fahad Mirza and I welcome you to the channel. Recently, I also have started this free weekly AI newsletter, which you can subscribe at fahadmirza.substack.com.

[01:07] So, here is a situation in one breath. Almost all of AI runs on CUDA. And CUDA only runs on Nvidia. That is Nvidia’s moat. If you own an AMD card, most of the CUDA world is simply closed to you. And we have discussed it a lot on the channel. You can have great hardware sitting right there and still be locked out. And that’s the problem people have been trying to walk around for years and years. And Zluda is one of the most

[01:39] interesting attempt to do it so far. And now, if you have been to this channel before, you already know Zluda. I have covered it more than once and those videos did really well because this idea just captures the imagination. Zluda is a translation layer, you would say. It lets unmodified CUDA applications run on non-Nvidia GPUs. You don’t rewrite the app. You don’t recompile it. ZLUDA sits in the middle and does the translating for you. Today

[02:13] we are looking at something new built on top of it. So, if this is your first time hearing about ZLUDA, stick around. It will all make sense in a minute. But, one thing I still believe ZLUDA is really going very slow. Anyway, look at this diagram. So, let’s build the mental model first, nice and simple. Picture three characters. On one side you have a CUDA app, and it only speaks Nvidia. On the other side, you have an AMD GPU, and it only speaks AMD. These

[02:45] two cannot talk to each other. They are in different languages. ZLUDA is the live translator standing between them. The app speaks. ZLUDA translates on the fly, and the AMD card hears it in its own language. Nothing gets rewritten. The app has no idea it’s even talking to AMD. That’s the trick. That’s the whole magic in one plain picture. And this is the topic of this video. And this is what brings us to the actual project this video is all about. It’s a

[03:19] GitHub repo called CUDA for AMD on Windows by a developer going by speeds2. Now, here is a key thing to understand, and I want to be really clear about it. This is not ZLUDA itself. This is a Windows package built around official ZLUDA plus AMD’s HIP and ROCm. Think of it as someone taking all the messy setup, the pieces that normally fight you on Windows, and wiring them together into one reproducible path.

[03:50] The author tested it on real workload, a small reinforcement learning training run, and reported it landing about 3% slower than native one card one workload, but a genuinely promising result. And the reason that really appeals to me at least is Windows. ZLUDA has always been stronger on Linux. We have seen it firsthand in those videos. Getting this working cleanly on Windows is, I think, still the hard part, and that is exactly what this project is attempting to do. Now, the reason why I cover these

[04:24] projects is that they are the hope. These are the first few steps, and my belief is that if not this project, someone else might pick up this cross and walk with it, and we might see something which would be valuable for the larger community. Let’s go one step deeper and see what’s actually happening under the hood. Because it’s not just one translator, it’s a little stack. At the top is your CUDA Windows app, written for Nvidia, completely unaware of any of this. Below it sits ZLUDA,

[04:59] pretending to be CUDA. When the app calls a CUDA math library, ZLUDA maps that call across to the AMD equivalent. CUBLAS becomes ROCm BLAS, CU SPARS becomes ROCm SPARS. Those calls then go down into HIP and ROCm, which is AMD’s own GPU runtime. And finally, at the bottom, the AMD GPU does the real work. Each layer hands off to the next, and to the app at the top, it all just looks like CUDA. That layered hand off is the entire design.

[05:35] Now, so how would you actually run this yourself? I have laid it out as five clean steps, as you can see on your screen. Step one, install the AMD driver and the AMD HIP SDK. That’s the AMD half of the bridge and version 6.4 is the tested one. Step Step two, clone the repo. Step three, run the installer script as you can see here. This is the one that does the heavy lifting, by the way. It detects your GPU, pulls down ZLUDA and libtorch, checks the hashes, and runs a built-in

[06:09] CUDA check against your AMD stack. Step four, run the diagnostic script, the doctor, and the GPU scan, just to confirm everything is actually seen before you trust it. And step five, point the launcher at your CUDA app, and it stages its ZLUDA piece right next to it and runs it. That’s the full path, start to finish. Commands are all on the screen if you want to pause and copy them. I don’t have that, uh, you know, physical hardware to actually test it. I’m actually yearning to do it. So, if you are from AMD or, you know, if you want

[06:42] to sponsor it, so that I could do a hands-on feel, we do reach out through the contact page from the homepage of channel, and I will be happy to do a hands-on video if that is what is, um, going to make sense. But, again, and there’s always a but. This is a part I never skip because I want you going in with these clear eyes. This is early experimental software, and it has real limits. Only one GPU has actually been validated by the author, the RX 9060 XT. Every other AMD card is a candidate, not a

[07:18] promise. There is no QDNN in the stable Windows HIP SDK, which means convolution heavy models, a lot of image work, may just simply fail. ZLUDA is not a complete CUDA implementation, so coverage depends entirely on your specific workload. Advanced pieces like Nickel, TensorRT, and some custom CUDA extensions may not run at all and the repo itself is very tiny, one contributor, very new, very very new. So, this is a fantastic thing

[07:49] to experiment with, maybe go and contribute. It is not something to bet production on. Both of those things are true at once. And I think the story behind ZLUDA actually tells you why all of this feels a bit fragile and a bit heroic at the same time. ZLUDA started back in 2020. That’s right, as a way to run CUDA on Intel GPUs. Then AMD quietly funded it for a couple of years to make it work on uh Radeon cards. Then in 2024, AMD

[08:20] pulled the funding and shortly after their lawyers asked for the code to be taken down. So, the developer rebuilt it from scratch from his older pre-AMD code base to keep it clean. It found a sponsor for a while and now as of the version 6 release, even that funding is gone and it’s back to being one person’s weekend project. One developer developer but walking around a monopoly in his spare time. When you know that the name lands even harder, delusion. Except it keeps refusing to stay a delusion. But look,

[08:50] I’m I have still very much um high hopes with ZLUDA or if not ZLUDA, maybe some other project. Maybe, you know, someone would sponsor um this or any other project to do that because you can already see the idea is not that um fantasy. I think this is quite workable. So, look, um this project won’t replace an Nvidia setup today, that’s for sure, and it’s not trying to be to be fair. But it’s a real working glimpse of a future where your GPU brand doesn’t decide what

[09:23] software you’re allowed to run and that future is worth watching closely. I will drop the link to the repo in video’s description, so check it out. Let me know your thoughts in the comments. And again, if you would subscribe to this newsletter, that would be really really good. And if you want to help out the channel, please become a member. Thank you for all the support.