c't 19/2017
S. 24
Prozessorgeflüster
Deep Learning Hardware

Prozessorgeflüster

Von Gleit-, Fest- und Flexkommata

Deep Learning, das ist definitiv en vogue, und das nicht nur bei den GPUs von Nvidia und AMD. Auf und nach der Hot-Chips-Konferenz in Cupertino gab es jede Menge weitere Hardware zu diesem Thema und zum Wettkampf der Firmen folgt nun ein Kampf der Datenformate.

Seien es Projekte mit FPGAs wie BrainWave von Microsoft oder die XPUs von Baidu, seien es komplett neue Chipdesigns von diversen Start-ups oder neue Produkte von den Großen der Szene wie Google und Intel – auf der Hot Chips (siehe S. 16) war in Bezug auf Deep Learning allerhand los.

Dank zahlreicher Zukäufe wird Intel auf diesem Gebiet immer mehr zu einer Art KI-Supermarkt, mit über einem halben Dutzend unterschiedlicher Hardware-Produkte im Angebot. Die liegen zum Teil wie etwa die Altera-Arria-FPGAs schon etwas länger im Regal oder sind wie Nervanas Lake Crest erst für dieses Jahr angekündigt. Zur Vervollständigung des Sortiments hat Intel derweil auch irische und israelische Produkte eingeführt, also just aus den Ländern, in denen sich auch die größten Intel-Fabs außerhalb der USA befinden. Die im letzten Jahr aufgekaufte Firma Movidius war allerdings schon zuvor nach Kalifornien ausgewandert. Sie war auch auf der Hot Chips zugegen und zeigte ihren 1-Watt-USB-Stick mit dem Myriad-2-Chip, der etwa 100 GOPS Anwendungs-Performance (Inference) erreicht.

Und nur wenig Tage nach der Hot Chips brachte Movidius die ersten SoCs namens Myriad X heraus, die mit einer Neural Compute Engine von bis zu 1 TOPS bei Inference aufwarten können. Gedacht sind ihre SoCs für kleinere autonome Geräte wie Drohnen, Roboter oder Smart-Kameras. Der erste Myriad-X-Chip (MA2485 mit 4 GBit LPDDR4-Speicher) besitzt eine dieser Engines, die Architektur ist aber für bis zu vier mit insgesamt vier TOPS ausgelegt.

Das erste SoC mit der Performance von einem Tera Operations per Second bei der Anwendung eines trainierten neuronalen Netzes kommt von der Intel-Tochter Movidius. Quelle: Intel

Der größte Einkaufs-Coup ist aber die inzwischen so gut wie abgeschlossene freundliche Übernahme der israelischen Firma Mobileye. Die Wettbewerbsbehörden haben sie derweil abgenickt und inzwischen nahmen auch schon über 97 Prozent der Aktionäre Intels großzügiges Kaufangebot an. Satte 15 Milliarden US-Dollar, das 45-fache des Jahresumsatzes von Mobileye im letzten Jahr, hat sich Intel die Übernahme der Firma für intelligente Kameras, Sensoren und neuronale Netzwerke für autonomes Fahren kosten lassen. Das ist immerhin mehr als zehnmal so viel, wie Peugeot für Opel bezahlt hat und nach Altera der zweitteuerste Einkauf in der Geschichte von Intel. Nach dem Partner BMW sind flugs Continental und Fiat/Chrysler aufgesprungen, um gemeinsam mit Intel und Mobileye die Ära der autonomen Autos auf Stufe 5 (Auto fährt völlig alleine) baldmöglichst einläuten zu können. 2021 soll es bei BMW so weit sein. Vielleicht sollte man ja Mobileye-Technik vorher schon bei Kriegs- und Handelsschiffen einsetzen, um Kollisionen zu vermeiden.

Aber Intel kauft nicht nur zu, sondern entwickelt zuweilen auch noch selbst, auch wenn das mitunter, wie beim Xeon Phi, etwas länger dauert.

Jetzt steht unter dem Namen Xeon Phi Knights Mill (KNM) eine Erweiterung für tiefe neuronale Netze (DNN) an; die hatte man bei der Konzeption des Xeon Phi Knights Landing so ziemlich verschlafen.

Kein fp16, sondern int16

Auf der Hot-Chips-Konferenz gab Intel Feinheiten zu den Neuerungen des Knights Mill bekannt. Dabei zeigte sich, dass ich vorab nicht aufgepasst hatte, als ich dem für neuronale Netze optimierten Prozessor die Unterstützung des „halben“ Gleitkomma-Datenformats fp16 unterschob. Doch von fp16, wie bei der Nvidia- und AMD-Konkurrenz, keine Spur: Die beiden neuen Vector Neural Network Instructions (VNNI) beziehen sich ausschließlich auf int16 und sie sind schon seit geraumer Zeit in der „Intel Architecture Instruction Set Extensions Programming Reference“ dokumentiert. Auch int8, ein anderes mögliches Zugpferd aktueller GPUs, bleibt für Knights Mill vorerst ein Fremdwort.

