Pile matérielle et logicielle de l'IA

Pour le produit de deux matrices N×N en FP16 (2 octets), en supposant que chaque entrée est lue une fois et le résultat écrit une fois, quelle est approximativement l'intensité arithmétique (opérations par octet) ?

  1. A1/3
  2. BN/3
  3. C3N
Afficher la réponse et l'explication

Réponse : B. N/3

Le nombre d'opérations est 2N³ ; les accès mémoire portent sur trois matrices, soit 3N² éléments, ou 6N² octets en FP16. L'intensité arithmétique vaut 2N³ ÷ 6N² = N/3, soit environ 340 pour N = 1024. Plus le produit matriciel est grand, plus le calcul par octet augmente ; c'est donc un traitement qui exploite facilement les performances des unités de calcul. À l'inverse, des traitements comme l'addition élément par élément ont une intensité arithmétique inférieure à 1 et leur vitesse est déterminée par la bande passante mémoire.

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

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

  1. Sur un accélérateur de 100 TFLOPS en crête et 2 TB/s de bande passante mémoire, on exécute un traitement d'intensité arithmétique 10 FLOP/octet. Quelles performances atteignables estime le modèle Roofline ?
  2. Avec une seule entrée (taille de lot 1), pourquoi le calcul d'une couche entièrement connectée (produit matrice de poids-vecteur) tend-il à être limité par la mémoire ?
  3. En inférence, pourquoi l'augmentation de la taille de lot (nombre d'entrées traitées ensemble) tend-elle à améliorer l'efficacité globale ?
  4. Quel est l'inconvénient d'une taille de lot trop grande en inférence ?
  5. L'inférence d'un grand modèle de langage se divise en une phase traitant l'ensemble du texte d'entrée (prefill) et une phase produisant la sortie jeton par jeton (décodage). Quelle combinaison des facteurs déterminant principalement leurs performances est correcte (pour un petit lot) ?