AMD desarrolla una solución basada en ROCm para ejecutar binarios CUDA de NVIDIA sin modificar en gráficos AMD
AMD ha financiado discretamente un esfuerzo durante los dos últimos años para permitir la compatibilidad binaria de las aplicaciones CUDA de NVIDIA en su pila ROCm. Esto permite que el software CUDA se ejecute en las GPU Radeon de AMD sin necesidad de adaptar el código fuente. El proyecto responsable es ZLUDA, que inicialmente se desarrolló para proporcionar soporte CUDA en gráficos Intel. El desarrollador de ZLUDA, Andrzej Janik, fue contratado por AMD en 2022 para adaptar su proyecto a las GPU Radeon con HIP/ROCm. Dedicó dos años a dotar a la plataforma de AMD de soporte funcional para CUDA, lo que permitió ejecutar sin modificaciones muchas cargas de trabajo CUDA del mundo real. Por razones desconocidas, AMD decidió no producir este proyecto, pero lo convirtió en código abierto una vez finalizada la financiación según lo acordado. En Phoronix, se han publicado varias pruebas que analizan la implementación de ZLUDA de AMD en una amplia variedad de pruebas.
Las pruebas de rendimiento han demostrado que los renderizadores y el software CUDA patentados funcionan en las GPU Radeon con los sustitutos de las librerías ZLUDA. El renderizado optimizado para CUDA de Blender 4.0 ahora se ejecuta más rápido en las GPU AMD Radeon que el puerto nativo ROCm/HIP, lo que reduce los tiempos de renderizado entre un 10 y un 20%, dependiendo de la escena. La implementación es sorprendentemente robusta, teniendo en cuenta que se trata de un proyecto de un solo desarrollador. Sin embargo, existen algunas limitaciones: los códigos de ensamblaje OptiX y PTX aún no son totalmente compatibles. En general, las pruebas arrojan resultados muy prometedores. En comparación con los tiempos de ejecución genéricos de OpenCL en Geekbench, los binarios optimizados para CUDA producen hasta un 75% más de resultados. Con las librerías ZLUDA encargadas de la traducción de la API, los binarios CUDA sin modificar pueden ejecutarse directamente sobre las GPU ROCm y Radeon. Curiosamente, el puerto ZLUDA está dirigido a AMD ROCm 5.7, no a las versiones 6.x más recientes. Sólo el tiempo dirá si AMD continúa invirtiendo en este enfoque para simplificar la portabilidad del software CUDA. Sin embargo, el proyecto de código abierto permite ahora a cualquiera contribuir y ayudar a mejorar la compatibilidad. Para una revisión completa, echa un vistazo a las pruebas de Phoronix.
Comments