Une carte exécute un grand modèle, les performances atteignent 80% de 4090 et le prix n'est que de moitié: produit par l'équipe Chen Tianqi TVM

Source | Machine Heart ID | presquehuman2014 Récemment, de nombreuses personnes dans le domaine de la technologie se sont inquiétées de la puissance de calcul.

modifier

Ajoutez des annotations d'image, pas plus de 140 mots (facultatif)

Altman, PDG d'OpenAI : Je pense aux flops toute la journée.

Depuis l'essor des grands modèles pré-formés, les défis de puissance de calcul auxquels les gens sont confrontés sont devenus de plus en plus importants. À cette fin, de nombreuses solutions d'entraînement et d'inférence ont été proposées pour les grands modèles de langage (LLM). De toute évidence, la plupart des solutions d'inférence hautes performances sont basées sur CUDA et optimisées pour les GPU NVIDIA.

Cependant, avec la taille du modèle de centaines de milliards de paramètres, la concurrence féroce de nombreuses entreprises technologiques et les efforts conjoints d'un seul fournisseur, il est devenu difficile de saisir les GPU.

Récemment, des entreprises telles que Microsoft et OpenAI ont déclaré qu'elles prenaient les mesures nécessaires pour pallier la pénurie de GPU dédiés H100 et A100 pour les tâches d'IA. Microsoft limite le temps pendant lequel les employés peuvent accéder aux GPU, et le PDG de Quora affirme que les pénuries de matériel cachent le véritable potentiel des applications d'IA. Elon Musk a également plaisanté en disant que les GPU d'entreprise sont plus difficiles que d'acheter des "médicaments".

Modifier basculer au centre

Ajoutez des annotations d'image, pas plus de 140 mots (facultatif)

Musk prédit que GPT-5 aura besoin d'environ 30 000 à 50 000 H100 pour la formation.

En plus de faire grimper le cours de l'action Nvidia et de lui faire modifier son plan de production, la forte demande a également obligé les gens à chercher d'autres alternatives. La bonne nouvelle est que les cartes N ne sont pas les seules sur le marché des puces graphiques.

Hier, Bohan Hou, doctorant à l'Université Carnegie Mellon, a publié une nouvelle solution d'utilisation des cartes graphiques AMD pour le raisonnement de modèles à grande échelle, qui a immédiatement attiré l'attention de la communauté de l'apprentissage automatique.

Modifier basculer au centre

Ajoutez des annotations d'image, pas plus de 140 mots (facultatif)

Au CMU, le mentor de Hou Bohan est Chen Tianqi, l'auteur de TVM, MXNET et XGBoost. Pour cette nouvelle pratique, Chen Tianqi a déclaré que la solution à la pénurie de matériel d'IA dépendait toujours du logiciel Apportons un grand modèle open source de déploiement hautes performances et à usage général.

Modifier basculer au centre

Ajoutez des annotations d'image, pas plus de 140 mots (facultatif)

Sur Zhihu, l'auteur a donné une introduction détaillée à la réalisation du raisonnement LLM haute performance :

Modifier basculer au centre

Ajoutez des annotations d'image, pas plus de 140 mots (facultatif)

Grâce à cette méthode d'optimisation, dans les derniers modèles Llama2 7B et 13B, si une AMD Radeon RX 7900 XTX est utilisée, la vitesse peut atteindre 80 % de la NVIDIA RTX 4090, ou 94 % de la 3090Ti.

En plus de ROCm, ce support Vulkan nous permet de généraliser le déploiement de gros modèles à d'autres types de puces AMD, comme SteamDeck avec AMD APU.

Modifier basculer au centre

Ajoutez des annotations d'image, pas plus de 140 mots (facultatif)

Si nous faisons une comparaison rapide des spécifications, nous pouvons voir que le RX 7900 XTX d'AMD est dans une classe similaire aux RTX 4090 et RTX 3090 Ti de Nvidia.

