Kurz: Technische Beschränkungen, Kosten, Produktdiversifikation und Marktplatzierung
Lang: ... s. u.
________________________________________________________________________________________________
Grundsätzlich braut hier jeder Hersteller sein eigenes Süppchen zusammen und setzt eigene Prioritäten, sowohl in Bezug auf die technische Realisierung als auch auf die schlussendliche Marktplatzierung des Produkts, sodass viele Punkte zum Gesamtbild beitragen.
Einerseits ist zu beachten dass die Chipfläche endlich ist und man mit dem zur Verfügung stehenden Platz haushalten muss, d. h. die eierlegende Wollmilchsau sucht man auch hier vergebens.
Die Hersteller versuchen ihre Designs möglichst kostengünstig zu fertigen und dazu gehört auch, dass man so wenige Designs wie möglich erstellt und diese möglichst viele Märkte und Einsatzszenarien abdecken.
Beispielsweise die in 12 nm gefertigten Turing-Chips dürften alle grundsätzlich das gleiche Design verwenden und unterscheiden sich nur in der Skalierung mit dem TU102 am oberen Ende mit 72 SMs und dem TU106 am unteren Ende mit 36 SMs auf dem Die. Der Aufbau der SMs dürfte jedoch für alle Chips gleich sein, sodass alle Turing-Ableger bspw. grundsätzlich nur ein 1:32-FP64-Verhältnis aufweisen. Daneben wird noch Volta gefertig, der ein komplett anderes Design aufweist und immer noch die größte GPU darstellt. (Ob nVidia den GP100, einen Pascal-Ableger mit HBM2 noch fertig weiß ich nicht.)
Historisch betrachtet hat sich der Anforderungskatalog der GPUs über die Jahre verändert, was auch Einfluss auf den internen Aufbau hatte. Beispielsweise erste Karten führten überhaupt keine eigenen Berechnugen durch und wurden von der CPU gefüttert, dann folgten ersten T&L-Hardwareeinheiten auf den Karten, die ein erstes Offloading von Berechnungen ermöglichten und später folgten programmierbare Pixel- und Vertex-Shader, usw.
Am Ende der Liste bestimmt der Zielmarkt die funktionelle Ausrichtung und der Großteil, bspw. aus Sicht von nVidia, ist heute der Gaming/Visualisierung- und BigData-Markt. Für ersteren Bereich reicht FP32 i. d. R. aus und für letzteren lassen sich die Funktionseinheiten für DNNs bspw. auch effizient um FP16-Funktionalität erweitern. Turing schlägt genau in diese Kerbe und etabliert parallel mit den aufgeflanschten Tensor Cores v2 zusätzlich eine weitere proprietäre nVidia-Technik im Markt.
Volta (Ende 2017) war damals nVidias BigData-Testvehikel. Neben hoher FP64-Leistung ging es hier im Wesentlichen um die erste Implementation der Tensor Cores für Matrix-Multiplikationen in niedriger Genauigkeit, wie sie fürs Neuronal Processing benötigt werden. Mit über 21 Mrd. Transistoren ist er weiterhin der ungeschlagene GPU-Monsterchip.
Der GP100 (Anfang 2017) ist ein Ableger von Pascal, wurde jedoch für berechnungsintensive Anwendungen modifiziert. Er wurde mit HBM2 und ECC gepaart und seine Funktionseinheiten wurden in der Art umgestrickt, sodass er FP64 in 1:2 und (gepacktes) FP16 im 2:1 Performance-Verhältnis verarbeiten kann. Auch die nun vollständige ECC-Unterstützung stellte ein Novum dar, denn die Quadro's auf Basis des GP102 unterstützen ECC nur eingeschränkt.
Beide Karten sind jedoch grundsätzlich Nischenprodukte, sehr große Chips und teuer, mit ihrer FP64-Leistung jedoch auch notwendig, denn auf den Consumer-Chips (die nVidia auch in den Quadro's verbaut) spart man sich eine entsprechende Implementation, sodass man ohne diese beiden Chips kein Produkt im Portfolio hätte, mit dem man hochgenaue, technisch-wissenschaflichen Berechnungen angehen könnte. Beispielsweise Simulationen spielen in vielen Bereichen von der Forschung bis zur Entwicklung eine Rolle und setzen Double Precision voraus. (In manchen Fällen kommt man nicht einmal damit aus, sondern benötigt gar Quad Precision mit 128 Bit, muss dafür aber auf Software-Libs oder ggf. FPGAs ausweichen.)
Entsprechende Spezialisierungen sah man bspw. auch beim AMD, so in 2011/12 mit dem Tahiti Pro/XT. Der Chip wurde auf HighEnd-Karten eingesetzt und auch auf den professionellen FirePro-Karten und verfügte über ein 1:4 FP64-Verhältnis. Der nur wenig später folgende Pitcairn Pro/XT wurde dagegen auf ein 1:16-Verhältnis zusammengestutzt, wurde zwar auch auf FirePro-Karten verwendet, hier jedoch nur auf den kleineren Versionen (mit 2 - 4 GB RAM, EntryLevel).
AMD ist schon seit Jahren zu einem wesentlichen Teil als Auftragsfertiger unterwegs, so bspw. für Sony, Microsoft und auch Apple und letzterer Kooperation dürfte man wohl auch Polaris und Vega zuschreiben. Erstere in Verbindung mit dem 2016er MacBook Pro (später auch in die Xbox One X übernommen) und letztere im iMac Pro, auf den 2 Monate später dann die Auskopplungen in Form der Radeon RX Vega 56 und 64 folgten. Primär als klassische GPU und nicht als Rechenbeschleuniger (heute GPGPU genannt) konzipiert, hat man sich hier mit einem 1:16-Verhältnis begnügt, dass jedoch andererseits immer noch genug Spielraum für Veröffentlichungen in Form von Radeon Pro-Karten ließ, denn nVidia war mittlerweile mit einem 1:32-Verhältnis bzgl. FP64 unterwegs. Darüber hinaus war Vega die erste Architektur die FP16 (Half Precision) mit 2:1-Verhältnis implementierte. (Polaris beherrschte zwar auch schon FP16, jedoch nur mit gleicher Performance wie FP32 und in Pascal gab es FP16 gar nur zu Kompatibilitätszwecken.)
In Ermangelung einer aktuelleren Architektur (und freie Ressourcen gab es zu der Zeit bei AMD nicht, da man mit der Entwicklung von Navi beschäftigt war), wurde mit der nahenden Verfügbarkeit des neuen 7 nm-Fertigungsverfahrens auch eine Wiederbelebung von Vega ins Auge gefasst, die anscheinend ausschließlich für das professionelle Umfeld gedacht war. Zudem hatte sich der Markt mittlerweile mit Blick auf BigData und DNNs transformiert, sodass man zusätzliche Anpassungen vornahm.
Neben den üblichen Verdächtigen, wie PCIe 4.0 und einem Infinity Fabric Link (analog NVLink), hat man entsprechend dem professionellem Zielmarkt die FP64-Leistung auf 1:2 verbessert. Das für DNNs und das Inferencing nutzbare FP16 beherrschte Vega bereits (wenn es auch keine spezialisierten Einheiten für die Matrix-Multiplikation gibt) und man fügte noch für NP-Anwendungen mit niedrigerem Präzisionsbedarf INT8 und INT4 hinzu, analog zu Intel.
Ähnliche Anpassungen bzgl. den aktuellen Entwicklungen rund um BigData, Neuronal Processing und DNNs beobachtete man bspw. auch bei Intel mit der letzten Xeon Phi-Inkarnation. Ursprünglich mal als GPU-Projekt in 2006 gestartet, nahm das Multi-Core-Design, das aus vielen, vollständigen x86-Kernen mit Pentium-Befehlssatz besteht, über die Zeit eine etwas andere Wendung hin zur reinen Rechenbeschleunigerkarte. Nach einigen Verzögerungen erwartete man für 2018 eigentlich den HPC-Beschleuniger Knights Hill, jedoch kündigte man im November 2017 die Xeon Phi-Produktreihe auf (zugunsten einer neuen Architektur, heute bekannt als Xe) und veröffentlichte einen Monat später, ohne großes Aufsehen Knights Mill, als eine auf Deep Learning spezialisierte, letzte Version von Xeon Phi.
Die bis zu 72 Rechenkerne von Knights Mill können vier Threads gleichzeitig verarbeiten und verfügen über jeweils zwei Vektoreinheiten mit AVX-512. Gegenüber dem Vorgänger Knights Landing wurde ein DP-Port geopfert, sodass sich die FP64-Leistung halbierte, die FP32-Leistung wurde verdoppelt und mit dem neuen AXV-Subset Vector Neural Network Instructions (VNNI) implementierte man die für das DL wichtigen Matrix-Multiplikationen, hier jedoch nicht auf FP- sondern auf INT-Basis.
Mit dem Wegfall der Xeon Phi-Beschleuniger hat man einen Teil der erweiterten AVX-Subsets nun auch in die Xeon-Server-Prozessoren übernommen, so vor allem VNNI in Cascade Lake-SP/AP, das man zukünftig auch in den mobilen Prozessoren wie Ice Lake U zusammen mit AVX-512 wiederfinden wird, was die Bedeutung von DL- und Inferencing-Tasks für zukünftige Anwendungen unterstreicht.