Qu'est-ce que FlashAttention ?

Implémentation rapide de l'attention qui découpe le calcul en tuiles traitées dans la mémoire sur puce, sans écrire les grandes tables intermédiaires en HBM. Le résultat est identique à celui de l'attention classique.

Nom japonais: FlashAttention

« FlashAttention » apparaît dans 1 questions d'entraînement réparties sur 1 thèmes, dont Pile matérielle et logicielle de l'IA.

Domaine: Pile matérielle et logicielle de l'IA

S'entraîner : questions sur FlashAttention

Quel est le principe essentiel des implémentations rapides de l'attention comme FlashAttention ?

  1. ADécouper le calcul en tuiles traitées dans la mémoire interne à la puce et ne pas écrire le grand tableau intermédiaire n×n en HBM, afin de réduire les accès mémoire
  2. BOmettre le calcul de l'attention et produire une réponse approchée
  3. CCalculer l'attention sur le CPU
Afficher la réponse et l'explication

Réponse : A. Découper le calcul en tuiles traitées dans la mémoire interne à la puce et ne pas écrire le grand tableau intermédiaire n×n en HBM, afin de réduire les accès mémoire

Une implémentation naïve écrit le tableau n×n en HBM, le relit pour le softmax puis encore pour le produit avec les Value ; les accès mémoire déterminent alors les performances. FlashAttention découpe Query, Key et Value en blocs chargés en mémoire partagée et mène le calcul d'une traite en mettant à jour le softmax progressivement, sans écrire le tableau en HBM. Le volume de calcul est identique, mais les accès mémoire diminuent fortement et le traitement s'accélère.

« FlashAttention » dans les explications

Questions mentionnant « FlashAttention » (1)

  1. Quel est le principe essentiel des implémentations rapides de l'attention comme FlashAttention ?

Termes associés

Attention Ouverture numérique (NA) HBM Découpe (dicing) Mémoire partagée (shared memory) All-reduce Cache KV Checkpointing de gradients Compilateur d'IA Décodage spéculatif

Retour au glossaire