Schon vorab hatte Intel die Befehlserweiterungen für die nächste Generation Xeon-Phi-Prozessoren "Knights Mill" bekannt gegeben, insbesondere die Quad-FMA- und die Virtual Neural Network Instructions VNNI mit int16-Datenformat. Auf der Hot Chips Konferenz, die derzeit im kalifornischen Cupertino stattfindet, folgte nun, 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, aber 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 sowohl 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, dafür 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, so dass 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 mehr 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, sondern 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 aber auch zu, dass die Festpunkt-Arithmetik für dynamische Bereiche zusätzlichen Software-Aufwand erfordert, was dann die effektive Performance ja nach Software-Anforderung deutlich senken kann. (as)