Saltar al contenido

ZLUDA añade soporte de cuFFT para GPU AMD vía hipFFT

Una pull request ya fusionada añade la biblioteca cuFFT de NVIDIA a ZLUDA, permitiendo que las GPU AMD ejecuten unidades de Folding@Home basadas en CUDA sin cambiar el código.

Por Tech AI Wire Team

2 min de lectura

XLinkedIn
A Sapphire AMD Radeon RX 7900 XTX graphics card with its triple-fan cooler, shot at an angle on a white background.
Foto: Geni

Una nueva pull request para ZLUDA, la capa de código abierto que ejecuta software CUDA de NVIDIA en tarjetas gráficas AMD, añade soporte para cuFFT. Esa es la biblioteca de NVIDIA para transformadas rápidas de Fourier, un tipo de cálculo que extrae la información de frecuencia de una señal. El cambio se fusionó en el proyecto el 22 de septiembre de 2026. Phoronix informa de que esto permite que el cliente de computación distribuida Folding@Home ejecute trabajo basado en CUDA en GPU AMD Radeon, sin cambios en el software en sí.

Una transformada de Fourier convierte una señal, como una imagen o un fragmento de audio, en una lista de las frecuencias que contiene. Software científico, algunos flujos de machine learning y el cliente de plegado de proteínas de Folding@Home dependen de cuFFT para ese cálculo. Hasta ahora, ese camino de código solo funcionaba en hardware NVIDIA.

Cómo funciona la traducción

ZLUDA intercepta las llamadas que un programa hace a las bibliotecas CUDA de NVIDIA y las redirige a herramientas equivalentes de AMD. Para cuFFT, la pull request fusionada reenvía esas llamadas a hipFFT, la biblioteca FFT propia de AMD.

Un detalle exigió cuidado especial. CUDA identifica cada plan de FFT con un número de 32 bits llamado handle. hipFFT usa en su lugar un puntero de memoria sin procesar. Truncar o reinterpretar ese puntero directamente podría haber bloqueado el programa o devuelto resultados erróneos en silencio. Por eso la pull request construye un registro sincronizado que asocia los handles numéricos de CUDA con los punteros de hipFFT. hipFFT se carga en tiempo de ejecución, con código de configuración distinto para Windows y para Linux.

El port cubre solo las funciones de cuFFT que tienen un equivalente directo en hipFFT, no la biblioteca completa. La pull request enumera lo que se probó antes de fusionar el cambio:

Área probadaResultado
Gestión del ciclo de vida del handleSuperada
Configuración del espacio de trabajoSuperada
Planificación de transformadas de 64 bitsSuperada
Transformadas 3D de real a complejoSuperada
Unidades de trabajo Folding@Home Core24 y Core27Ejecutadas con éxito

Qué queda por resolver

El mantenedor de ZLUDA, vosen, señaló tres problemas al revisar el cambio, según la pull request. Los identificadores de handle podrían desbordarse en teoría. Un bloqueo global podría serializar las operaciones de FFT más de lo necesario. Y algunos códigos de error que devuelve hipFFT aún no están asociados al código de error correcto de CUDA, un hueco que la revisión calificó de gravedad media a alta.

Las pruebas también son desiguales entre plataformas. Las compilaciones para Windows y las pruebas en hardware AMD pasaron ambas, y el código compila sin problemas en Linux. Pero el autor de la pull request, AmosKito1, escribió que tenía "capacidad limitada de pruebas en Linux". El camino de Linux ha recibido, por ahora, menos uso real que el de Windows.

Qué significa esto para los desarrolladores

Si tu software llama a cuFFT y quieres probarlo en hardware AMD a través de ZLUDA, comprueba primero que cada función que usas tiene un equivalente directo en hipFFT. El port todavía no cubre toda la API. Espera que el camino de Windows esté mejor probado que el de Linux por ahora. Espera a que se cierren los huecos de desbordamiento de handles y de mapeo de errores señalados por vosen antes de usarlo para algo de larga duración o crítico para la seguridad.

Los usuarios de Folding@Home obtienen hoy el beneficio más claro. Sus tarjetas AMD ya pueden asumir unidades de trabajo CUDA que necesitan cuFFT, trabajo que antes iba solo a GPU NVIDIA. Cualquiera que mantenga código científico o de procesamiento de señales acelerado por GPU y basado en cuFFT tiene ahora un segundo objetivo de hardware para probar, sin tener que reescribirlo para una biblioteca nativa de AMD.

Fuentes

  1. ZLUDA Now Implements Some NVIDIA cuFFT APIs With hipFFT - Phoronix
  2. Implement core cuFFT APIs with hipFFT (#672) - GitHub (vosen/ZLUDA)

Artículos relacionados

An Arm single-board computer photographed from directly above on a gray backdrop, the arm wordmark on its processor package.
Herramientas dev

FEX-Emu desglosa el coste del TSO de x86 en Arm

Emular las reglas de memoria de x86 en Arm baja el rendimiento de los accesos no alineados al 8,5% de la referencia. Las escrituras combinadas serían 816 veces peores.