Eine doppeltgenaue Recheneinheit des Knights Landing wurde geopfert, damit vier neue SP/VNNI-Einheiten im Knights Mill Platz finden. Quelle: Intel

Intel hat vom Xeon Phi Knights Landing eine der beiden mit doppelter Genauigkeit arbeitenden Recheneinheiten (DP) pro Rechenkern abgeknapst, um Platz für insgesamt vier neu gestaltete Kombi-Einheiten freizumachen. Die können Operationen mit Single Precision Gleitkomma (SP) oder mit int16-Format über die beiden neuen VNNI-Befehle ausführen. Das sind ausschließlich FMA-Befehle (Fused Multiply-Add), die Multiplikation- und Addition gleichzeitig ausführen.

Pro Takt und Kern hat man damit zwar nur noch die halbe DP-Performance von maximal 16 Flops bei FMA, dafür bekommt man aber eine auf 128 Flops pro Takt und Kern verdoppelte SP-Performance oder gar 256 Ops pro Takt und Kern für int16. Die Zahl der Kerne bleibt wie beim Xeon Phi Knights Landing bei maximal 72. Der Takt wird vielleicht etwas höher sein.

Dabei macht die SP/VNNI-Unit nicht nur eine FMA-Operation, sondern als eine Art Mini-Tensor-Einheit führt sie in einem Rutsch gleich vier FMAs (Quad-FMA) aus, was sie sowohl mit Int16 als auch mit SP (auch fp32 genannt) beherrscht. Schon toll, aber wenn man bedenkt, dass die Firma IIT eine 4×4-Matrix-Vektor-Operation schon vor 30 Jahren im Coprozessor 3C87 eingebaut hatte, so hat sich Intel mit dieser Innovation reichlich viel Zeit gelassen.

Eine Tensor-Unit? Eigentlich nichts Neues – etwas Ähnliches hatte der 387 von IIT schon vor 30 Jahren

Das Ganze geschieht intern sehr effizient mit Hilfe einer sogenannten Double-pumped ALU (ja, ja, so etwas Ähnliches hatte der selige Pentium 4 auch), die in zwei Durchgängen jeweils zwei FMA-Operationen ausführt.

Hinzu kommt bei Intels int16 auch noch die Möglichkeit der saturierten Arithmetik, die Überläufe abblockt – das Ergebnis bleibt auf dem Maximalwert oder bei null stehen. So etwas kann gerade im Umgang mit digitalisierten Analogwerten (etwa Audio-Daten oder RGB-Farben) sehr zweckmäßig sein und dürfte die Erkennungsrate spürbar verbessern.

Kampf der Datenformate

Damit ist der Zweikampf zwischen fp16 hier und int16 dort eröffnet, wobei beide Seiten auch mit „mixed Precision“ aufwarten können. Dabei werden die Zwischenwerte 32-bittig aufaddiert. Das gilt für Nvidias Tensor-Core wie für Intels Quad-VNNI gleichermaßen. Bei Daten innerhalb eines eingeschränkten Wertebereichs kann int16 mit seiner 15-Bit-„Mantisse“ vor fp16 mit nur 11 Mantissen-Bits von Vorteil sein, bei dynamischen Bereichen ist es dann umgekehrt. Int16 ist einfacher zu konstruieren, ist schneller und verbraucht weniger Energie. Es ist aber offenbar eher für die Anwendung denn für das Training geeignet. Google jedenfalls hat für die nächste Tensor-Unit angekündigt, das Training im Gleitkommaformat auszuführen, fürs Inferring aber auf Fixpoint zu wechseln.

Daneben gibt es noch andere Ideen für zweckmäßige Datenformate, etwa Flexpoint – ein geschütztes Warenzeichen von Nervana, ebenfalls ein Intel-Zukauf. Deren Tensor-Chip Lake Crest mit 12 Processing Cluster mit 32 GByte HBM2 und mit einer Performance in der Gegend von 55 TOPS arbeitet mit einer geschickten Mischung aus Fix- und Gleitkomma: jeder Tensor (also ein Ensemble von Vektoren) hat hierbei einen gemeinsamen Exponenten von typischerweise 5 Bit, jeder einzelne Wert besitzt eine Mantisse von 16 Bit. Das ermöglicht eine bessere Genauigkeit als mit der nur 11-bittigen Mantisse von fp16 und benötigt nur ein paar zusätzliche Bits pro Tensor.

Eine meist unterschätzte Rolle neben den Datenformaten selbst spielen aber auch die Rundungsmodi. IBM-Forscher haben gezeigt, dass bei üblichen DNN-Aufgaben 16-bittige Fixkommaformate gleichgute Ergebnisse wie 32-bittige Gleitkomma-Formate liefern können – wenn man nur den richtigen Rundungsmodus, nämlich zufällige (stochastische) Rundung wählt. Davon war bislang aber weder bei Intel, noch bei der Konkurrenz was zu hören – aber das kann man ja vielleicht irgendwoher teuer zukaufen. (as@ct.de)