Die Details der Implementierung der Knights Mill-Architektur von Intel waren bisher unbekannt ebenfalls wenn die neuen Befehle bereits bekannt waren. Nun hat das Unternehmen jedoch Einblicke gewährt.
Auf der Hot Chips Konferenz die derzeit im kalifornischen Cupertino stattfindet, folgte nun, ebenso wie die Vektoreinheiten und die Execution-Pipelines dafür konzipiert worden sind. Der Rest im Chip rund um den verbesserten Atom-Silvermont-Kern bleibt so wie im Knights Landing (KNL)
Die Prozessor- und die Kernarchitektur sind wie bei Knights Landing jedoch die Vector Processing Unit VPU (rechts unten) wurde für Knights Mill neu designt.
Bild: Intel
Beim KLN hat jede der beiden Vektoreinheiten zwei FMA-Ports sowie für Double (DP) als auch für Single Precision (SP). Das macht insgesamt 32 DP-Flops/Takt und 64 SP-Flops/Takt. Für Knights Mill (KNM) wurde ein DP-Port geopfert und durch SP/VNNI-Einheiten ersetzt. Die alten SP-Einheiten wurden zudem auf jeweils zweimal SP/VNNI aufgestockt. Damit verdoppelt sich die SP-Leistung auf 128 SP-Flops pro Takt; für int16 erhält man 256 Ops/Takt. Bei angenommenen 1⸴5 GHz Takt ergibt das eine theoretische Spitzenleistung von 13⸴8 TFlops (SP), 3⸴5 TFlops (DP) und 27⸴6 Tops (int16).
Bei Knights Landing gab es zwei symmetrische Ports für DP/SP, bei Knights Mill hat man eine DP-Einheit weniger damit doppelt soviele SP-Einheiten die jetzt auch VNNI-16 beherrschen.
Bild: Intel
Double-pumped
Sowohl für SP, also auch für VNNI-16 gibt es neue Quad-FMA-Befehle die mit "Double-pumped Execution" arbeiten, sodaß die vier FMA-Befehle mit 1 Fetch/rename+1 Load (für alle vier Skalare) und zweimal zwei "gepumpte" FMAs insgesamt nur etwa vier Takte Latenz weiterhin benötigen als ein einzelner FMA-Befeh ( 1 Fetch/rename, 1 Load, 1 FMA).
Quad-FMA ist ein kleiner Schritt hin in Richtung zu einer Tensor-Unit. Intel hat hierfür "Double-pumped Execution" eingeführt, so dass die Ausführung nur wenig länger als bei einem FMA-Befehl benötigt.
Bild: Intel
Entgegen ursprünglichen Vermutungen bietet VNNI aber kein "Half Precision"-Gleitkommaformat so wie Nvidia Pascal/Volta oder AMD Vega an, allerdings arbeitet mit Integer mit variabler Genauigkeit. So hat der Quad-FMA-Befehl Int16 am Eingang und Int32 am Ausgang. Intel betont, dass für festliegende Datenbereiche int16 mit einer "Mantisse" von 15 Bit genauer ist als fp 16 mit 10-Bit-Mantisse, gibt auch noch zu. Dass Festpunkt-Arithmetik für dynamische Bereiche zusätzlichen Software-Aufwand erfordert was dann die effektive Performance ja nach Software-Anforderung deutlich senken kann.
Kommentare