Se ha publicado el toolkit ZLUDA, que permite ejecutar aplicaciones CUDA en GPU AMD

El proyecto ZLUDA ha preparado una implementación abierta de la tecnología CUDA para GPU AMD, que permite ejecutar aplicaciones CUDA no modificadas con un rendimiento cercano al de las aplicaciones que se ejecutan sin capas intermedias. El conjunto de herramientas publicado asegura la compatibilidad binaria con las aplicaciones CUDA existentes, construidas con el compilador CUDA para GPU NVIDIA. La implementación funciona sobre el stack ROCm en desarrollo por AMD y el runtime HIP (Interfaz de Computación Heterogénea para Portabilidad). El código del proyecto está escrito en Rust y se distribuye bajo las licencias MIT y Apache 2.0. Se admite el funcionamiento en Linux y Windows.

La capa para organizar el funcionamiento de CUDA en sistemas con GPU AMD ha estado en desarrollo durante los últimos dos años, pero el proyecto tiene una historia más larga y se creó originalmente para habilitar CUDA en GPU Intel. El cambio en la política de soporte de GPU se debe a que, al principio, el desarrollador de ZLUDA era empleado de Intel, pero en 2021 esta empresa consideró que proporcionar la posibilidad de ejecutar aplicaciones CUDA en GPUs Intel no era de interés comercial y no promovió el desarrollo de la iniciativa.

A principios de 2022, el desarrollador se retiró de Intel y firmó un contrato con AMD para desarrollar una capa de compatibilidad con CUDA. AMD solicitó durante el desarrollo que no se hiciera público el interés de AMD en el proyecto ZLUDA y que no se hicieran commits en el repositorio público de ZLUDA. Dos años después, AMD decidió que la ejecución de aplicaciones CUDA en GPUs AMD no era de interés comercial, lo que, según los términos del contrato, permitió al desarrollador abrir sus trabajos. Dado que los fabricantes de GPU dejaron de financiar el proyecto, su futuro ahora depende del interés de la comunidad y de las propuestas de colaboración de otras empresas. Sin soporte externo, el proyecto podrá desarrollarse solo en direcciones que interesen personalmente al autor, como DLSS (Deep Learning Super Sampling).

En su estado actual, el nivel de calidad de la implementación se evalúa como una versión alpha. Sin embargo, ZLUDA ya puede utilizarse para ejecutar muchas aplicaciones CUDA, incluyendo Geekbench, 3DF Zephyr, Blender, Reality Capture, LAMMPS, NAMD, waifu2x, OpenFOAM y Arnold. Se ha asegurado un soporte mínimo para primitivos y bibliotecas cuDNN, cuBLAS, cuSPARSE, cuFFT, NCCL y NVML.

El primer inicio de aplicaciones CUDA bajo ZLUDA presenta retrasos significativos, debido a que ZLUDA compila el código GPU. En las ejecuciones posteriores, tal retraso no ocurre, ya que el código compilado se mantiene en caché. Durante la ejecución del código compilado, el rendimiento es cercano al nativo. Al realizar el paquete Geekbench en la GPU AMD Radeon 6800 XT, la variante del conjunto de pruebas para CUDA, ejecutada a través de ZLUDA, mostró un rendimiento notablemente más alto que la variante basada en OpenCL.

Se ha publicado el toolkit ZLUDA, que permite ejecutar aplicaciones CUDA en GPU AMD

El soporte del API oficial del controlador CUDA y la parte del API no documentada de CUDA que fue estudiada a través de ingeniería inversa se implementa en ZLUDA mediante el reemplazo de llamadas a funciones por funciones equivalentes proporcionadas en el entorno de ejecución HIP, que es muy similar a CUDA. Por ejemplo, la función cuDeviceGetAttribute() se reemplaza por hipDeviceGetAttribute(). De manera similar, se garantiza la compatibilidad con bibliotecas de NVIDIA, como NVML, cuBLAS y cuSPARSE, para las cuales ZLUDA proporciona bibliotecas de traducción con el mismo nombre y el mismo conjunto de funciones, construidas como capas sobre bibliotecas similares de AMD.

El código GPU de las aplicaciones, compilado en la representación PTX (Ejecución de Hilos Paralelos), se traduce mediante un compilador especial primero a una representación intermedia LLVM IR, a partir de la cual se genera el código binario para la GPU AMD.

Se ha publicado el toolkit ZLUDA, que permite ejecutar aplicaciones CUDA en GPU AMD


Fuente: opennet.ru
Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster