14 / 20 · Konzept
Bandbreite und nutzbare Auslastung
Trennen Sie maximale MAC-Kapazität von Füllen, Auslaufen, Auffüllung und Speicheraufwand.
Lektionen sind frei lesbar. Schreibe dich ein, um deinen Fortschritt zu speichern.
Intervall und Einheiten definieren
Ein N×N-Gitter erreicht maximal N² MACs pro advance-Flanke. Füllen und Auslaufen verringern die Auslastung eines einzelnen Auftrags. In unserem Modell ohne Wartezyklen mit vollständiger Kachel und Weitergabe um eine Flanke beträgt die nutzbare Arbeit N²K; verfügbar sind N²(K+2N−2) Plätze. Daraus ergibt sich eine Auslastung im Rechenintervall von K/(K+2N−2).
Bei N=4, K=16 führt das Gitter 256 MACs in zweiundzwanzig advance-Flanken aus. Die Auslastung ist 256/352=8/11, ungefähr 72.73%. Bei angenommenen 100MHz beträgt die Spitzenkapazität 1.6 GMAC/s und der Durchsatz im isolierten Rechenintervall etwa 1.164 GMAC/s. Werden Multiplikation und Addition getrennt gezählt, verdoppelt sich die Operationszahl. Dies sind Schätzungen bei angenommener Frequenz, keine gemessenen Syntheseergebnisse.
Datenverkehr an jeder Grenze berechnen
Die Einspeisung von A und B benötigt 2NK Werte: 128 Bytes bei Acht-Bit-Operanden. PEs verarbeiten 512 Operandenwerte, was eine vierfache Wiederverwendung jeder Randeingabe zeigt. Während der überlappenden Einspeisung können acht Bytes pro Flanke erforderlich sein, also 0.8GB/s bei 100MHz. Maximale Zuführungsanforderung und durchschnittliche Anforderung über Füllen und Auslaufen unterscheiden sich.
Nehmen Sie an, sechzehn Ergebnisse nutzen Speicherplätze von zweiunddreißig Bits trotz der Zwanzig-Bit-Akkumulatorbreite. Ergebnisschreibzugriffe fügen vierundsechzig Bytes hinzu; der externe Datenverkehr beträgt daher insgesamt 192 Bytes ohne Wiederverwendung zwischen Kacheln, Befehlsaufwand oder Ausrichtungsverluste. Die arithmetische Intensität ist 256/192=4/3 MAC pro Byte.
Bei 0.4GB/s benötigt allein die Übertragung mindestens 480ns; die Berechnung benötigt 220ns. Selbst perfekte Überlappung kann das längere Intervall nicht unterschreiten und begrenzt den Durchsatz auf etwa 0.533 GMAC/s. Dies ist eine Obergrenze, keine garantierte Leistung. Ohne Überlappung benötigt Laden zweiunddreißig Flanken, Berechnung zweiundzwanzig und Speichern sechzehn, insgesamt siebzig Flanken und etwa 0.366 GMAC/s vor Initialisierung oder anderen Wartezeiten.
Das aufgefüllte 3×3-Beispiel auf N=2 hat siebenundzwanzig nützliche MACs in achtzig PE-Plätzen: 33.75% nutzbare Auslastung. Die Zählung von MACs mit aufgefüllten Nullen ergibt dagegen 60%, eine andere Messgröße. Die TPU-Veröffentlichung von Jouppi et al. ist eine Forschungsreferenz zur Trennung maximaler Beschleunigerkapazität von Arbeitslastleistung; unsere Zahlenbeispiele ergeben sich aus unserem eigenen Ablauf.
Selbst ausprobieren
Bestimmen Sie für eine vollständige Kachel N=2, K=8 MAC-Anzahl, Rechenflanken, Auslastung und Bytes der Acht-Bit-Randeingaben.
Erklärung lesen
Es gibt 32 MACs, zehn Rechenflanken und vierzig PE-Plätze, daher beträgt die Auslastung 80%. Die Randeingabe umfasst 2×2×8=32 Bytes. Die Rechenauslastung schließt Laden und Ergebnisschreibzugriffe aus.