ZLUDA prend en charge cuFFT sur les GPU AMD via hipFFT
Une pull request fusionnée ajoute la bibliothèque cuFFT de NVIDIA à ZLUDA, permettant aux GPU AMD de faire tourner des unités Folding@Home basées sur CUDA sans modification de code.
2 min de lecture

Une nouvelle pull request pour ZLUDA, la couche open source qui fait tourner les logiciels CUDA de NVIDIA sur des cartes graphiques AMD, ajoute la prise en charge de cuFFT. Il s'agit de la bibliothèque de NVIDIA pour les transformées de Fourier rapides, un type de calcul qui extrait les fréquences contenues dans un signal. Le changement a été fusionné dans le projet le 22 septembre 2026. Phoronix rapporte que cela permet au client de calcul distribué Folding@Home de faire tourner du travail basé sur CUDA sur des GPU AMD Radeon, sans aucun changement dans le logiciel lui-même.
Une transformée de Fourier convertit un signal, comme une image ou un extrait audio, en une liste des fréquences qu'il contient. Des logiciels scientifiques, certains pipelines de machine learning et le client de repliement de protéines de Folding@Home s'appuient tous sur cuFFT pour ce calcul. Jusqu'ici, ce chemin de code ne fonctionnait que sur du matériel NVIDIA.
Comment fonctionne la traduction
ZLUDA intercepte les appels qu'un programme adresse aux bibliothèques CUDA de NVIDIA et les redirige plutôt vers des outils équivalents chez AMD. Pour cuFFT, la pull request fusionnée transmet ces appels à hipFFT, la bibliothèque FFT propre à AMD.
Un détail demandait un soin particulier. CUDA identifie chaque plan FFT par un nombre de 32 bits, appelé un handle. hipFFT utilise à la place un pointeur mémoire brut. Tronquer ou réinterpréter ce pointeur directement aurait pu faire planter le programme ou renvoyer silencieusement des résultats faux. La pull request construit donc un registre synchronisé qui associe les handles numériques de CUDA aux pointeurs de hipFFT. hipFFT se charge lui-même à l'exécution, avec un code d'initialisation distinct pour Windows et pour Linux.
Le portage ne couvre que les fonctions cuFFT qui ont un équivalent direct dans hipFFT, pas la bibliothèque entière. La pull request liste ce qui a été testé avant la fusion :
| Domaine testé | Résultat |
|---|---|
| Gestion du cycle de vie des handles | Réussi |
| Configuration de l'espace de travail | Réussi |
| Planification de transformées 64 bits | Réussi |
| Transformées 3D réel vers complexe | Réussi |
| Unités de travail Folding@Home Core24 et Core27 | Exécutées avec succès |
Ce qu'il reste à faire
Le mainteneur de ZLUDA, vosen, a signalé trois problèmes en relisant le changement, selon la pull request. Les identifiants de handle pourraient en théorie déborder. Un verrou global pourrait sérialiser les opérations FFT plus que nécessaire. Et certains codes d'erreur renvoyés par hipFFT ne sont pas encore associés au bon code d'erreur CUDA, un manque que la relecture qualifie de gravité moyenne à élevée.
Les tests sont aussi inégaux selon les plateformes. Les builds Windows et les tests sur matériel AMD ont tous deux réussi, et le code compile proprement sous Linux. Mais l'auteur de la pull request, AmosKito1, a écrit avoir une "capacité de test limitée sous Linux". Le chemin Linux a donc reçu moins d'usage réel que le chemin Windows jusqu'ici.
Ce que cela signifie pour les développeurs
Si votre logiciel appelle cuFFT et que vous voulez le tester sur du matériel AMD via ZLUDA, vérifiez d'abord que chaque fonction utilisée a un équivalent direct dans hipFFT. Le portage ne couvre pas encore toute l'API. Attendez-vous à ce que le chemin Windows soit mieux testé que le chemin Linux pour l'instant. Patientez avant d'utiliser ce portage pour une tâche longue ou critique pour la sécurité, le temps que les problèmes de débordement de handle et de correspondance d'erreurs signalés par vosen soient résolus.
Les utilisateurs de Folding@Home en profitent le plus clairement aujourd'hui. Leurs cartes AMD peuvent désormais prendre en charge des unités de travail CUDA qui ont besoin de cuFFT, un travail auparavant réservé aux GPU NVIDIA. Quiconque maintient du code scientifique ou de traitement du signal accéléré par GPU et reposant sur cuFFT dispose maintenant d'une seconde cible matérielle pour ses tests, sans devoir tout réécrire pour une bibliothèque AMD native.
Sources
- ZLUDA Now Implements Some NVIDIA cuFFT APIs With hipFFT - Phoronix
- Implement core cuFFT APIs with hipFFT (#672) - GitHub (vosen/ZLUDA)
Articles liés

Nouveau démarre sur le DGX Spark GB10 de Nvidia, officieusement
Un ingénieur de Red Hat a fait fonctionner le pilote open source Nouveau et NVK sur le DGX Spark GB10 de Nvidia. Il a fallu environ 100 correctifs, et l'intégration en amont n'est pas encore réglée.

Snapdragon X2 reçoit un premier aperçu Linux pour développeurs
L'aperçu Linux de Qualcomm pour Snapdragon X2 est arrivé le 23 septembre 2026, avec une prise en charge officielle du noyau prévue vers novembre 2026.

FEX-Emu détaille le coût du TSO x86 sur Arm
Émuler les règles mémoire de x86 sur Arm fait tomber le débit des accès non alignés à 8,5% de la référence. Les écritures combinées seraient 816 fois pires.