InfrastructureHabr AI→ original

Sharding des LLM : comment répartir le calcul entre les GPU

Les grands réseaux de neurones obligent à répartir leurs matrices entre de nombreux accélérateurs. C'est ce qu'on appelle le sharding. La manière de découper les données détermine la vitesse et l'efficacité de l'entraînement d'un LLM. Une mauvaise stratégie de sharding fait attendre les accélérateurs les uns après les autres, alors qu'une bonne garde toutes les puces occupées.

Traité par IA depuis Habr AI ; édité par Hamidun News
Sharding des LLM : comment répartir le calcul entre les GPU
Source : Habr AI. Collage: Hamidun News.
Écouter l'article
Fiche synthèse et chiffres clés
ParamètreDonnées
Source primaireHabr AI ↗
Rédacteur en chef
Chiffre clé #1Par lignes (row-wise) — le premier accélérateur prend les lignes 1–N, le deuxième les lignes N+1–2N, et ainsi de suite
Chiffre clé #2Par colonnes (column-wise) — même principe, mais à la verticale
Chiffre clé #3Découpage par blocs — la matrice est divisée en blocs rectangulaires répartis sur une grille de puces

Faire passer à l'échelle les grands modèles de langage exige plus d'un GPU ou TPU. L'une des techniques clés est le sharding : répartir matrices et vecteurs entre plusieurs accélérateurs pour que le calcul s'exécute de façon efficace et coordonnée.

Pourquoi les matrices ne tiennent pas en mémoire

Avec des réseaux de neurones vraiment grands, les matrices de poids et d'activations ne tiennent presque jamais en entier dans la mémoire d'un seul GPU ou TPU. Un LLM moderne peut compter des centaines de milliards de paramètres, chacun occupant plusieurs octets. Un seul accélérateur n'y suffit tout simplement pas. Il faut donc découper, ou « sharder », ces matrices entre plusieurs puces.

Comment fonctionne le sharding

Prenons une matrice A de taille [I, J]. On peut la découper de plusieurs façons :

  • Par lignes (row-wise) — le premier accélérateur prend les lignes 1–N, le deuxième les lignes N+1–2N, et ainsi de suite
  • Par colonnes (column-wise) — même principe, mais à la verticale
  • Découpage par blocs — la matrice est divisée en blocs rectangulaires répartis sur une grille de puces
  • Par diagonale et autres motifs — des schémas plus complexes pour des opérations spécifiques

Chaque accélérateur doit exécuter l'opération sur sa part de la matrice, puis synchroniser les résultats avec ses voisins.

Ce que la qualité du sharding influence

Le choix de la stratégie de sharding détermine :

  • La vitesse d'entraînement — réduire au minimum le temps de communication entre GPU
  • L'efficacité mémoire — remplir correctement les tampons de chaque puce
  • La bande passante — la quantité de données à transférer entre accélérateurs
  • La localité du calcul — la quantité de travail qui peut s'exécuter sans synchronisation

Un mauvais sharding peut conduire les accélérateurs à passer l'essentiel du temps à s'attendre les uns les autres ou à gaspiller la bande passante des liaisons qui les relient. Un bon sharding cherche à limiter ces pertes et à faire travailler toutes les puces en même temps.

Ce que cela signifie

Le sharding n'est pas une simple optimisation technique : il fonde l'économie du passage à l'échelle. Une bonne répartition du calcul permet d'exploiter des clusters de centaines ou de milliers de GPU de sorte que la vitesse totale se rapproche de l'idéal et que les ressources de calcul ne soient pas gaspillées à attendre les communications.

Questions clés sur cet article

Pourquoi les matrices ne tiennent pas en mémoire?

Avec des réseaux de neurones vraiment grands, les matrices de poids et d'activations ne tiennent presque jamais en entier dans la mémoire d'un seul GPU ou TPU. Un LLM moderne peut compter des centaines de milliards de paramètres, chacun occupant plusieurs octets. Un seul accélérateur n'y suffit tout simplement pas. Il faut donc découper, ou « sharder », ces matrices entre plusieurs puces.

Comment fonctionne le sharding?

Prenons une matrice A de taille [I, J]. On peut la découper de plusieurs façons : Par lignes (row-wise) — le premier accélérateur prend les lignes 1–N, le deuxième les lignes N+1–2N, et ainsi de suite Par colonnes (column-wise) — même principe, mais à la verticale Découpage par blocs — la matrice est divisée en blocs rectangulaires répartis sur une grille de puces Par diagonale et autres motifs — des schémas plus complexes pour des opérations spécifiques Chaque accélérateur doit exécuter l'opération sur sa part de la matrice, puis synchroniser les résultats avec ses voisins

Que sait-on sur Ce que la qualité du sharding influence ?

Le choix de la stratégie de sharding détermine : La vitesse d'entraînement — réduire au minimum le temps de communication entre GPU L'efficacité mémoire — remplir correctement les tampons de chaque puce La bande passante — la quantité de données à transférer entre accélérateurs La localité du calcul — la quantité de travail qui peut s'exécuter sans synchronisation Un mauvais sharding peut conduire les accélérateurs à passer l'essentiel du temps à s'attendre les uns les autres ou à gaspiller la bande passante des liaisons qui les relient. Un bon sharding cherche à limiter ce

ZK
Zhemal Khamidun — CPO d'Alpina Digital, product manager d'AlpinaGPT. Conçoit des produits IA depuis 2019. Hamidun News est un projet personnel devenu un agrégateur en production avec plus de 6 000 lecteurs.
✦ Unified AI Workspace · Nomad

Test Frontier LLMs & Autonomous Agents in One Workspace

Run Claude Opus 5.5, GPT-6, Gemini 3.1, and DeepSeek side-by-side in Nomad AI (nomadnet.ai) — unified model routing, deep research, and multimodal workflows under one subscription.

Try Nomad AI →Launch Nomad Agent
Qu'en pensez-vous ?
Chargement des commentaires…