Pile matérielle et logicielle de l'IA

Le traitement consistant à ajouter un biais au résultat d'un produit matriciel puis à appliquer une ReLU est fusionné de trois noyaux séparés en un seul. Qu'est-ce qui diminue principalement ?

  1. ALe nombre de multiplications
  2. BLe volume d'accès à la mémoire (HBM, etc.) et le nombre de lancements de noyaux
  3. CLe nombre de poids du modèle
Afficher la réponse et l'explication

Réponse : B. Le volume d'accès à la mémoire (HBM, etc.) et le nombre de lancements de noyaux

Avec des noyaux séparés, le résultat du produit matriciel est écrit en mémoire, le noyau de biais le lit puis l'écrit, et le noyau ReLU le lit et l'écrit à nouveau. Après fusion, le biais et la ReLU sont appliqués dès l'obtention du résultat du produit matriciel et seul le résultat final est écrit ; deux allers-retours de lecture-écriture du grand tenseur intermédiaire disparaissent et le coût de lancement diminue. Le volume de calcul lui-même ne change pas.

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 principal traitement effectué par les compilateurs d'IA comme XLA, TVM ou la fonction de compilation de PyTorch ?
  2. Quelle définition du « graphe de calcul » utilisé dans les frameworks et compilateurs d'IA est correcte ?
  3. Quelle définition d'ONNX est correcte ?
  4. Quelle est la principale raison pour laquelle les environnements d'exécution d'inférence comme TensorRT ou ONNX Runtime sont plus rapides qu'une inférence directe dans le framework d'entraînement ?
  5. Pourquoi les opérations élément par élément comme la ReLU ou la normalisation de couche prennent-elles souvent beaucoup de temps au regard de leur nombre d'opérations dans les calculs d'IA ?

Comparatifs sur ce thème