0Pricing
CUDA Academy · Lezione

L'API dei fragment WMMA

Caricare, eseguire mma_sync e memorizzare i fragment

L'API dei fragment WMMA è una lezione CUDA Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento CUDA Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso CUDA Academy include 4 lezioni in totale.

L'API WMMA

Per programmare direttamente i Tensor Core si utilizza WMMA, l'API per la moltiplicazione di matrici con accumulo a livello di warp, nello spazio dei nomi nvcuda::wmma. 🧩

Un intero warp collabora

WMMA opera a livello di warp: tutti i 32 thread di un warp collaborano su un singolo blocco. Si ragiona per blocchi, non per singoli thread.

Ecco il fragment

Un fragment è il tipo di dati WMMA che contiene la porzione di un blocco di matrice assegnata a un warp. Ogni thread possiede una piccola parte dei suoi elementi.

Tre ruoli dei fragment

Si dichiarano fragment contrassegnati come matrix_a, matrix_b o accumulator. Il contrassegno indica a WMMA come utilizzare quel blocco nella moltiplicazione con accumulo.

Le forme dei blocchi sono fisse

I fragment utilizzano dimensioni di blocco prestabilite, come 16 by 16 by 16. Scelga una forma supportata: l'hardware accetta solo queste combinazioni.

Passaggio 1: caricamento

Per prima cosa chiami load_matrix_sync per trasferire un blocco dalla memoria a un fragment. Questo caricamento distribuisce i dati tra i thread del warp.

wmma::load_matrix_sync(a_frag, ptr, ldm);

Passaggio 2: azzerare l'accumulatore

Prima di sommare, azzeri il blocco risultato con fill_fragment. Un accumulatore pulito fa sì che le somme partano da un valore noto.

wmma::fill_fragment(c_frag, 0.0f);

Passaggio 3: moltiplicazione con accumulo

La chiamata fondamentale è mma_sync. Esegue D = A times B plus C sui fragment caricati utilizzando direttamente i Tensor Core.

wmma::mma_sync(c_frag, a_frag, b_frag, c_frag);

Passaggio 4: memorizzazione

Infine, store_matrix_sync scrive il fragment dell'accumulatore nella memoria. Questa memorizzazione riunisce le parti di ogni thread in un unico blocco.

wmma::store_matrix_sync(out, c_frag, ldm, layout);

Sync significa sincrono a livello di warp

Il suffisso _sync ricorda che ogni chiamata WMMA è sincrona a livello di warp. Tutti i 32 lane devono raggiungerla insieme, altrimenti il comportamento non è definito.

Layout e dimensione principale

Caricamenti e memorizzazioni richiedono la dimensione principale, ovvero lo stride tra le righe, oltre a un layout row-major o column-major per leggere correttamente la memoria.

Verifica rapida

Quale chiamata WMMA esegue effettivamente la moltiplicazione di matrici con accumulo sui Tensor Core?

Riepilogo

Ha seguito il flusso WMMA: dichiarare un fragment, caricare i blocchi, azzerare l'accumulatore, chiamare mma_sync e infine memorizzare il risultato. Ogni passaggio è sincrono a livello di warp. 🙌

Domande Frequenti

La lezione «L'API dei fragment WMMA» è gratuita?

Sì — il testo completo di «L'API dei fragment WMMA» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso CUDA Academy, passa a CoddyKit PRO. Il corso CUDA Academy include 4 lezioni in totale.

Cosa imparerò in «L'API dei fragment WMMA»?

Caricare, eseguire mma_sync e memorizzare i fragment Eserciti CUDA Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare CUDA Academy?

Non è richiesta alcuna esperienza precedente. CUDA Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «L'API dei fragment WMMA»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione CUDA Academy?

Sì. Ogni lezione CUDA Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Cosa calcolano i Tensor Core
  2. Precisione mista: FP16, BF16, TF32
  3. L'API dei fragment WMMA
  4. Compromessi sulla stabilità numerica
← Torna a CUDA Academy