Ils ont tous deux 24 Go de mémoire, ce qui signifie qu'ils peuvent accueillir des modèles de même taille, et ils ont tous une bande passante mémoire similaire.

Modifier basculer au centre

Ajoutez des annotations d'image, pas plus de 140 mots (facultatif)

Mais en termes de puissance de calcul, les performances FP16 du RTX 4090 sont deux fois supérieures à celles du 7900 XTX, et les performances FP16 du 3090 Ti sont 1,3 fois supérieures à celles du 7900 XTX. Si seule l'inférence de grand modèle sensible à la latence est prise en compte, ses performances sont principalement limitées par la mémoire, de sorte que les performances du FP16 ne sont pas le goulot d'étranglement ici.

En termes de prix, le RX 7900 XTX est plus de 40% moins cher que le RTX 4090 (même 50% sur JD.com), et le premier est presque à égalité avec le RTX 4080 dans le domaine grand public.

Le prix du 3090Ti est difficile à comparer, après tout, c'est le produit de la génération précédente. Mais du point de vue des spécifications matérielles pures, l'AMD 7900 XTX semble être à égalité avec le RTX 3090 Ti.

Nous savons que la puissance de calcul de la couche matérielle n'est pas nécessairement la raison pour laquelle AMD a longtemps pris du retard dans l'apprentissage automatique - la principale lacune réside dans le manque de support logiciel et d'optimisation des modèles associés. D'un point de vue écologique, deux facteurs ont commencé à modifier le statu quo :

  • AMD travaille dur pour augmenter ses investissements dans la plate-forme ROCm.

  • Les technologies émergentes telles que la compilation d'apprentissage automatique contribuent désormais à réduire le coût global d'une prise en charge logicielle plus générale sur les backends.

Les chercheurs discutent en profondeur de la manière dont l'architecture GPU AMD se compare aux solutions CUDA hautes performances sur les GPU Nvidia actuellement populaires.

Compilation d'apprentissage automatique avec ROCm

Compilation d'apprentissage automatique

Machine Learning Compilation est une technologie émergente permettant de compiler et d'optimiser automatiquement des modèles d'apprentissage automatique. Au lieu d'écrire des opérateurs spécifiques pour chaque backend (tels que ROCm ou CUDA), les solutions MLC génèrent automatiquement du code pour différents backends. Ici, les auteurs exploitent MLC-LLM, une solution basée sur la compilation d'apprentissage automatique qui fournit un déploiement à usage général hautes performances de LLM. MLC-LLM est construit sur Apache TVM Unity, une pile logicielle de compilation d'apprentissage automatique qui fournit un développement efficace basé sur Python et un déploiement polyvalent. MLC-LLM fournit des performances de pointe pour une variété de backends (y compris CUDA, Metal, ROCm, Vulkan et OpenCL), allant des GPU de niveau serveur aux appareils mobiles (iPhone et Android).

Dans l'ensemble, MLC-LLM permet aux utilisateurs d'obtenir de grands modèles de langage open source à l'aide d'un flux de travail basé sur Python, y compris la transformation de graphes de calcul, l'optimisation des dispositions et des calendriers de tenseurs pour les opérateurs GPU et le déploiement local sur des plateformes d'intérêt.

Modifier basculer au centre

Ajoutez des annotations d'image, pas plus de 140 mots (facultatif)

Pile technologique de compilation d'apprentissage automatique pour ROCm.

MLC pour GPU et APU AMD

Il n'est pas rare que les gens explorent l'utilisation des cartes A pour l'apprentissage automatique.Il existe plusieurs voies techniques possibles pour prendre en charge le GPU AMD : ROCm, OpenCL, Vulkan et WebGPU. La pile technologique ROCm a été récemment introduite par AMD et présente de nombreuses similitudes avec la pile technologique CUDA. Vulkan est la dernière norme de rendu graphique qui offre une large prise en charge d'une grande variété de périphériques GPU. WebGPU est la dernière norme Web qui permet à l'informatique d'être exécutée sur des navigateurs Web.

