9 / 20 · Concept
Flux à sorties stationnaires et autres flux de données
Comparez le stockage et le transport en identifiant ce qui reste dans le PE.
Les leçons sont gratuites. Inscrivez-vous pour enregistrer vos progrès.
Se demander quelle valeur reste locale
Un réseau systolique effectue un travail parallèle tandis que les opérandes se déplacent entre éléments de traitement voisins. « Stationnaire » décrit une valeur conservée à proximité pour être réutilisée pendant un calcul. Des choix différents modifient les registres des PE, les chemins des sommes partielles et l’ordonnancement de frontière, même lorsque l’opération mathématique est identique.
Dans la conception à sorties stationnaires de ce cours, PE(i, j) conserve la somme partielle de C(i, j). A et B se déplacent à mesure que k avance. Après l’arrivée des K termes, le résultat est collecté ; clear démarre une nouvelle tuile de sortie. Les valeurs A sont réutilisées le long d’une ligne et les valeurs B le long d’une colonne. Dans l’exemple 2×2, A(0, 0)=1 contribue à la fois à C(0, 0) et à C(0, 1).
Les conceptions à poids stationnaires préchargent des poids, tels que B, dans les PE et les réutilisent pour les activations entrantes. Les sommes partielles doivent se déplacer ou être collectées ailleurs. Renommer les ports ne transforme pas le contrôleur OS en WS : la valeur stockée, la séquence de préchargement et le chemin des résultats changent tous. Les conceptions à entrées stationnaires conservent les activations pour les réutiliser avec différents poids ou calculs de sortie. Nous comparons cette idée sans implémenter ici de réseau IS.
| Flux de données | Valeur conservée | Coût à examiner |
|---|---|---|
| OS | Somme partielle de sortie | Accumulateurs larges et collecte des résultats |
| WS | Poids | Préchargement et transport/stockage des sommes partielles |
| IS | Activation | Alimentation en poids et combinaison des sommes de sortie |
Distinguer trois mesures de trafic
Considérons deux produits 2×2 utilisant le même B. Notre modèle de frontière OS fournit quatre valeurs A et quatre valeurs B par traitement : seize valeurs d’opérandes pour deux traitements. Un tampon B local peut éviter de relire B en mémoire externe au deuxième traitement tout en fournissant encore ses quatre jetons de frontière. La réutilisation de poids préchargés propose un compromis différent et exige un autre chemin de sommes partielles.
Les lectures externes, les injections de frontière et les transferts entre PE sont des mesures distinctes. Le README de Gemmini de l’UC Berkeley fournit un exemple de source primaire de flux OS et WS configurables. Notre réseau pédagogique a son propre contrat et ne reproduit ni l’implémentation ni l’interface d’instructions de Gemmini.
Pour une revue de conception, identifiez ce qui reste local, où les sommes s’accumulent et quelles valeurs traversent chaque frontière. La réutilisation seule ne garantit ni suffisamment de ports mémoire ni un débit soutenu adéquat.
Essayez vous-même
Deux traitements 2×2 partagent B conservé dans un tampon local. A n’est pas réutilisé. Combien de lectures externes d’opérandes et d’injections de frontière OS faut-il ?
Lire l’explication
Les lectures externes totalisent 12 valeurs : deux matrices A de quatre valeurs et une matrice B de quatre valeurs. Les injections de frontière totalisent 16 valeurs : quatre A et quatre B par traitement. Les écritures de résultats et les transmissions internes sont exclues.