Altifigence Academy

14 / 20 · Konzept

Bandbreite und nutzbare Auslastung

Trennen Sie maximale MAC-Kapazität von Füllen, Auslaufen, Auffüllung und Speicheraufwand.

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.

Deine Auswahl gilt für diesen Browser. Du kannst sie jederzeit in der Fußzeile ändern.