Lancement de ZLUDA 5, une implémentation ouverte universelle de la technologie CUDA

Andrzej Janik a présenté la version ZLUDA 5, une implémentation open-source de la technologie CUDA. L'objectif du projet est de permettre l'exécution d'applications CUDA non modifiées sur des systèmes avec des GPU différents de ceux de NVIDIA, offrant des performances proches de celles des applications exécutées sans couches. Le code du projet est écrit en Rust et est distribué sous les licences MIT et Apache 2.0.

ZLUDA 5 est devenu la deuxième version majeure du projet, formée après le nettoyage de la base de code des éléments développés pendant le passage d'Andrzej chez AMD. Depuis 2022, Andrzej travaillait chez AMD sur la création d'une couche de compatibilité pour les GPU AMD avec CUDA, mais en 2024, le projet a été interrompu. Conformément aux conditions du contrat et après obtention de l'autorisation de publication de la part d'un représentant d'AMD, Andrzej a ouvert le code des travaux réalisés pendant son temps chez AMD, permettant l'exécution d'applications CUDA au-dessus de la pile ROCm et de l'environnement d'exécution HIP (Heterogeneous-computing Interface for Portability).

L'année dernière, Andrzej a été contraint de retirer le code de l'accès public après un courrier des avocats, indiquant que l'autorisation donnée lors des échanges par email n'avait aucune valeur juridique. Par la suite, Andrzej a commencé à travailler sur une nouvelle édition de ZLUDA, basée sur la base de code existante avant le début de son travail chez AMD. Dans sa forme actuelle, le développement est concentré sur l'exécution d'applications utilisant CUDA pour accélérer des tâches liées à l'apprentissage machine. Le projet se limite pour l'instant au fonctionnement sur des GPU AMD, mais sera prochainement adapté pour les GPU Intel.

Améliorations clés dans la nouvelle version :

  • Ajout d'un support initial pour l'exécution sur ZLUDA des frameworks llm.c, Llama.cpp et PyTorch pour exécuter de grands modèles linguistiques utilisant des optimisations CUDA, applicables aux GPU NVIDIA.
  • Implémentation d'un support initial pour l'exécution d'applications utilisant les bibliothèques cuBLAS, cuBLASLt et nvml pour améliorer les performances.
  • Ajout de la couche zluda_trace pour le traçage des applications utilisant CUDA. Avec zluda_trace, il est possible de diagnostiquer des problèmes et d'identifier des lacunes dans ZLUDA qui empêchent le bon fonctionnement de l'application.
  • Un utilitaire en ligne de commande zoc (compilateur hors ligne ZLUDA) a été présenté, permettant de compiler des fichiers d'instructions NVIDIA PTX en une représentation intermédiaire AMD RDNA (auparavant, cette fonctionnalité était disponible sous forme de fonctions de bibliothèque).
  • Dans le chargeur de modules PTX, un mécanisme de mise en cache des cœurs exécutés sur le GPU a été mis en place. La mise en cache permet d'éviter la répétition des opérations coûteuses de compilation des instructions PTX (Parallel Thread Execution) en code machine pour un GPU donné.

    Source : opennet.ru
Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster