Pile matérielle et logicielle de l'IA

En parallélisme de pipeline, où les couches du modèle sont réparties successivement sur plusieurs GPU, pourquoi découpe-t-on le lot en petits micro-lots ?

  1. AParce que les micro-lots réduisent le nombre de calculs
  2. BPour réduire le temps d'inactivité (bulle) des GPU en aval qui attendent le traitement des GPU en amont et faire travailler plusieurs GPU simultanément
  3. CParce que les micro-lots rendent inutile la communication entre GPU
Afficher la réponse et l'explication

Réponse : B. Pour réduire le temps d'inactivité (bulle) des GPU en aval qui attendent le traitement des GPU en amont et faire travailler plusieurs GPU simultanément

Si le lot entier est traité d'un bloc, les GPU à partir du deuxième ne peuvent rien faire pendant que le premier calcule, faute de résultats. Avec des micro-lots, le deuxième GPU calcule le premier micro-lot pendant que le premier GPU traite le deuxième, et ainsi de suite, ce qui permet de recouvrir les traitements. Une attente (bulle) subsiste néanmoins au début et à la fin ; on prévoit donc un nombre suffisant de micro-lots.

S'entraîner sur ce thème Retour au thème

Autres questions sur Pile matérielle et logicielle de l'IA

  1. Quel est le rôle de la communication all-reduce utilisée en entraînement distribué ?
  2. Quelle définition du point de contrôle des gradients (recalcul des activations) utilisé en entraînement est correcte ?
  3. Quelle est la principale raison pour laquelle le réseau systolique utilisé dans les accélérateurs d'IA calcule efficacement les produits matriciels ?
  4. Quelle est la principale raison pour laquelle certains accélérateurs d'IA embarquent sur la puce une grande SRAM (plusieurs dizaines à centaines de MB) ?
  5. Quelle définition du flux de données « weight stationary » (poids fixes), l'une des approches des accélérateurs d'IA, est correcte ?