Die Mali- Architektur ist eine Familie von Grafikprozessoren, die für Smartphones und Touch-Tablets entwickelt wurden ; es wird von der Firma ARM für SoCs auf Basis der ARM-Architektur entwickelt und von verschiedenen Mikroelektronik- Herstellern in Lizenz integriert . Es wurde von ARM Norway (ehemals Falanx) in Trondheim entwickelt . Die Architekturen tragen skandinavische Namen (Utgard, Midgard, Bifrost und Valhall).
Diese Grafikprozessoren sind insbesondere in bestimmten Exynos- SoCs von Samsung , A1Xs von Allwinner Technology , bestimmten WonderMedia- SoCs von VIA , bestimmten Amlogic- oder Rockchip- SoCs und insbesondere in bestimmten Novathor-Chipsätzen von STMicroelectronics wie dem U8500 zu finden.
Das Lima-Treiberprojekt wurde 2011 ins Leben gerufen, um einen kostenlosen Treiber zu erstellen, der den Zugriff auf die Generationen Mali-200 und Mali-400 der Utgard-Architektur ermöglicht, und wurde dann zwischen 2012 und 2013 aufgegeben. Seitdem ist es wieder aktiv activeJuni 2017 und ist seit Version 19 in Mesa und seit Version 5.2 der DRM-Teil in Linux integriert.
Das Projekt Panfrost zielt darauf ab, die Versionen Midgard (Txxx) und Bifrost (Gxx) dieser GPUs zu unterstützen. Da es auf Gallium basiert, werden einige OpenGL-Desktop-Funktionen automatisch in OpenGL ES-Funktionen übersetzt, sodass Desktop-Anwendungen auf der Midgard-Architektur ausgeführt werden können, was beim proprietären Treiber nicht der Fall ist. Es ist auch in den stabilen Versionen von Mesa seit Version 19 und dem DRM-Teil in Linux seit Version 5.2 integriert. Es unterstützt eine große Anzahl vollständiger OpenGL-Funktionen (nicht nur ES), ohne OpenGL 3.0 in . zu erreichenSeptember 2019.
Viele ARM-SoCs enthalten jedoch eine PowerVR- GPU oder seltener andere Grafikprozessoren ( Adreno von Qualcomm , Vivante , Nvidia und VideoCore von Broadcom ), die alle Treiber für Linux haben. 3D-Treiber sind in Mesa für Adreno (Freedreno), Vivante (Etnaviv) und VideoCore (vc4 und vc5) sowie nvidia ( neu ) vorhanden.
Die generische MALI GPU Access API kompatibel mit kostenlosen EXA / DRI2 Open Sources ( Apache und MIT Lizenzen ) ist für die Mali 200, 300, 400 und 600 auf der Linux-Plattform verfügbar, jedoch der niedrigste Zugriffsteil auf den Prozessor, je nach Hersteller bleibt geschlossen.
Auf der anderen Seite ist der X11-Treiber minimal und ein alternatives Projekt hat gezeigt, dass es möglich ist, die Leistung von 3D-Operationen um das Dreifache und die geometrische 2D-Operationen um das Zehnfache zu beschleunigen, indem die Verwaltung bestimmter Komponenten von 'X11 . hinzugefügt wird .
Obwohl der offizielle ARM-Treiber OpenGL nicht unterstützt, tun dies jedoch die kostenlos lizenzierten Treiber für Linux, Lima und Panfrost (siehe Abschnitt OpenGL ES oben).
Das OpenCL Development Kit , genannt " Mali OpenCL SDK ", wird von ARM für GPUs T600 und höher bereitgestellt, es ist kompatibel mit Linux und Microsoft Windows. Die Quellen sind verfügbar, aber die proprietäre Lizenz. Um Quellen weiterverteilen zu können, ist eine ARM-Lizenz erforderlich.
Google Android bietet eine Renderscript- API, die mit Mali T600- und höheren Treibern kompatibel ist.
Die Mali-T760 und höhere Prozessoren der Midgard-Architektur sowie die gesamte Bifrost-Architektur verfügen über Funktionen, die mit der Vulkan 1.0 API kompatibel sind . Die Treiber sollten im Userspace funktionieren , für Android 7.0 und GNU/Linux und nur für einige Plattformen.
Die Entwicklung eines Open-Source-Vulkan-Pilotprojekts für die Midgard- und Bifrost-Familien (Mali-Txxx und Mali-Gxx) namens PanVk beginnt 2021 im Rahmen des Mesa3D-Projekts.
Der Mali-55 unterstützt die Hardwareberechnung von Fragmenten und nur Softwarevektoren. Es ist kompatibel mit OpenGL ES 1.1 und OpenVG 1.0
Die Prozessoren, deren Name den Namen Mali-xxx enthält, entsprechen der Utgard- Architektur .
Mali-200-SerieDie erste Serie, Mali 200, kommt in Prozessoren wie dem SoC Telechips TCC890x zum Einsatz. Die Füllrate beträgt ein Pixel pro Kern und pro Taktzyklus mit einer Einschränkung, wenn der Vektorzähler gesättigt ist, beispielsweise für 1 Kern bei 100 MHz , 100 Mpixel/s.
Mali-300-SerieDie zweite Serie, Mali-300, scheint nicht in kommerzielle Prozessoren integriert worden zu sein.
Mali-4xx-SerieDie dritte Serie, Mali-400 MP, der erste mobile Grafikprozessor, der eine Mehrkernarchitektur bietet, wird auf High-End-Prozessoren angeboten, die im Allgemeinen eine Cortex-A9-CPU enthalten, wie der ST-Ericsson U8500, wie der Samsung Exynos 4 , dem Amlogic 8726-M und 8726-MX oder dem Rockchip RK3188, aber auch auf Soc mit Cortex A8 Allwinner A1X . Es kann in 1- bis 4-Kern-Version und unabhängig bei Frequenzen von 200 bis 400 MHz verwendet werden . Um eine Idee zu geben, ein Vierfachkern mit 200 MHz unterstützt eine Füllgeschwindigkeit von 44 Millionen Dreiecken / Sekunden und 800 Mpixel / Sekunden, wodurch die rohe Füllgeschwindigkeit pro Kern und Taktzyklus des Mali 200 beibehalten wird.
Die Mali-450 MP bietet die doppelte Leistung pro Kern als die Mali-400 MP zum Rendern von OpenGL ES 2.0 und kann bis zu 8 Kerne gleichzeitig verarbeiten. Die erste Implementierung ist Amlogic AML8726-M8, ein SoC geschmolzen in 28 nm von TSMC mit 4 Kernen A9 Kortex bei 2 GHz und 6 Herzen Mali-450 - MP und die in Reihe von dem zur Verfügung gestellt werden sollte 3 e Quartal 2013.
In Oktober 2015, kündigt ARM die Mali-470 an, die auf Kleidungsperipheriegeräte mit extrem niedrigem Verbrauch ausgerichtet ist (Uhren, Chips, die in Kleidung eingenäht werden können usw. ). Es verbessert die Mali-450 vor allem in Bezug auf die Effizienz. Sie verbraucht bei gleicher Verarbeitungsrate halb so viel Strom wie die Mali-400. Es fügt im Vergleich zu seinen Vorgängern einen Vektorprozessor hinzu und reduziert weiter die Neuberechnung von Blöcken, die nicht modifiziert worden wären.
Die Prozessoren, deren Name den Namen Mali-Txxx enthält, entsprechen der Midgard- Architektur .
Mali-T6xx-SerieDie Mali-T600-Serie ist für den Cortex A15 gedacht. Es rüstet insbesondere die Samsung Exynos 5-Serie aus, das erste Modell war die Mali-T604.
Die Mali-T600-Serie führt 64-Bit-Gleitkomma-Computing ein. Basierend auf einem skalierbaren Multi-Pipeline-Multicore-Architekturdesign und mit vielen erweiterten Funktionen wie:
Die Mali-T6XX-Serie bringt außerdem die folgenden neuen Funktionen
ARM kündigt die 2. August 2012in Shanghai , bietet die Khronos - Gruppe mit einer kompletten „ OpenCL 1.1 Full Profilen“ Konformitätsprüfung für die Mali-T604 - Grafikprozessoren , um die Zertifizierung zu erhalten. Dies ist das vollständige Profil für Desktop-Computing und nicht nur für mobile oder eingebettete Anwendungen ( Embedded Profile ), was den Wunsch von ARM zeigt, in allen Bereichen zu gewinnen.
Die zweite Generation umfasste Mali-T622, Mali-T624, Mali-T628, Mali-T678?
Mali-T7xx-SerieDie erste Generation des Mali-T7xx, vorgestellt am 29. Oktober 2013, ist in zwei Modellen erhältlich, die beide mit OpenGL ES 3.0 und DirectX11 kompatibel sind. Sie sind auch OpenCL 1.1- und RenderScript-kompatibel:
Die Mali-T760 unterstützt auch die Vulkan- API .
Mali-T8xx-SerieEnde Oktober 2014, präsentiert ARM die Mali-T8xx-Reihe, diese neue Reihe bietet Unterstützung für OpenGL ES 3.1, OpenCL 1.2 und verschiedene Optimierungen, die die GPU im Hinblick auf den Verbrauch effizienter machen. Vulkan 1.0 API- Unterstützung wurde nach seiner Veröffentlichung hinzugefügt:
Die Prozessoren, deren Name den Namen Mali-Gxx enthält, entsprechen der Bifrost- Architektur .
Mali-G71ARM kündigt in . an Mai 2016der Grafikprozessor Mali-G71, nutzt die Bifrost-Architektur, die mit dem neuen Cortex-A73- Prozessor für Virtual-Reality- Aufgaben gekoppelt werden kann . Dies ist die erste ARM-GPU, die mit der Vulkan-API kompatibel ist , wobei die API dann auf die Modelle der Mali-Txxx-Serie portiert wurde, aber keine Informationen über die Portierung auf der Mali-xxx gemacht wurden. Das Pipeline-System, die Granularität der Caches und die Eliminierung von Dreiecken, die kleiner als ein Pixel sind, wurden verbessert.
Mali-G51Angekündigt in Oktober 2016, ist das Mali-G51 für virtuelle Realität und Bildschirme mit höherer Auflösung gedacht. Es verfügt über zwei Pixel-Shader pro Grafikkern und verdoppelt damit die Texel- und Pixelraten pro Kern im Vergleich zum Mali-G71. Es unterstützt auch die Bildpufferkomprimierung ARM Frame Buffer Compression (AFBC) 1.2 sowie die Vulkan APIs, OpenGL ES 3.2 und OpenCL 2.0.
Mali-G52 Mali-G31 Mali-G72Angekündigt in Mai 2017 (zweite Bifrost-Generation) soll die Mali-G72 die Nachfolge der Mali-G71 antreten, die Gesamtleistung gegenüber dem Vorgänger wurde um 40 % verbessert und die Energieeffizienz um 25 % verbessert.
Mali-G76Angekündigt in Mai 2018(Bifrost der dritten Generation) verbessert der Mali-G76 seine Leistung im Vergleich zum G72 um 30 % und die Effizienz beim maschinellen Lernen (ML) um das 2,7-fache. Es unterstützt 4 bis 20 Kerne. Jeder Kern hat drei Motoren und jeder Motor hat acht Ausführungspfade.
Der Mali-G78 ist die zweite Generation der Valhall-Architektur.
Hier ist die aktuelle Liste der Mali-Kernmodelle:
Familienname, Nachname | Max Kerne max. Shader |
Maximale Cachegröße Stufe 2 | API-Kompatibilität | Die Architektur | Bezug |
---|---|---|---|---|---|
Mali-55 | 1 | - | OpenGL ES 1.1, OpenVG 1.0 | - | |
Mali-200 | 1 | - | OpenGL ES 1.1 & 2.0, OpenVG 1.1 | Utgard | |
Mali-300 | 1 | 8 KB | OpenGL ES 1.1 & 2.0, OpenVG 1.1 | ||
Mali-400 MP | 4 | 256 KB | OpenGL ES 1.1 & 2.0, OpenVG 1.1 | ||
Mali-450 MP | 8 | 512 KB | OpenGL ES 1.1 und 2.0, OpenVG 1.1 | ||
Mali-470 | 4 | 8 KB (L1) 256 KB (L2) |
OpenGL ES 1.1 und 2.0, OpenVG 1.1 | ||
Mali-T604 | 4 | 256 KB |
OpenGL ES 1.1, 2.0 und 3.0, OpenVG 1.1, OpenCL 1.1, DirectX 11, Renderscript |
Midgard 1 st gen. |
|
Mali-T622 | 2 | 256 KB pro Kern |
OpenGL ES 1.1, 2.0 und 3.0, OpenVG 1.1, OpenCL 1.1, DirectX 11, Renderscript |
||
Mali-T624 | 4 | 256 KB |
OpenGL ES 1.1, 2.0 und 3.0, OpenVG 1.1, OpenCL 1.1, DirectX 11, Renderscript |
Midgard 2 und Gen. |
|
Mali-T628 | 8 | 256 KB |
OpenGL ES 1.1, 2.0 und 3.0, OpenVG 1.1, OpenCL 1.1, DirectX 11, Renderscript |
||
Mali-T658 | 8 | 256 KB |
OpenGL ES 1.1, 2.0 und 3.0, OpenVG 1.1, OpenCL 1.1, DirectX 11, Renderscript |
||
Mali-T678 | 8 | 256 KB |
OpenGL ES 1.1, 2.0 und 3.0, OpenVG 1.1, OpenCL 1.1, DirectX 11, Renderscript |
||
Mali-T720 | 8 | 64 KiB bis 256 KiB je nach Anzahl der Prozessoren. |
OpenGL ES 1.1, 2.0 und 3.0, OpenVG 1.1, OpenCL 1.1, DirectX 11, Renderscript |
Midgard 3 e Div. |
|
Mali-T760 | 16 | 256 KiB bis 2 Mio. (256 bis 512 KiB geteilt durch Gruppe von 4 Kernen) |
OpenGL ES 1.1, 2.0 und 3.0 bis 3.2, OpenVG 1.1, Vulkan 1.0 OpenCL 1.1, DirectX 11, Renderscript |
||
Mali-T820 | 1 bis 4 | 32 KiB bis 256 KiB je nach Anzahl der Prozessoren. |
OpenGL ES 1.1, 2.0, 3.0 bis 3.2, Vulkan 1.0 OpenCL 1.1 / 1.2 Full Profile, DirectX 11 FL9_3, Renderscript |
Midgard 4 th gen. |
|
Mali-T830 | 1 bis 4 | 32 KiB bis 256 KiB je nach Anzahl der Prozessoren. |
OpenGL ES 1.1, 2.0, 3.0 bis 3.2, Vulkan 1.0 OpenCL 1.1 / 1.2 Full Profile, DirectX 11 FL9_3, Renderscript |
||
Mali-T860 | 1 bis 16 | 256 KiB bis 2 MioB je nach Anzahl der Prozessoren. |
OpenGL ES 1.1, 2.0, 3.0 bis 3.2, Vulkan 1.0 OpenCL 1.1 / 1.2 Full Profile, DirectX 11 FL9_3, Renderscript |
||
Mali-T880 | 1 bis 16 | 256 KiB bis 2 MiB je nach Anzahl der Prozessoren (256 bis 512 kB / 4 Shader-Einheiten) |
OpenGL ES 1.1, 2.0, 3.0 bis 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 Full Profile DirectX 11 FL11_2, Renderscript |
||
Mali-G31 sehr geringer Verbrauch. |
1 (Einzel- oder Doppelpixel) | 32 KiB bis 512 KiB Stufe 2 |
OpenGL ES 1.1, 2.0, 3.0 bis 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 / 2.0 Full Profile Renderscript |
Bifrost | |
Mali-G51 | 1 bis 32 | 128 KiB bis 2 MiB Stufe 2 |
OpenGL ES 1.1, 2.0, 3.0 bis 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 / 2.0 Full Profile DirectX 11 FL11_2, Renderscript |
||
Mali-G52 | 1,2,3,4 oder 6 (Doppelpixel) | 32 KiB bis 512 KiB Stufe 2 |
OpenGL ES 1.1, 2.0, 3.0 bis 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 / 2.0 Full Profile Renderscript |
||
Mali-G71 | 1 bis 32 | 128 KiB bis 2 MiB Stufe 2 |
OpenGL ES 1.1, 2.0, 3.0 bis 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 / 2.0 Full Profile DirectX 11 FL11_2, Renderscript |
||
Mali-G72 | 1 bis 32 | 128 KiB bis 2 MiB Stufe 2 |
OpenGL ES 1.1, 2.0, 3.0 bis 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 / 2.0 Full Profile DirectX 12 FL11_1, Renderscript |
||
Mali-G76 | 4 bis 20 | 512 KiB bis 4 MiB Stufe 2 |
OpenGL ES 1.1, 2.0, 3.0 bis 3.2 Vulkan 1.1 OpenCL 1.1 / 1.2 / 2.0 Vollprofil |
||
Mali-G77 | 7 bis 16 | 512 KiB bis 4 MiB Stufe 2 |
OpenGL ES 1.1, 2.0, 3.0 bis 3.2 Vulkan 1.1 OpenCL 1.1, 1.2, 2.0 Vollprofil |
Walhall | |
Mali-G78 | 7 bis 24 | 512 KiB bis 2 MiB Stufe 2 |
OpenGL ES 1.1, 2.0, 3.0 bis 3.2 Vulkan 1.1, 1.2 OpenCL 1.1, 1.2, 2.0 Vollprofil |
Valhall 2 und Gen. |
Die verschiedenen Varianten der Mali-GPU sind in folgenden SoCs zu finden:
Hersteller | SoC-Name | Mali-Version |
---|---|---|
Telechips | TCC8803, TCC8902, TCC8900, TCC9201 | Mali-200 |
NetLogic | Au1380, Au1350 | Mali-200 |
Basis-Tech | Leopard-6 | Mali-200 |
STMicroelectronics | SPEAr1340 | Mali-200 |
Spreadtrum | SC8810, SC6820 | Mali-400 MP1 |
Amlogic | 8726-M, 8726-MX | Mali-400 MP1 / MP2 (1 oder 2 Kerne 400 MHz ) |
Allwinner | A10, A13 , R8 | Mali-400 MP1 (1 Kern bei 300 ~ 400 MHz ) |
Allwinner | A20 | Mali-400 MP2 (2 Kerne) |
Nufront | Nusmart 2816 | Mali-400 MP |
Rockchip | RK3188 , PX2 | Mali-400 MP4 (4 Kerne) |
MediaTek | MT6572 | Mali-400 MP (1 Kern) |
Samsung | Exynos 4210, 4212, 4412 | Mali-400 MP4 (4 Kerne) |
Samsung | S5P6450 Vega | Mali-400 MP |
ST-Ericsson | NovaThor U9500, U8500, U5500 | Mali-400 MP |
STMicroelectronics | STi7108, STiH416 | Mali-400 MP |
WonderMedia | Prizm WM8850, WM8950 | Mali-400 MP |
WonderMedia | Prizm WM8880, WM8980 | Mali-400 MP2 |
WonderMedia | Prizm WM8860 | Mali-450 MP |
Amlogic | S805 | Mali-450 MP2 (2 Kerne) |
Amlogic | AML8726-M8 | Mali-450 MP4 (4 Kerne) |
Amlogic | S802, S812 | Mali-450 MP8 (8 Kerne) |
Samsung | Exynos 5250, 5440 | Mali-T604 MP |
Samsung | Exynos 5260 | Mali-T624 MP |
HiSilicon | Kirin 935 | Mali-T628 MP4 (4 Kerne) |
Samsung | Exynos 5420, 5422, 5800 | Mali-T628 MP6 (6 Kerne) |
HiSilicon | K3V3 (oder Kirin 910) | Mali-T658 |
Samsung | Exynos 7580 | Mali-T720 MP2 (2 Kerne) |
Allwinner | H6 V200 und H6 VC200 | Mali-T720 Multi-Core |
Rockchip | RK3288 | Mali-T760 MP4 (4 Kerne) |
MediaTek | MT6732 | Mali-T760 |
Rockchip | RK3399 | Mali-T860 MP4 (4 Kerne) |
MediaTek | Helio P20 | Mali-T880 MP2 (2 Kerne) |
HiSilicon | Kirin 950 | Mali-T880 MP4 (4 Kerne) |
MediaTek | Helio X20 | Mali-T880 MP4 (4 Kerne) |
MediaTek | Helio X25 | Mali-T880 MP4 (4 Kerne) |
Samsung | Exynos 8 Octa 8890 | Mali-T880 MP12 (12 Kerne) |
HiSilicon | Kirin 960 | Mali-G71 MP8 (8 Kerne) |
Samsung | Exynos 8895 | Mali-G71 MP20 (20 Kerne) |
Allwinner | Allwinner H616 | Mali-G31 MP2 (2 Kerne) |
Rockchip | RK3530 | Mali-G52 |
HiSilicon | Kirin 970 | Mali-G72 MP12 (12 Kerne) |
Samsung | Exynos 9810 | Mali-G72 MP18 (18 Kerne) |
HiSilicon | Kirin 980 | Mali-G76 MP16 (16 Kerne) |
Samsung | Exynos 9820 | Mali-G76 MP12 (12 Kerne) |