AMD apoyó discretamente una implementación de CUDA basada en ROCm y la publicó como código abierto
- AMD ha estado trabajando durante varios años para que los desarrolladores puedan ejecutar en HIP/ROCm bases de código dirigidas a la API CUDA de NVIDIA.
- A pesar de estos esfuerzos, si se buscaba el mejor rendimiento, no era una solución ideal (simple, inmediata y con rendimiento garantizado).
- Durante los últimos dos años, AMD ha estado apoyando discretamente un proyecto que ofrece compatibilidad binaria a nivel de bibliotecas para que muchas aplicaciones NVIDIA CUDA puedan ejecutarse sobre la pila AMD ROCm sin cambios en el código fuente.
ZLUDA: soporte de CUDA para gráficos Intel
- Hace algunos años, un proyecto llamado ZLUDA comenzó para dar soporte a CUDA en gráficos Intel, pero fue interrumpido por motivos personales.
- El desarrollador de ZLUDA, Andrzej Janik, recibió de AMD en 2022 un contrato para adaptar ZLUDA a GPUs AMD usando HIP/ROCm.
- Durante los últimos dos años, Janik implementó ZLUDA en GPUs Radeon para que mucho software CUDA pudiera ejecutarse en HIP/ROCm sin modificaciones.
Publicación de ZLUDA como código abierto
- AMD decidió dejar de financiar este proyecto este año y no lanzarlo como producto de software.
- Sin embargo, al finalizar el contrato había una cláusula que permitía a Janik publicar el trabajo como código abierto.
- Janik ofreció acceso para probar y hacer benchmarks de esta nueva implementación de ZLUDA.
Limitaciones de la implementación de ZLUDA y código abierto
- La implementación de ZLUDA no es 100% segura: el soporte para NVIDIA OptiX no está completo y actualmente no maneja software que no use código ensamblador PTX, entre otras limitaciones.
- En la mayoría de los casos, esta implementación es sorprendentemente capaz para ser el esfuerzo de un solo desarrollador.
- El código abierto tiene doble licencia Apache 2.0 o MIT.
- Para esta implementación en Radeon se utilizó el lenguaje de programación Rust.
Opinión de GN⁺
- Este artículo presenta un proyecto que AMD apoyó discretamente para ofrecer compatibilidad con CUDA, y que podría convertirse en una gran contribución para la comunidad de código abierto.
- ZLUDA es un avance importante que permite a los desarrolladores ejecutar aplicaciones CUDA en la plataforma de AMD sin cambiar el código fuente.
- Estos esfuerzos dan a los usuarios de GPUs AMD la oportunidad de acceder a un ecosistema de software más amplio, y resulta especialmente interesante que aproveche un lenguaje de programación moderno como Rust.
2 comentarios
¡Que se joda Nvidia!
Opiniones de Hacker News
ZLUDA se publicó como resultado de que AMD dejara de financiarlo
Mención de la CUDA Dark API
Opiniones apoyando que AMD rompa el monopolio de CUDA
Relato de experiencia sobre intentar ejecutar Stable Diffusion en una GPU AMD y las dificultades encontradas
Años después de que Blender abandonara OpenCL y usara un backend de CUDA, añadió un backend Radeon HIP, pero se descubrió que usar ZLUDA + el backend de CUDA era ligeramente más rápido que el backend Radeon HIP.
La decisión de AMD de dejar de financiar este proyecto parece incomprensible.
Pregunta relacionada con la noticia de que Nvidia había eludido la verificación del driver con licencia GPL del kernel
En un artículo de Phoronix se presenta una guía para quienes quieran compilar directamente el stack ROCm/HIP de AMD.
ROCm está mejor explicado en Github que en la documentación oficial, y esto resalta la importancia del branding como una de las razones por las que AMD pierde competitividad en el mercado.
Hay opiniones de que AMD debería asignar más equipos a este proyecto.