Werfen Sie einen Blick in Apples eigenen GPU-Chip, der im iPhone verwendet wird
Für die ersten Modelle von Apple-Produkten, iPhone und iPad, lizenzierte und verwendete das Unternehmen den PowerVR-GPU-Chip von Imagination Technologies zur Anzeige von Grafiken. Apple hat sogar rund 10% von Imagination übernommen und ist mit rund 30% des Umsatzes der größte Kunde. Und gerade als Apple begann, die ARM-CPU unter Lizenz zu verwenden und nun seine eigenen Entwicklungen nutzt, scheint es von der Verwendung von PowerVR zur Entwicklung einer eigenen GPU übergegangen zu sein. Er erschien zuerst auf dem A8-Prozessor, der auf dem iPhone 6 verwendet wird, und seine Nachkommen sind auf dem A9 und A10 Fusion, die auf dem iPhone 6S und 7 verwendet werden.Eine moderne GPU, wie sie im iPhone und iPad zu finden ist, verfügt über drei Hauptkomponenten, die eine gut koordinierte Arbeit erfordern, um das Bild zu demonstrieren. Die erste ist Hardware, die Grafiken mit festen Funktionen bereitstellt, die für die Verarbeitung von API-Befehlen, das Rasterisieren von Dreiecken und die Rasterausgabe verantwortlich sind. Der zweite ist der Shader-Kern, das Herzstück der GPU, die Software-Shader (Eckpunkte, Geometrie, Pixel und Shader-Berechnung) ausführt. Letzteres ist Software; Grafiktreiber, der auf der CPU ausgeführt wird und alle Funktionen kombiniert, die den Betrieb der GPU steuern. Der Treiber konvertiert in Metal oder OpenGL ES API geschriebene grafische Anwendungen in eine Reihe von Befehlen für Hardware mit festen Funktionen und in programmierbare Shader, die in Shader-Kerneln arbeiten. Eine der wichtigsten Komponenten eines Treibers ist ein Compiler.Erstellen von Maschinencode für die Arbeit an Shader-Kerneln.In älteren Generationen wurden Hardware mit fester Funktion, Shader-Kerne und der Apple-Treiber unter Lizenz von Imagination Technologies verwendet. In den letzten 6 bis 7 Jahren hat Apple Grafikarchitekten und Programmierer aggressiv beauftragt, Software von Unternehmen wie AMD, Intel, Google und Nvidia zu kompilieren und zu steuern, um eine eigene GPU zu entwickeln. Zum Beispiel schrieb Mike Wuerthele von Apple Insider, dass in diesem Jahr etwa 25 Personen von Imagination Technologies zu Apple gewechselt sind. Apples GPU scheint immer noch Hardware mit fester Hardware von PowerVR zu verwenden. Basierend auf verschiedenen öffentlich zugänglichen Beweisen ist jedoch klar, dass Apple programmierbare Shader-Kernel durch eigene, effizientere und schnellere ersetzt hat.Um ihre Verwendung zu nutzen, hat Apple auch einen eigenen Treiber und Compiler entwickelt, der Code für seine Architektur ausgibt. Das Gesamtergebnis ist ein einzigartiges proprietäres GPU-Design, trotz einiger Vermächtnisse, die PowerVR hinterlassen hat. Es ist ein Weltklasse-Design mit beeindruckender Geschwindigkeit und Energieeffizienz. Der A9-Prozessor erzielt bei allen Geschwindigkeitsmessungen die besten Ergebnisse, und der A10 Fusion ist 40-50% schneller.Die GPU-Dokumentation von Apple wurde nie freigegeben. Damit Entwickler die GPU nutzen können, müssen sie herausfinden, wie Shader-Programme für die Metal- und OpenGL-Compiler geschrieben werden. Auf der WWDC 2016 stellten die Apple-Ingenieure "Advanced Shader Optimization for Metal" vor, das die detailliertesten Anweisungen zur Feinabstimmung und Architekturdetails ihrer GPU enthält. Die PowerVR Series 6 GPU-Architektur weist ebenfalls einen Mangel an Dokumentation auf, aber Imagination Technologies gab einige der einfachsten Optimierungsanweisungen weiter. Wenn wir die verfügbaren Informationen zu diesen beiden Chips vergleichen, können wir schließen, dass sie sehr unterschiedlich sind. Insbesondere die Registersätze und Datenkonvertierungsfunktionen von Apple eignen sich besser für Geschwindigkeit und Energieeffizienz, und das Kompilieren ist einfacher.Apple verbessert die Leistung und Energieeffizienz mit kleineren Registern
Die mobilen Grafik-APIs von OpenGL ES und Metal API unterstützen ein 16-Bit-Gleitkommaformat mit halber Genauigkeit, das zum Berechnen und Speichern von Bilddaten verwendet wird und weniger Strom verbraucht als 32-Bit-Berechnungen mit einfacher Genauigkeit. Berechnungen mit halber Genauigkeit verlieren in einigen Fällen schneller an Genauigkeit als Berechnungen mit einfacher Genauigkeit. Für viele Anwendungen, die mit Grafik, Bildverarbeitung und maschinellem Lernen arbeiten, reicht jedoch die halbe Genauigkeit aus, um die richtigen Ergebnisse zu erzielen - insbesondere aufgrund der Tatsache, dass die meisten Displays einen Dynamikbereich von einem Pixel von 8 bis 12 Bit haben.Der Registersatz für Apples GPU besteht aus 16-Bit-Registern, die sich ideal für tägliche Daten eignen, gemessen an den öffentlich zugänglichen Präsentationen [1]. Gleitkommadaten mit einfacher Genauigkeit und andere 32-Bit-Daten erfordern zwei Register. Infolgedessen kann ein Registersatz doppelt so viele 16-Bit-Variablen wie 32-Bit-Variablen speichern. Die Ingenieure von Apple betonen, dass die Verwendung von Halbzeitberechnungen zu einer signifikanten Steigerung der Geschwindigkeits- und Energieeinsparungen im Vergleich zur Einzelgenauigkeit führt, was darauf hindeutet, dass ihre Architektur auf die Verwendung der Halbgenauigkeit als Hauptkonzept im Design ausgerichtet ist.Im Gegensatz dazu verwenden PowerVR-GPUs der Serien 6 und 7 32-Bit-Register und sind nach Berechnungen von Imagination Technologies [2] für Berechnungen mit einfacher Genauigkeit ausgelegt. In Serie 6 können die am häufigsten verwendeten Anweisungen FMAD, FMUL und FADD mit halber Genauigkeit arbeiten, wobei jedoch nur einige Bits der Quell- und Ergebnisregister auf Null gesetzt werden. Einige Befehle können mit zwei 16-Bit-SIMD-Elementen in einem einzigen Register arbeiten (und Serie 7 erweitert diese Funktionen auf eine größere Anzahl von Befehlen), aber die SIMD-Ausführung unterscheidet sich stark von der skalaren Ausführung mit 16-Bit-Registern. Für PowerVR ist das Speichern von Daten im 16-Bit-Format eine Verschwendung von Registerspeicher, und die maximale Anzahl gespeicherter Variablen verdoppelt sich nicht automatisch.Daher sollte die Verwendung von 16-Bit-Daten die Datenmenge, die durch den Speicher und den Energieverbrauch geleitet wird, verringern, jedoch nicht unbedingt die Geschwindigkeit oder Effizienz des Energieverbrauchs erhöhen, wie dies bei der GPU von Apple der Fall ist.Durch die einfache Konvertierung erhalten Programmierer Zugriff auf die halbe Genauigkeit
Eines der häufigsten Probleme bei 16-Bit-Daten besteht darin, dass die meisten Berechnungen zwar keine Probleme mit einer Verringerung der Genauigkeit verursachen, einige jedoch immer noch eine hohe Genauigkeit erfordern. Beispielsweise kann ein Shader, der die Farbe eines großen Pixelblocks berechnet und dann den Durchschnitt berechnet, 16 Bit für jedes einzelne Pixel kosten, benötigt jedoch möglicherweise 32 Bit, wenn Daten summiert werden, um genau zu berechnen. Wenn das Konvertieren von Pixeldaten von 16 in 32 Bit zu kostspielig ist, verwendet der Shader 32 Bit, um ein genaues Ergebnis zu erzielen.Die GPU von Apple bietet eine sehr schnelle Konvertierung zwischen Datentypen, was das präzise Mischen fördert und mehr Möglichkeiten für 16-Bit-Berechnungen mit hoher Geschwindigkeit und geringem Verbrauch bietet. Laut ihrer Darstellung ist die Konvertierung von Datentypen "kostenlos" - anscheinend befindet sich irgendwo im Datenpfad ein Hardware-Konverter. Aus Sicht der Hardware ist dieser Ansatz teurer, vereinfacht aber unter anderem den Compiler erheblich und erleichtert die Arbeit der Programmierer.PowerVR-Serien 6 und 7 können Datengenauigkeitskonvertierungen durchführen, sind jedoch sicherlich nicht „kostenlos“. Die Optimierungsanweisung besagt eindeutig, dass jede Datenkonvertierung (mit abnehmender oder zunehmender Genauigkeit) teuer ist, und empfiehlt Programmierern, Shader mit einer minimalen Anzahl von Transformationen zu schreiben [3].Apple GPUs: Technologiedifferenz
Der Unterschied zwischen dem Registersatz und der Konvertierung von Daten in die Apple-GPU und die Imagination-GPU ist enorm. Die Organisation eines Satzes von Registern ist die Grundlage des Shader-Kerns. Sie beeinflusst das Design von fast allem, von der Architektur des Befehlssatzes für Shader-Kernel bis zur Ausführung von Teilen des Codes und der Versandlogik. Beispielsweise bestimmt die Größe des Registers den Datenpfad und das Schema fast der gesamten Operation des Shader-Kerns. Die Datenkonvertierung wirkt sich nicht so stark aus, aber der Unterschied ist für den Compiler und die Entwickler sehr wichtig. Die PowerVR Series 7-GPU ist der vorherigen 6. Generation ziemlich ähnlich und verwendet 32-Bit-Register. Aufgrund dieses Unterschieds können wir den Schluss ziehen, dass die GPU von Apple eigene Shader-Kerne verwendet, die vom Unternehmen entwickelt wurden. Dies bedeutet, dass Apple einen eigenen Shader-Compiler für OpenGL ES und Metal API entwickelt hat, und höchstwahrscheinlich auchund Ihr Grafiktreiber.Sogar einige Leistungsmessprogramme sehen den Unterschied. Die Tabelle, in der die GPU für iPhone 7 als G9 beschrieben wird, ist irgendwie in die Ergebnisse von GFXBench eingeflossen.
Dieses Testergebnis aus der öffentlichen Datenbank wurde jedoch bald gelöscht, und alle Verweise auf die G9 verschwanden.Es gibt viele andere Unterschiede zwischen der Apple-GPU und PowerVR, die durch Ausführen spezieller Tests mit Metal-Shadern und Vergleichen der Ergebnisse mit ähnlichen OpenGL ES-Shadern auf der PowerVR-GPU erkannt werden können. Nicht alle Unterschiede gelten für Hardware. Beispielsweise unterstützt die Apple-GPU Versionen von OpenGL ES bis 3.0, und die PowerVR-GPU funktioniert auch mit späteren. Solche Unterschiede können jedoch aufgrund der Funktionen von Software und Treibern auftreten.Strategische Vorteile des eigenen Designs
Die vertikale Integration von Apple ist einzigartig für die Unterhaltungselektronik. Beim iPhone und iPad steuert das Unternehmen fast alles - vom Design der Grundschaltungen des Prozessors bis hin zum Betriebssystem und den Diensten für Benutzer von Karten, iMessage und Kamera. Auf diese Weise können Sie an der gemeinsamen Arbeit von Hardware und Software spielen, die für die Konkurrenz unerreichbar ist.Der allgemeine Trend ist klar: Mit jedem Schritt erhöht Apple die Kontrolle über die Plattform und das Ökosystem. Anfangs verwendete Apple Standard-ARM-Prozessoren und lagerte den größten Teil der Arbeit an Samsung aus, entwickelte jedoch am Ende eigene Konkurrenten, die mit ARMv8 kompatibel waren, vor den Konkurrenten. In ähnlicher Weise kaufte das Unternehmen Anobit und verwendete das Team und die Technologie, um einen eigenen Flash-Speichercontroller zu erstellen. Die Entwicklung einer eigenen CPU ist nur der nächste Schritt zur Schaffung strategischer Vorteile.Das offensichtlichste davon ist, dass Apples GPUs besser (schneller und effizienter) sind als Konkurrenten, einschließlich derer von ARM oder Imagination sowie Qualcomm. Leistungssteigern bedeutet eine höhere Benutzerzufriedenheit und einen geringeren Batterieverbrauch sowohl bei Spielen als auch bei der Bilderzeugung und beim maschinellen Lernen.Die Metal Performance Shaders-Bibliothek enthält Dutzende gut optimierter Shader, die auf der GPU ausgeführt werden und Entwicklern eine Vielzahl von Tools bieten [4]. Sie umfassen neuronale Netze zur Klassifizierung und Bildverarbeitungsverfahren. Instagram verwendet die GPU, um Tonemapping zu bewirken und den Kontrast von Fotos zu verbessern. Es ist sogar möglich, dass die Apple-Kamera eine GPU für verschiedene Effekte verwendet. Für Imaging- und neuronale Netze ist die halbe Genauigkeit ideal, und die Apple Shader-Architektur bietet eine bessere Leistung als PowerVR.Der zweite Vorteil ist, dass Apple neue Funktionen erstellen und Fehler in der GPU beheben kann, ohne diese Vorteile den Wettbewerbern zu bieten.Drittens Zeit bis zum Markteintritt und Planung. Eine Reihe von Prozessoren kommt im aggressiven Jahreszyklus des iPhone heraus. Da das iPhone ein Premiumprodukt ist, muss Apple die Nutzer mit Geschwindigkeit beeindrucken und gute Fortschritte zeigen, um die Nachfrage anzukurbeln. Infolgedessen wird Apple häufig zu einem führenden Kunden für neue Technologien (z. B. 10 nm von TSMC), was ein großes Risiko mit sich bringt. Mit einer eigenen GPU kann ein Unternehmen entscheiden, so viel Zeit und Energie wie möglich dafür aufzuwenden. Imagination hat einfach weniger Geld und weniger Personal.Apple muss das Design, die Validierung, die Produktion und das Ökosystem von Software sorgfältig bündeln, um Millionen von Telefonen und Tablets zu betreiben, die in die Hände der Benutzer fallen. Die Monate vor der Veröffentlichung bestehen aus hektischen Zyklen des Suchens und Behebens von Fehlern sowie der Aktualisierung von Grafiksoftware und -hardware. Da die GPU nun eine eigene ist, wird dieser Zyklus mit einer geringen Anzahl externer Abhängigkeiten direkt von Apple gesteuert, was dem Unternehmen hilft, pünktlich mit dem Start Schritt zu halten.Ein hypothetisches Beispiel: Wenn Apple-Ingenieure einen schwerwiegenden Fehler im Shader-Kern feststellen, können sie diesen am selben Tag beheben und überprüfen. Die Einbeziehung eines Dritten bedeutet, dass dieser zunächst die Priorität des Fehlers bewerten und die Änderungen oder Problemumgehungen genehmigen muss, was aufgrund der Notwendigkeit der Abstimmung mit anderen Kunden einige Zeit dauern kann. Das Samsung Exynos 5410 ist ein Lehrbuchbeispiel für die Gefahren des Umgangs mit geistigem Eigentum Dritter. Es wurde auf der Basis von Cortex A15 und A7 von ARM in Big.Little-Konfiguration entwickelt, um Strom zu sparen. Aufgrund eines Fehlers in der Konsistenz der Caches musste Samsung die Energiesparfunktionen deaktivieren. Eigene Entwicklungen reduzieren solche Risiken erheblich, da in diesem Fall kein Interessenkonflikt besteht und die Übertragung von Informationen innerhalb des Unternehmens viel einfacher ist.als zwischen Unternehmen.Der letzte Vorteil einer proprietären GPU ist die Verringerung der Abhängigkeit von Lieferanten, was dem Unternehmen eine günstige Position in Verhandlungen verschafft und Geschäftsrisiken verringert. Die Schaffung von Alternativen für interne oder externe Hauptlieferanten ist eines der alten Prinzipien von Apple. Zum Beispiel war Apple für das iPhone auf Qualcomm und deren LTE-Modems angewiesen. Als Intel ein konkurrierendes Modem entwickelte, passte Apple es für die meisten GSM-Anbieter an. Dies ermöglicht in Zukunft Kostensenkungen und schafft interessante Möglichkeiten.Die proprietäre GPU bietet eine versteckte Alternative zur zukünftigen Nutzung des geistigen Eigentums von Imagination. Das Unternehmen hat bereits ein GPU-Entwicklungsteam und ein Treiber-Team eingerichtet, die gemeinsam die meisten A8-, A9- und A10-Prozessoren entwickeln. Wenn Imagination Technologies im technischen Teil gekauft oder zurückgeblieben wäre, könnte Apple einfach eine eigene Hardware für Grafiken mit festen Funktionen entwickeln, um PowerVR zu ersetzen.Apples nächste Schritte
Nach vielen Jahren der Einstellung von Grafikarchitekturen hat Apple eine eigene GPU entwickelt, die bereits auf den A8-, A9- und A10-Prozessoren des iPhone 6, 6S und 7 installiert ist. Die GPU verfügt immer noch über Eisen von PowerVR, aber es ist klar, dass sich die Shader-Kerne stark von denen unterscheiden diejenigen, die Imagination Technologies verwenden. Dies bedeutet, dass Apple seine eigenen Compiler für Metal und OpenGL ES und höchstwahrscheinlich seinen eigenen Treiber erstellt hat.Nach der Geschichte des Unternehmens zu urteilen, ist die Entwicklung einer eigenen GPU nicht überraschend. Zusätzlich zu den offensichtlichen Vorteilen bei der Geschwindigkeit gibt es weniger offensichtliche Vorteile - verbesserte Kontrolle über das Ökosystem, kürzere Markteinführungszeiten und weniger Fehler.Apple hat drei Möglichkeiten. Status quo - Imagination Technologies lizenzierte Hardware mit festen Funktionen als Ergänzung zu seinen Komponenten. In diesem Fall wird Apple auf die nächste Version von PowerVR aktualisieren, sich aber wahrscheinlich parallel auf die besten Bedingungen und Gebühren einigen. Die zweite Möglichkeit ist der Kauf von Imagination Technologies. Damit kommen jedoch unnötige Nebenprojekte (MIPS-Linie), und Apple hat eine solche Gelegenheit bereits 2016 verpasst. Apple kann jedoch seine eigene Entwicklung der GPU fortsetzen, was dazu führen wird, dass Imagination Technologies überwiegt. Das Unternehmen muss sich selbst entscheiden, ob es besser abschneiden kann, aber bisher waren sie sehr gut darin, in neuen Bereichen erstklassige Qualifikationen zu erreichen.Referenzen
[1] Alex Kan und Fiona, Advanced Metal Shader Optimization. WWDC 2016. Eins und zwei
[2] PowerVR Series6 Compiler-Befehlssatzreferenz. 17. März 2016
[3] PowerVR-Leistungsempfehlungen. 17. März 2016
[4] Metal Performance Shaders Framework
Source: https://habr.com/ru/post/de398851/
All Articles