Bien qu'il existe un si grand nombre de voies possibles, peu de solutions prennent en charge des méthodes autres que CUDA, en grande partie à cause des coûts d'ingénierie prohibitifs liés à la réplication de la pile technologique pour les nouveaux modèles de programmation matérielle ou GPU. MLC-LLM prend en charge toutes les méthodes ci-dessus en permettant la génération automatique de code sans re-personnalisation pour chaque opérateur GPU. Cependant, les performances finales dépendent toujours de la qualité de l'exécution du GPU et de la disponibilité sur chaque plate-forme.

Dans ce cas, l'auteur choisit le ROCm de Radeon 7900 XTX et le Vulkan de l'APU de Steamdeck, et on peut constater que la pile technologique ROCm est prête à l'emploi. En raison du processus de développement efficace basé sur Python dans l'unité TVM, plusieurs heures ont été consacrées à l'optimisation des performances de ROCm. Plus précisément, les chercheurs ont pris les mesures suivantes pour fournir un soutien ROCm :

  • Réutilisez l'intégralité du pipeline MLC des backends existants tels que CUDA et Metal, y compris la planification de la mémoire, la fusion des opérateurs, etc.

  • Réutilisez les opérateurs GPU à usage général dans TVM TensorIR pour optimiser l'espace et sélectionnez son backend comme GPU AMD

  • Réutilisez le processus de génération de code ROCm de TVM pour générer du code ROCm via LLVM.

  • Enfin, le code généré est exporté sous forme de bibliothèque partagée ou statique pouvant être appelée par CLI, Python et API REST.

Tests de performances à l'aide du package MLC Python

Les auteurs ont effectué des tests de performances sur Llama 2 7B et 13B en utilisant une quantification 4 bits. Les performances de décodage sont mesurées en définissant la longueur d'invite sur 1 jeton et en générant 512 jetons. Tous les résultats sont testés avec une taille de lot=1.

Modifier basculer au centre

Ajoutez des annotations d'image, pas plus de 140 mots (facultatif)

Comparaison des performances entre AMD RX 7900 XTX et NVIDIA RTX 4090 et 3090 Ti.

Basé sur ROCm5.6, AMD 7900 XTX peut atteindre 80 % de la vitesse de NVIDIA 4090.

Remarque sur les performances de CUDA : comment la ligne de base CUDA fonctionne-t-elle ici ? À notre connaissance, MLC-LLM est la solution optimale pour l'inférence de grands modèles de langage sur CUDA. Mais l'auteur estime qu'il y a encore place à l'amélioration, par exemple grâce à une meilleure optimisation de l'attention des opérateurs. Une fois ces optimisations mises en œuvre dans MLC, attendez-vous à ce qu'AMD et NVIDIA améliorent leurs chiffres.

Si ces optimisations n'étaient implémentées que sur les cartes N, cela augmenterait l'écart de 20% à 30%. Par conséquent, les auteurs recommandent de placer une marge d'erreur de 10% lors de l'examen de ces chiffres.

essayez vous-même

