ZLUDA, una implementació que permet executar aplicacions CUDA a GPUs AMD

ZLUDA

ZLUDA funciona sobre la pila ROCm d'AMD

S'ha donat a conèixer la notícia que AMD ha pres la decisió deixar de finançar el desenvolupament de ZLUDA, La qual és una implementació oberta de la tecnologia CUDA per a GPU AMD, cosa que permet executar aplicacions CUDA sense modificar-les amb un rendiment proper al de les aplicacions que s'executen sense capes addicionals.

Durant els darrers dos anys, s'ha treballat en el desenvolupament d'aquesta capa per facilitar l'execució d'aplicacions CUDA a sistemes amb GPU AMD. Però fins fa poc AMD ha pres la decisió que executar aplicacions CUDA a les GPU AMD no era d'interès comercial, cosa que va permetre al desenvolupador obrir els seus desenvolupaments segons allò acordat en el contracte.

Sobre ZLUDA

El Projecte inicialment es va crear per admetre el treball CUDA a GPU Intel i el canvi en la política de suport de GPU és perquè, inicialment el desenvolupador de ZLUDA era un empleat d'Intel. El 2021, Intel va decidir que no era comercialment viable proporcionar la capacitat per executar aplicacions CUDA a les GPU d'Intel, la qual cosa va portar a la interrupció del desenvolupament de la iniciativa.

A principis de 2022, el desenvolupador va deixar Intel i va signar un contracte amb AMD per continuar el desenvolupament de la capa de compatibilitat CUDA. Durant el desenvolupament, AMD va sol·licitar que no es promocionés l'interès de l'empresa al projecte ZLUDA i que no es comprometés amb el repositori públic de ZLUDA.

ZLUDA proporciona compatibilitat binària amb aplicacions CUDA existents compilades amb el compilador CUDA per a GPU NVIDIA, sense necessitat de realitzar canvis a nivell de codi font. La implementació opera sobre la pila ROCm dAMD i el runtime del HIP.

En el vostre estat actual, el nivell de qualitat de conversió de ZLUDA es considera una versió alfa. Tot i que cal esmentar que ja és capaç d'executar moltes aplicacions CUDA, a més a més es proporciona suport mínim per a primitives i biblioteques, també compta amb implementacions prototip del marc OptiX.

ZLUDA

Gràfica comparativa de ZLUDA

Durant la primera execució d'aplicacions CUDA sota el control de ZLUDA experimenta retards notables pel fet que ZLUDA compila el codi per a la GPU. No obstant això, en execucions posteriors, aquest retard desapareix, ja que el codi compilat s'emmagatzema a la memòria cau, cosa que resulta en un rendiment gairebé nadiu en executar el codi compilat. Per exemple, en executar Geekbench a una GPU AMD Radeon 6800 XT, la versió basada en ZLUDA del conjunt de proves CUDA va mostrar un rendiment significativament millor que la versió basada en OpenCL.

A més d'això, s'esmenta que la compatibilitat amb l'API del controlador CUDA oficial i l'enginyeria inversa de l'API CUDA no documentada s'implementa a ZLUDA mitjançant la substitució de les trucades a funcions amb funcions anàlogues proporcionades en el temps d'execució de HIP, que és molt similar a CUDA.

Per exemple, la funció cuDeviceGetAttribute() es reemplaça per hipDeviceGetAttribute(). ZLUDA també garanteix la compatibilitat amb biblioteques de NVIDIA com NVML, cuBLAS i cuSPARSE. Per a aquestes biblioteques, ZLUDA proporciona biblioteques de traducció amb el mateix nom i el mateix conjunt de funcions, construïdes sobre biblioteques AMD similars. El codi de l'aplicació GPU, compilat en representació PTX (Parallel Thread Execution), es tradueix mitjançant un compilador especial a una representació intermèdia LLVM IR, a partir de la qual es genera el codi binari per a la GPU AMD.

Finalment, cal esmentar que el futur del projecte depèn de l'interès de la comunitat i de possibles propostes de cooperació per part daltres empreses. Sense suport extern, el projecte continuarà desenvolupant-se únicament en àrees dinterès personal de lautor, com DLSS.

Per als interessats en el codi del projecte, han de saber que està escrit a Rust i es distribueix sota les llicències MIT i Apache 2.0, a més el projecte és compatible amb Linux i Windows. Si estàs interessat en poder conèixer-ne més, pots consultar els detalls en el següent enllaç.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: AB Internet Networks 2008 SL
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.