Altifigence Academy

14 / 20 · Concept

Bande passante et utilisation utile

Distinguez capacité MAC de pointe et coûts de remplissage, vidange, zéros ajoutés et mémoire.

Définir l’intervalle et les unités

Une grille N×N atteint N² MAC par front advance. Le remplissage et la vidange réduisent l’utilisation d’un traitement isolé. Dans notre modèle sans blocage à tuile complète et transmission d’un front, le travail utile vaut N²K et les créneaux disponibles N²(K+2N−2), donnant l’utilisation sur l’intervalle de calcul K/(K+2N−2).

Pour N=4, K=16, la grille effectue 256 MAC en vingt-deux fronts advance. L’utilisation est 256/352=8/11, environ 72.73%. À 100MHz supposés, la capacité de pointe est 1.6 GMAC/s et le débit sur l’intervalle de calcul isolé environ 1.164 GMAC/s. Compter séparément multiplication et addition double le nombre d’opérations. Ce sont des estimations à une fréquence supposée, et non des résultats de synthèse mesurés.

Calculer le trafic à chaque frontière

Injecter A et B nécessite 2NK valeurs : 128 octets pour des opérandes sur huit bits. Les PE consomment 512 valeurs d’opérandes, révélant une réutilisation quadruple de chaque entrée de frontière. L’intervalle d’injection avec chevauchement peut exiger huit octets par front, soit 0.8GB/s à 100MHz. La demande d’alimentation de pointe diffère de la demande moyenne sur remplissage et vidange.

Supposez seize résultats utilisant des emplacements de stockage sur trente-deux bits malgré la largeur d’accumulateur de vingt bits. Les écritures ajoutent soixante-quatre octets : le trafic externe totalise donc 192 octets, sans réutilisation inter-tuiles, surcoût de commande ni gaspillage d’alignement. L’intensité arithmétique est 256/192=4/3 MAC par octet.

À 0.4GB/s, le transfert seul nécessite au moins 480ns ; le calcul, 220ns. Même un chevauchement parfait ne peut faire mieux que l’intervalle le plus long, bornant le débit près de 0.533 GMAC/s. C’est une borne supérieure, et non une performance garantie. Sans chevauchement, le chargement prend trente-deux fronts, le calcul vingt-deux et le stockage seize, soit soixante-dix fronts et environ 0.366 GMAC/s avant initialisation ou autres attentes.

L’exemple 3×3 rempli sur N=2 a vingt-sept MAC utiles dans quatre-vingts créneaux de PE : 33.75% d’utilisation utile. Compter les MAC de zéros ajoutés donne plutôt 60%, une autre mesure. L’article TPU de Jouppi et al. est une référence de recherche distinguant capacité de pointe d’accélérateur et performances d’une charge ; nos exemples numériques découlent de notre propre ordonnancement.

Essayez vous-même

Pour une tuile complète N=2, K=8, trouvez les MAC, les fronts de calcul, l’utilisation et les octets d’entrée de frontière sur huit bits.

Lire l’explication

Il y a 32 MAC, dix fronts de calcul et quarante créneaux de PE : l’utilisation est donc 80%. L’entrée de frontière vaut 2×2×8=32 octets. L’utilisation de calcul exclut chargement et écritures de résultats.

Votre choix s’applique à ce navigateur. Modifiez-le à tout moment en bas de page.