Le projet fournit des packages d'installation prédéfinis et des instructions permettant aux utilisateurs de reproduire les nouveaux résultats sur leurs propres appareils. Pour exécuter ces benchmarks, assurez-vous d'avoir un GPU AMD avec ROCm 5.6 ou version ultérieure installé sur votre machine Linux. Suivez les instructions ici (https://mlc.ai/mlc-llm/docs/get_started/try_out.html) pour installer le package MLC pré-construit avec ROCm activé.

Pour exécuter le script Python suivant, le package MLC est nécessaire pour reproduire les données de performances :

 
 
 
 

de mlc_chat importer ChatModule

MLC-LLM fournit également une interface de ligne de commande, CLI, qui permet aux utilisateurs de discuter de manière interactive avec le modèle. Pour ROCm, la CLI doit être créée à partir de la source. Suivez les instructions ici (https://mlc.ai/mlc-llm/docs/deploy/cli.html#option-2-build-mlc-runtime-from-source) pour créer la CLI à partir de la source.

Exécuter Vulkan sur SteamDeck avec mémoire unifiée

L'auteur a déclaré qu'une gamme plus large d'appareils AMD sera également examinée, et plus précisément, Steam Deck avec AMD APU. Alors que la VRAM GPU disponible dans ROCm est limitée à 4 Go dans le BIOS, le pilote Mesa Vulkan a un support solide pour permettre aux tampons d'aller au-delà du plafond, jusqu'à 16 Go en utilisant la mémoire unifiée, assez pour exécuter Llama-7B quantifié 4 bits.

Modifier basculer au centre

Ajoutez des annotations d'image, pas plus de 140 mots (facultatif)

Interagissez avec de grands modèles linguistiques sur Steam Deck.

Ces résultats mettent en lumière la nécessité de soutenir des types de consommateurs plus diversifiés.

Discussion et orientations futures

À l'ère de l'IA générative, la disponibilité du matériel est devenue un problème urgent. La compilation ML peut améliorer la disponibilité du matériel en fournissant un déploiement commun hautes performances sur les backends matériels.

Compte tenu des données présentées dans cet article, les auteurs estiment que dans les bonnes conditions de prix et de disponibilité, les GPU AMD peuvent commencer à être utilisés pour l'inférence LLM.

Dans l'équipe de Tianqi Chen, la recherche se concentre actuellement sur les GPU grand public. Selon les auteurs, sur la base de l'expérience passée, les optimisations MLC pour les modèles de GPU grand public peuvent souvent être généralisées aux GPU cloud (par exemple, de RTX 4090 à A100 et A10g), convaincus que la solution est comparable entre le cloud et le consommateur. GPU AMD et NVIDIA. En attendant, les auteurs attendent avec impatience que la communauté de recherche élabore des solutions en plus du processus de déploiement commun de MLC.

Ce document est un effort progressif visant à soutenir la recherche d'un déploiement efficace et polyvalent de l'apprentissage automatique via MLC. Les chercheurs promeuvent également activement les résultats dans les directions suivantes :

  • Activer la prise en charge du traitement par lots et multi-GPU (particulièrement important pour l'inférence côté serveur) ;

  • Intégration avec l'écosystème PyTorch ;

  • Prise en charge de plus d'architectures de quantification et de modèles ;

  • Plus d'optimisations automatiques sur plus de backends matériels.

L'ingénierie des systèmes d'apprentissage automatique est un problème permanent, et Nvidia reste le leader en termes d'innovation continue, et les auteurs s'attendent à ce que tout le domaine change avec de nouveaux matériels tels que le H100, et plus important encore, l'évolution des logiciels. La question clé n'est donc pas seulement de créer la bonne solution maintenant, mais de savoir comment continuer à rattraper son retard et à intégrer l'ingénierie de l'apprentissage automatique à de nouvelles plates-formes. Dans ce processus, la productivité de l'ingénierie de l'apprentissage automatique est essentielle.

Grâce au flux de développement de compilation ML basé sur Python, nous pouvons obtenir une assistance pour l'optimisation ROCm en quelques heures. On s'attend à ce que la nouvelle méthode proposée ici devienne plus utile lors de l'exploration d'idées sur le déploiement général et la résolution des problèmes de disponibilité du matériel.

Ressources associées

Le projet a été publié sur GitHub. Voir la page du projet pour un guide détaillé sur la façon d'essayer le déploiement MLC LLM. Le code source de MLC LLM est disponible sur le GitHub officiel.

  • Page du projet : https://mlc.ai/mlc-llm/docs/

  • GitHub:https://github.com/mlc-ai/mlc-llm/

Contenu de référence : https://blog.mlc.ai/2023/08/09/Making-AMD-GPUs-competitive-for-LLM-inferencehttps://zhuanlan.zhihu.com/p/649088095

Je suppose que tu aimes

Origine blog.csdn.net/lqfarmer/article/details/132238144
conseillé
Classement