Intelligence artificielle22 juin 2026· via MarkTechPost

MoonMath AI améliore la vitesse d’attention de l’AMD MI300X avec un noyau HIP

MoonMath AI améliore la vitesse d’attention de l’AMD MI300X avec un noyau HIP

MoonMath AI a publié un noyau d’attention forward en bf16 open-source pour le GPU AMD MI300X, écrit en HIP plutôt qu’en assembleur optimisé manuellement. Les tests montrent qu’il surpasse l’AITER v3 d’AMD dans toutes les configurations testées, avec des gains de performance allant jusqu’à 1,26× et une accélération moyenne de 1,18×, 1,15× et 1,08× selon le mode d’arrondi. Le noyau, disponible sous licence MIT, cible l’ISA gfx942 d’AMD et est conçu exclusivement pour le MI300X.

Une approche pratique pour l’optimisation GPU

Contrairement aux noyaux traditionnels basés sur l’assembleur, l’implémentation de MoonMath exploite un code HIP compatible avec les compilateurs tout en conservant un contrôle de bas niveau sur l’exécution. La technique centrale consiste à encapsuler une seule instruction MFMA (matrix-fused multiply-add) dans une fonction de périphérique, en utilisant des contraintes d’assembleur étendues pour spécifier les opérandes sans gestion manuelle des registres. En liant directement les registres d’entrée et de sortie, le compilateur évite les transferts de données inutiles, gardant le noyau propre tout en préservant les performances.

Stratégie de mémoire et d’exécution

Les gains de performance proviennent d’un placement stratégique de la mémoire : les matrices clés sont chargées dans le LDS (local data share), les vecteurs de valeurs sont mis en cache dans le L1, tandis que les vecteurs de requête et les accumulateurs résident dans les registres. Le noyau traite huit waves par bloc d’unité de calcul, divisés en deux groupes synchronisés qui alternent entre les opérations matricielles et les calculs de softmax. Deux synchronisations par itération aident à maintenir l’efficacité, garantissant que le cœur matriciel reste actif tout au long de l’exécution.

Impact réel et limites

Un déploiement en production avec SGLang a montré une accélération de 1,23× pour le modèle de diffusion vidéo Wan2.1, sans régression de qualité. Cependant, le noyau présente des contraintes : il prend en charge les entrées bf16 dans les mises en page BSHD ou BHSD, une dimension de tête fixe de 128, et exclut des fonctionnalités comme le masking causal, l’attention à requêtes groupées ou le batching de longueurs variables. Les sorties restent numériquement cohérentes avec l’AITER v3, respectant les règles d’arrondi et gérant de manière déterministe les cas particuliers comme NaN et Inf.


Source : MarkTechPost. Synthèse éditoriale assistée par IA — TechnoExpress.

Lire la source originale sur MarkTechPost →

← Retour à l'accueil