17 / 24 · Concept
PE, flux de données et réutilisation des MAC
Répartissez P=3, M=2, K=8 sur quatre PE à sorties stationnaires. Quels sont les cycles MAC et l’utilisation utile des créneaux MAC, hors écritures ?
Les leçons sont gratuites. Inscrivez-vous pour enregistrer vos progrès.
Décider ce qui reste à proximité
Un PE est un élément de traitement doté de multiplication, d’accumulation et d’un petit état local. Davantage de PE n’augmente la concurrence possible que si les opérandes et les sommes partielles peuvent les atteindre. Le flux de données répartit les axes de boucles dans le temps et entre positions de PE et choisit les valeurs restant locales. Des nombres de MAC identiques peuvent exiger des mouvements très différents.
Le flux à sorties stationnaires garde une somme partielle de sortie locale tout en fournissant les opérandes. Le flux à poids stationnaires conserve les poids pour plusieurs entrées et déplace ou combine les sommes partielles. Le flux à entrées stationnaires conserve les valeurs d’entrée pour les réutiliser avec plusieurs poids. Chaque nom identifie un mouvement réduit ; il ne supprime pas tous les autres transferts. Décrivez les chemins réels lorsque vous combinez des stratégies de réutilisation.
Répartition détaillée à sorties stationnaires
P=4 positions spatiales, M=2 canaux de sortie, K=9 termes de réduction donnent huit sorties et 72 MAC. Quatre PE possèdent chacun une sortie et exécutent un terme par cycle. Les quatre premières sorties prennent neuf cycles, puis les quatre suivantes neuf : dix-huit cycles MAC. Ajoutez un cycle d’écriture simultanée des résultats après chaque groupe sans chevauchement, donnant vingt cycles au total. Les créneaux MAC sont entièrement utilisés, mais l’utilisation de l’opération complète inclut aussi l’écriture.
Placez sur des PE différents deux canaux de sortie d’une même fenêtre et diffusez leur entrée commune. Lire séparément cette fenêtre de neuf échantillons pour les deux canaux nécessite dix-huit lectures à la frontière d’alimentation ; la lire une fois et la partager en nécessite neuf. Cela ne compte ni les lectures locales des PE ni la réutilisation entre fenêtres voisines. Indiquez la frontière où le trafic est compté.
Ne conservez que le nombre de sommes partielles permis par le stockage local. Sept sorties sur quatre PE laissent un PE inutilisé dans le deuxième groupe. Un masque de validité doit supprimer son faux résultat et l’utilisation doit compter les MAC utiles.
Déplacer les sommes partielles peut nécessiter des transferts plus larges que déplacer des opérandes int8. Notez largeur et nombres de lectures/écritures pour chaque classe de valeurs. Réordonner des sommes entières exactes conserve le résultat, mais un écrêtage intermédiaire peut rompre cette équivalence. Le projet Eyeriss du MIT fournit un exemple primaire de conception d’accélérateur attentive à la réutilisation. Les nombres de PE et ordonnancements présentés ici sont des exemples pédagogiques hypothétiques distincts.
Essayez vous-même
Répartissez P=3, M=2, K=8 sur quatre PE à sorties stationnaires. Quels sont les cycles MAC et l’utilisation utile des créneaux MAC, hors écritures ?
Lire l’explication
Six sorties nécessitent deux groupes et seize cycles MAC. Il y a 64 créneaux de PE-cycle et 48 MAC utiles, soit 75%.