L’API de fragments WMMA
Charger, exécuter mma_sync et stocker les fragments
L’API de fragments WMMA est une leçon CUDA Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage CUDA Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours CUDA Academy comprend 4 leçons au total.
L’API WMMA
Pour programmer directement les Tensor Cores, utilisez WMMA, l’API de multiplication-accumulation matricielle par paquet d’exécution dans l’espace de noms nvcuda::wmma. 🧩
Tout un paquet d’exécution coopère
WMMA fonctionne à l’échelle du paquet : les 32 threads d’un paquet d’exécution travaillent ensemble sur un bloc. Vous raisonnez en blocs, et non en threads individuels.
Découvrez le fragment
Un fragment est le type de données WMMA qui contient la portion d’un paquet d’exécution dans un bloc matriciel. Chaque thread possède discrètement quelques-uns de ses éléments.
Trois rôles de fragment
Vous déclarez des fragments marqués matrix_a, matrix_b ou accumulator. Cette indication précise à WMMA comment le bloc intervient dans la multiplication-accumulation.
Les formes des blocs sont fixes
Les fragments utilisent des tailles de bloc définies, comme 16 par 16 par 16. Vous choisissez une forme prise en charge ; le matériel n’accepte que ces combinaisons.
Étape 1 : charger
Vous appelez d’abord load_matrix_sync pour charger un bloc depuis la mémoire dans un fragment. Ce chargement répartit les données dans le paquet d’exécution pour vous.
wmma::load_matrix_sync(a_frag, ptr, ldm);Étape 2 : effacer l’accumulateur
Avant l’addition, vous mettez à zéro le bloc de résultats avec fill_fragment. Un accumulateur propre signifie que vos sommes commencent avec une valeur connue.
wmma::fill_fragment(c_frag, 0.0f);Étape 3 : multiplier-accumuler
L’appel central est mma_sync. Il exécute D = A fois B plus C sur les fragments chargés en utilisant directement les Tensor Cores.
wmma::mma_sync(c_frag, a_frag, b_frag, c_frag);Étape 4 : stocker
Enfin, store_matrix_sync écrit le fragment accumulateur dans la mémoire. Ce stockage rassemble les éléments de chaque thread en un seul bloc.
wmma::store_matrix_sync(out, c_frag, ldm, layout);Sync signifie synchronisé au niveau du paquet
Le suffixe _sync vous le rappelle : chaque appel WMMA est synchronisé au niveau du paquet d’exécution. Les 32 voies doivent toutes l’atteindre ensemble, sinon le comportement est indéfini.
Disposition et dimension principale
Les chargements et les stockages nécessitent la dimension principale, c’est-à-dire le pas entre les lignes, ainsi qu’une disposition par lignes ou par colonnes pour lire correctement la mémoire.
Vérification rapide
Quel appel WMMA exécute réellement la multiplication-accumulation matricielle sur les Tensor Cores ?
Récapitulatif
Vous avez parcouru le fonctionnement de WMMA : déclarer un fragment, charger les blocs, effacer l’accumulateur, appeler mma_sync, puis stocker le résultat. Chaque étape est synchronisée au niveau du paquet d’exécution. 🙌
Questions Fréquemment Posées
La leçon « L’API de fragments WMMA » est-elle gratuite ?
Oui — le texte complet de « L’API de fragments WMMA » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours CUDA Academy, passe à CoddyKit PRO. Le cours CUDA Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « L’API de fragments WMMA » ?
Charger, exécuter mma_sync et stocker les fragments Tu pratiques CUDA Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer CUDA Academy ?
Aucune expérience préalable n'est requise. CUDA Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.
Combien de temps prend la leçon « L’API de fragments WMMA » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon CUDA Academy ?
Oui. Chaque leçon CUDA Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Ce que calculent les cœurs tensoriels
- Précision mixte : FP16, BF16, TF32
- L’API de fragments WMMA
- Compromis de stabilité numérique