Lanzamiento de ZLUDA 5, una implementación de código abierto de propósito general de la tecnología CUDA

Andrzej Janik anunció el lanzamiento de ZLUDA 5, una implementación de código abierto de la tecnología CUDA. El proyecto busca permitir que aplicaciones CUDA sin modificaciones se ejecuten en sistemas con GPU que no sean NVIDIA, con un rendimiento similar al de las aplicaciones que se ejecutan sin interposers. El código del proyecto está escrito en Rust y cuenta con las licencias MIT y Apache 2.0.

ZLUDA 5 fue el segundo lanzamiento importante del proyecto, creado tras depurar el código base desarrollado durante la etapa de Andrzej en AMD. Desde 2022, Andrzej había trabajado en AMD en la creación de una capa de compatibilidad con CUDA para las GPU de AMD, pero el proyecto se interrumpió en 2024. De acuerdo con los términos de su contrato y tras obtener permiso de publicación de un representante de AMD, Andrzej publicó en código abierto el trabajo que desarrolló durante su etapa en AMD, lo que permitió la ejecución de aplicaciones CUDA sobre la pila ROCm y el entorno de ejecución de la Interfaz de Computación Heterogénea para la Portabilidad (HIP).

El año pasado, Andrzej se vio obligado a retirar su código del acceso abierto después de que una carta de sus abogados dejara claro que el permiso otorgado en un intercambio de correos electrónicos no era válido. Posteriormente, Andrzej comenzó a trabajar en una nueva versión de ZLUDA, basada en el código base que existía antes de que Andrzej se uniera a AMD. Actualmente, el proyecto se centra en aplicaciones que utilizan CUDA para acelerar las tareas de aprendizaje automático. El proyecto se limita actualmente a las GPU de AMD, pero con el tiempo se adaptará a las GPU de Intel.

Mejoras clave en la nueva versión:

  • Se agregó soporte inicial para ejecutar los marcos llm.c, Llama.cpp y PyTorch sobre ZLUDA para ejecutar modelos de lenguaje grandes usando optimizaciones CUDA para GPU NVIDIA.
  • Se ha implementado soporte inicial para ejecutar aplicaciones que utilizan las bibliotecas cuBLAS, cuBLASLt y nvml para mejorar el rendimiento.
  • Se ha añadido la capa zluda_trace para rastrear aplicaciones con CUDA. Con zluda_trace, puede diagnosticar problemas e identificar fallos en ZLUDA que interfieren con la ejecución normal de las aplicaciones.
  • Se ha introducido una utilidad de línea de comandos, zoc (compilador sin conexión ZLUDA), que permite compilar archivos de instrucciones NVIDIA PTX en una representación intermedia AMD RDNA (anteriormente esta funcionalidad estaba disponible como funciones de biblioteca).
  • El cargador de módulos PTX implementa un mecanismo de caché para los núcleos ejecutados en la GPU. El almacenamiento en caché evita la reejecución de operaciones que consumen muchos recursos al compilar instrucciones PTX (ejecución de subprocesos en paralelo) en código máquina para una GPU determinada.

    Fuente: opennet.ru

Añadir un comentario