Zubnet AIApprendreWiki › Multiplication matricielle
Fondamentaux

Multiplication matricielle

Matmul, GEMM
L'opération mathématique fondamentale qui sous-tend tous les réseaux de neurones. Multiplier une matrice de poids par un vecteur (ou une matrice) d'entrée produit un vecteur de sortie. Chaque couche linéaire, chaque calcul d'attention, et chaque lookup d'embedding est ultimement une multiplication matricielle. La performance du matériel IA (GPU, TPU) se mesure à la vitesse à laquelle il peut faire des multiplications matricielles.

Pourquoi c'est important

Comprendre que les réseaux de neurones sont juste des séquences de multiplications matricielles (avec des non-linéarités entre les deux) démystifie tout le domaine. Ça explique pourquoi les GPU sont essentiels (ce sont des machines de multiplication matricielle parallèle), pourquoi la taille du modèle se mesure en paramètres (le nombre de valeurs dans les matrices de poids), et pourquoi les FLOP sont l'unité de calcul (ça compte les opérations multiplication-addition dans ces multiplications matricielles).

En profondeur

Une couche linéaire avec une dimension d'entrée de 4096 et une dimension de sortie de 4096 multiplie une matrice d'entrée (batch_size × 4096) par une matrice de poids (4096 × 4096), produisant une sortie (batch_size × 4096). Chaque élément de sortie est le produit scalaire d'une ligne d'entrée et d'une colonne de poids : 4096 multiplications et 4095 additions. Pour un seul exemple, ça fait 4096 × 4096 ≈ 16,8 millions d'opérations multiplication-addition. Pour une seule couche. Un Transformer à 32 couches fait ça des dizaines de fois par couche.

Pourquoi les GPU

La multiplication matricielle est « embarrassingly parallel » : chaque élément de sortie peut être calculé indépendamment. Un CPU les calcule séquentiellement (rapide par élément, mais sériel). Un GPU en calcule des milliers simultanément (plus lent par élément, mais massivement parallèle). Un NVIDIA H100 effectue ~1000 TFLOP/s de multiplication matricielle FP16 — environ 1 quadrillion d'opérations multiplication-addition par seconde. Ce parallélisme est la raison entière pour laquelle le deep learning est devenu praticable.

Optimisation GEMM

GEMM (General Matrix Multiply) est tellement central que les fabricants de matériel l'optimisent de manière obsessionnelle. Les CUDA cores sont conçus pour le matmul. Les Tensor Cores (NVIDIA) effectuent des multiplications de matrices 4×4 en un seul cycle d'horloge. Toute la hiérarchie mémoire (registres, mémoire partagée, cache L1/L2, HBM) est organisée pour alimenter les unités de matmul en données. Quand on dit que l'inférence IA est « limitée par la bande passante mémoire », ça veut dire que le matériel peut multiplier plus vite qu'il ne peut lire les matrices de la mémoire.

← Tous les termes