Maison >Périphériques technologiques >IA >Une seule carte exécute Llama 70B plus rapidement que deux cartes, Microsoft vient de mettre le FP6 dans l'Open source A100 |

Une seule carte exécute Llama 70B plus rapidement que deux cartes, Microsoft vient de mettre le FP6 dans l'Open source A100 |

PHPz
PHPzavant
2024-04-29 16:55:121271parcourir

FP8 et la précision de quantification inférieure en virgule flottante ne sont plus le « brevet » du H100 !

Lao Huang voulait que tout le monde utilise INT8/INT4. L'équipe Microsoft DeepSpeed ​​​​a commencé à exécuter de force FP6 sur A100 sans le support officiel de NVIDIA.

单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源

Les résultats des tests montrent que la vitesse de quantification FP6 de la nouvelle méthode TC-FPx sur l'A100 est proche ou même parfois dépasse INT4, et qu'elle a une précision plus élevée que cette dernière. Sur cette base, il existe également un

support de bout en bout de grands modèles, qui a été open source et intégré dans des cadres d'inférence d'apprentissage profond tels que DeepSpeed. Ce résultat a également un effet immédiat sur l'accélération des grands modèles : dans ce cadre, en utilisant une seule carte pour exécuter Llama, le débit est 2,65 fois supérieur à celui des cartes doubles.

Après l'avoir lu, un chercheur en apprentissage automatique a déclaré que les recherches de Microsoft pouvaient être qualifiées de folles.

单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源les packs d'émoticônes sont également en ligne immédiatement, soyez comme :

NVIDIA : Seul le H100 supporte le FP8.

Microsoft : Très bien, je le ferai moi-même.

单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源Alors, quels types d'effets ce cadre peut-il produire et quel type de technologie est utilisé derrière ?

En utilisant FP6 pour exécuter Llama, une seule carte est plus rapide que deux cartes

L'utilisation de la précision FP6 sur A100 apporte

amélioration des performances au niveau du noyau. Les chercheurs ont sélectionné des couches linéaires dans des modèles Llama et des modèles OPT de différentes tailles et les ont testés à l'aide de CUDA 11.8 sur la plate-forme GPU NVIDIA A100-40GB.

Les résultats se comparent à ceux officiels de NVIDIA cuBLAS

(W16A16)

et TensorRT-LLM(W8A16), TC-FPx(W6A16)speedL'amélioration de la vitesse maximale est respectivement de 2,6 fois et 1,9 fois. Par rapport à la méthode 4 bits BitsandBytes

(W4A16)

, l'amélioration de la vitesse maximale de TC-FPx est de 8,9 fois.

(W et A représentent respectivement la largeur de bit de quantification de poids et la largeur de bit de quantification d'activation)

单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源△Données normalisées, le résultat cuBLAS étant 1

En même temps, le noyau TC-FPx réduit également le besoin d'accès à la mémoire DRAM et améliore l'utilisation de la bande passante DRAM et l'utilisation des cœurs Tensor, ainsi que l'utilisation des unités ALU et FMA.

单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源Le

cadre d'inférence de bout en bout FP6-LLM conçu sur la base de TC-FPx apporte également des améliorations significatives des performances aux grands modèles. En prenant Llama-70B comme exemple, le débit d'exécution de FP6-LLM sur une seule carte est 2,65 fois supérieur à celui du FP16 sur des cartes doubles, et la latence dans les tailles de lots inférieures à 16 est également inférieure à celle du FP16.

单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源Pour le modèle OPT-30B avec un plus petit nombre de paramètres (FP16 utilise également une seule carte), FP6-LLM apporte également une amélioration significative du débit et une réduction de la latence.

Et la taille de lot maximale prise en charge par une seule carte FP16 dans cette condition n'est que de 4, mais FP6-LLM peut fonctionner normalement avec une taille de lot de 16.

单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源Alors, comment l'équipe Microsoft a-t-elle réalisé la quantification FP16 sur A100 ?

Solution de noyau repensée

Afin de prendre en charge la précision, y compris 6 bits, l'équipe TC-FPx a conçu une solution de noyau unifiée qui peut prendre en charge des poids de quantification de différentes largeurs de bits.

Par rapport à la méthode traditionnelle dual-core, TC-FPx réduit le nombre d'accès à la mémoire et améliore les performances en intégrant la déquantification et la multiplication matricielle dans un seul cœur.

Le secret principal pour obtenir une quantification de faible précision est de « déguiser » les données de précision FP6 en FP16 grâce à la déquantification, puis de les transmettre au GPU pour le calcul au format FP16.

单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源

Dans le même temps, l'équipe a également utilisé la technologie de pré-emballage au niveau des bits pour résoudre le problème selon lequel le système de mémoire GPU n'est pas compatible avec des largeurs de bits non puissantes de 2 (telles que 6 -peu).

Plus précisément, le pré-packing au niveau des bits est la réorganisation des données de poids avant l'inférence du modèle, y compris la réorganisation des poids quantifiés sur 6 bits afin qu'ils puissent être consultés de manière conviviale pour le système de mémoire GPU.

De plus, étant donné que les systèmes de mémoire GPU accèdent généralement aux données par blocs de 32 ou 64 bits, la technologie de pré-emballage au niveau des bits emballera également des poids de 6 bits afin qu'ils puissent être stockés et accessibles sous la forme de ceux-ci alignés. blocs.

单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源

Une fois le pré-conditionnement terminé, l'équipe de recherche utilise les capacités de traitement parallèle du noyau SIMT pour effectuer une déquantification parallèle sur les poids FP6 dans le registre afin de générer des poids au format FP16.

Les poids FP16 déquantifiés sont reconstruits dans le registre puis envoyés au Tensor Core. Les poids FP16 reconstruits sont utilisés pour effectuer des opérations de multiplication matricielle pour compléter le calcul de la couche linéaire.

Dans ce processus, l'équipe a profité du parallélisme au niveau des bits du noyau SMIT pour améliorer l'efficacité de l'ensemble du processus de déquantification.

单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源

Afin de permettre à la tâche de reconstruction du poids de se dérouler en parallèle, l'équipe a également utilisé une technologie de épissage parallèle des poids.

Plus précisément, chaque poids est divisé en plusieurs parties, et la largeur de bit de chaque partie est une puissance de 2 (comme diviser 6 en 2+4 ou 4+2).

Avant la déquantification, les poids sont d'abord chargés dans des registres à partir de la mémoire partagée. Étant donné que chaque poids est divisé en plusieurs parties, le poids complet doit être reconstruit au niveau du registre au moment de l'exécution.

Afin de réduire les frais d'exécution, TC-FPx propose une méthode d'extraction et d'épissage parallèles des poids. Cette approche utilise deux ensembles de registres pour stocker des segments de 32 poids FP6, en reconstruisant ces poids en parallèle.

Dans le même temps, afin d'extraire et de fusionner les poids en parallèle, il est nécessaire de s'assurer que la disposition initiale des données répond aux exigences de commande spécifiques, de sorte que TC-FPx réorganise les fragments de poids avant de s'exécuter.

单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源

De plus, TC-FPx a également conçu un pipeline logiciel, qui intègre l'étape de déquantification à l'opération de multiplication matricielle de Tensor Core, améliorant l'efficacité globale de l'exécution grâce au parallélisme au niveau des instructions.

单卡跑Llama 70B快过双卡,微软硬生生把FP6搞到了A100里 | 开源

Adresse papier : https://arxiv.org/abs/2401.14112

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer