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.
Les leçons sont gratuites. Inscrivez-vous pour enregistrer vos progrès.
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.