-
Importance de MLC-LLM
- MLC-LLM permet de compiler et de déployer des LLM sur les GPU AMD en utilisant ROCm
- Le GPU AMD Radeon™ RX 7900 XTX atteint 80 % des performances de NVIDIA® GeForce RTX™ 4090 et 94 % de celles de la RTX™ 3090 Ti
- Grâce à la prise en charge de Vulkan, il est également possible de déployer des LLM sur des appareils AMD APU comme la SteamDeck
-
Contexte
- Depuis la diffusion des LLM open source, de nombreuses solutions d’inférence LLM sont apparues
- La plupart des solutions d’inférence performantes sont basées sur CUDA et optimisées pour les GPU NVIDIA
- En raison de la forte demande de disponibilité du calcul, il est utile de prendre en charge un éventail plus large d’accélérateurs matériels
- AMD constitue un candidat potentiel
-
Matériel et logiciel
- Le AMD RX 7900 XTX dispose de spécifications comparables au NVIDIA RTX 4090 et à la RTX 3090 Ti
- Les deux modèles disposent de 24 Go de mémoire, ce qui permet d’héberger des modèles de même taille
- En FP16, la 4090 est deux fois plus performante que la 7900 XTX, et la 3090 Ti est 1,3 fois plus performante
- Le RX 7900 XTX coûte 40 % moins cher que la 4090
- La raison pour laquelle AMD est resté en retrait par le passé est un manque de support logiciel, pas de matériel
-
Compilation de machine learning pour ROCm
- La machine learning compilation (MLC) est une nouvelle technologie qui automatise l’optimisation des tâches de machine learning
- MLC-LLM, basé sur Apache TVM Unity, offre un déploiement universel haute performance pour différents backends
- Grâce à un workflow Python, il compile les modèles de langage et optimise la disposition et le scheduling des kernels GPU
-
MLC pour GPU et APU AMD
- Plusieurs méthodes de prise en charge des GPU AMD : ROCm, OpenCL, Vulkan, WebGPU
- La pile ROCm, portée par AMD récemment, reprend de nombreux composants de la pile CUDA
- Vulkan, un standard graphique de nouvelle génération, offre la prise en charge la plus large sur l’ensemble des dispositifs GPU
- MLC prend en charge la génération de code automatique, et prend en charge plusieurs approches sans avoir à reconstruire chaque kernel GPU
-
Benchmarks avec le package Python MLC
- Les modèles Llama 2 7B et 13B ont été benchmarkés avec une quantification 4 bits
- Les performances d’inférence en lot unique atteignent 80 % de la vitesse de la NVIDIA 4090 avec la sortie de ROCm 5.6
-
Exécution avec Vulkan sur SteamDeck
- Exécution possible sur une SteamDeck avec APU AMD via Vulkan
- Sous ROCm, la VRAM GPU est limitée à 4 Go par le BIOS, mais le pilote Mesa Vulkan étend cette mémoire à 16 Go grâce à la mémoire unifiée
-
Discussion et travaux futurs
- La disponibilité du matériel s’est imposée comme une question majeure à l’ère de l’IA générative
- La compilation ML permet un déploiement universel performant sur l’ensemble des backends matériels
- La recherche sur les GPU grand public pourrait se généraliser aux GPU cloud
- La communauté est encouragée à construire des solutions basées sur le flux de déploiement universel de MLC
-
Conclusion
- L’ingénierie des systèmes ML reste un enjeu permanent
- NVIDIA reste en tête de ce domaine grâce à son innovation, et devrait évoluer avec les avancées de nouveaux matériels et logiciels
- Grâce au flux de développement de la compilation ML basée sur Python, le support d’optimisation ROCm a pu être obtenu en quelques heures
-
Liens et remerciements
- Pour les détails sur le déploiement de MLC LLM, consultez la page du projet
- Le code source de MLC LLM est disponible sur le dépôt GitHub officiel
- Remerciements à la communauté Apache TVM et aux développeurs du compilateur TVM Unity
1 commentaires
Avis sur Hacker News