Arhitectura Mali este o familie de procesoare grafice concepute pentru smartphone-uri și tablete tactile ; este dezvoltat de compania ARM pentru SoC-uri bazate pe arhitectura ARM și integrat sub licență de diferiți producători de microelectronice . A fost dezvoltat de ARM Norway (fost Falanx) în Trondheim . Arhitecturile au nume scandinave (Utgard, Midgard, Bifrost și Valhall).
Aceste procesoare grafice pot fi găsite în special în anumite SoC-uri Exynos de la Samsung , A1X-uri de la Allwinner Technology , anumite SoC-uri WonderMedia de la VIA , anumite SoC-uri Amlogic sau Rockchip și, în special, în anumite chipset-uri Novathor de la STMicroelectronics, cum ar fi U8500.
Proiectul driverului Lima a fost creat în 2011 pentru a produce un driver gratuit care să permită accesul la generațiile Mali-200 și Mali-400 ale arhitecturii utgard, apoi a fost abandonat între 2012 și 2013. A fost din nou activ de atunciiunie 2017 și este integrat în Mesa de la versiunea 19, iar partea DRM în Linux de la versiunea 5.2.
Proiectul, Panfrost, își propune să sprijine versiunile Midgard (Txxx) și Bifrost (Gxx) ale acestor GPU-uri. Deoarece se bazează pe Gallium, unele funcții OpenGL pentru desktop sunt traduse automat în funcții OpenGL ES, permițând aplicațiilor desktop să ruleze pe arhitectura Midgard, ceea ce nu este cazul driverului proprietar. De asemenea, este integrat în versiunile stabile ale Mesa de la versiunea 19 și partea DRM din Linux de la versiunea 5.2. Suportă un număr mare de funcții OpenGL complete (nu doar ES), fără a ajunge la OpenGL 3.0 inseptembrie 2019.
Cu toate acestea, multe ARC SoC includ un GPU PowerVR sau mai rar alte procesoare grafice ( Adreno de la Qualcomm , Vivante , Nvidia și VideoCore de la Broadcom ), care au toate drivere pentru Linux. Driverele 3D sunt prezente în Mesa pentru Adreno (Freedreno), Vivante (Etnaviv) și VideoCore (vc4 și vc5), precum și nvidia ( Nou ).
API-ul generic pentru acces GPU MALI compatibil cu sursele libere EXA / DRI2 (licențe Apache și MIT ) este disponibil pentru Mali 200, 300, 400 și 600 pe platforma Linux, dar cea mai mică parte de acces la procesor, în funcție de producător rămâne închis.
Pe de altă parte, driverul X11 este minim și un proiect alternativ a arătat că este posibil să se accelereze în medie de 3 ori performanța operațiunilor 3D și de până la 10 ori operațiunile geometrice 2D prin adăugarea managementului anumitor componente ale 'X11 .
Deși driverul oficial ARM nu acceptă OpenGL, totuși, driverele licențiate gratuite pentru Linux, Lima și Panfrost o fac (vezi secțiunea OpenGL ES de mai sus).
OpenCL kit - ul de dezvoltare , numit „ Mali OpenCL SDK “, este pus la dispoziție de către ARM pentru GPU T600 și de mai sus, este compatibil cu Linux și Microsoft Windows. Sursele sunt disponibile, dar licența de proprietate. Este necesară o licență ARM pentru a putea redistribui sursele.
Google Android oferă un API Renderscript compatibil cu driverele Mali T600 și superioare.
Mali-T760 și procesoarele superioare ale arhitecturii Midgard, precum și întreaga arhitectură Bifrost, au caracteristici compatibile cu API-ul Vulkan 1.0. Driverele ar trebui să funcționeze în spațiul utilizatorului , pentru Android 7.0 și GNU / Linux și numai pentru câteva platforme.
Dezvoltarea unui pilot Vulkan open source pentru familiile Midgard și Bifrost (Mali-Txxx și Mali-Gxx) numit PanVk începe în 2021, în cadrul proiectului Mesa3D.
Mali-55 acceptă calculul hardware al fragmentelor și numai vectorii software. Este compatibil cu OpenGL ES 1.1 și OpenVG 1.0
Procesoarele al căror nume include numele Mali-xxx corespund arhitecturii Utgard .
Seria Mali-200Prima serie, Mali 200, utilizată în procesoare precum SoC Telechips TCC890x. Rata de umplere este de un pixel pe nucleu și pe ciclu de ceas, cu toate acestea, o limitare atunci când contorul vectorului este saturat, de exemplu pentru 1 nucleu la 100 MHz , 100Mpixeli / s.
Seria Mali-300A doua serie, Mali-300, nu pare să fi fost integrată în procesoare comerciale.
Seria Mali-4xxA treia serie, Mali-400 MP, primul procesor grafic mobil care oferă o arhitectură multi-core este oferită pe mai multe procesoare high-end, în general, care conțin un procesor Cortex A9, precum ST-Ericsson U8500, precum Samsung Exynos 4 , Amlogic 8726-M și 8726-MX sau Rockchip RK3188, dar și pe Soc care conține Cortex A8 Allwinner A1X . Poate fi utilizat în versiunea de 1 până la 4 nuclee și independent la frecvențe de la 200 la 400 MHz . Pentru a face o idee, un nucleu cvadruplu la 200 MHz , acceptă o viteză de umplere de 44 M. triunghiuri / secundă și 800 Mpixeli / secundă, menținând astfel viteza de umplere brută pe nucleu și ciclu de ceas al Mali 200.
Mali-450 MP oferă dublul puterii pe nucleu decât Mali-400 MP pentru redarea OpenGL ES 2.0 și poate gestiona până la 8 nuclee simultan. Prima implementare este Amlogic AML8726-M8, un SoC topit în 28 nm de TSMC conținând 4 nuclee cortex A9 la 2 GHz și 6 inimi Mali-450 MP și care ar trebui furnizat în serie din trimestrul 3 e 2013.
În octombrie 2015, ARM anunță Mali-470, orientat către periferice de îmbrăcăminte cu consum foarte redus (ceasuri, jetoane care pot fi cusute în haine etc. ). Îmbunătățește Mali-450, în principal în ceea ce privește eficiența. Consumă jumătate din puterea Mali-400 la o rată de procesare echivalentă. Acesta adaugă un procesor vectorial în comparație cu predecesorii săi și reduce în continuare recomputarea blocurilor care nu ar fi fost modificate.
Procesoarele al căror nume include numele Mali-Txxx corespund arhitecturii Midgard .
Seria Mali-T6xxSeria Mali-T600 este destinată modelului Cortex A15. Echipează în special seria Samsung Exynos 5. Primul model a fost Mali-T604.
Seria Mali-T600 introduce calculul pe virgulă mobilă pe 64 de biți. Construit pe un design arhitectural multi-conductor scalabil, multi-conducte și a inclus multe caracteristici avansate, cum ar fi:
Seria Mali-T6XX aduce, de asemenea, următoarele caracteristici noi
ARM anunță 2 august 2012în Shanghai , furnizați grupului Khronos un test de conformitate complet „ OpenCL 1.1 Full Profile” pentru procesoarele grafice Mali-T604 pentru a obține certificarea. Acesta este profilul complet pentru computere desktop și nu doar aplicații mobile sau încorporate ( Embedded Profile ), demonstrând dorința ARM de a câștiga în toate domeniile.
A doua generație a inclus Mali-T622, Mali-T624, Mali-T628, Mali-T678?
Seria Mali-T7xxPrima generație de Mali-T7xx, prezentată pe 29 octombrie 2013, este disponibil în două modele, ambele compatibile cu OpenGL ES 3.0 și DirectX11. De asemenea, sunt compatibile cu OpenCL 1.1 și RenderScript:
Mali-T760 acceptă, de asemenea, API-ul Vulkan .
Seria Mali-T8xxSfârșit octombrie 2014, ARM prezintă gama Mali-T8xx, această nouă gamă adaugă suport pentru OpenGL ES 3.1, OpenCL 1.2 și diverse optimizări făcând GPU-ul mai eficient din punct de vedere al consumului. Suportul API Vulkan 1.0 a fost adăugat după lansare:
Procesoarele al căror nume include numele Mali-Gxx corespund arhitecturii Bifrost .
Mali-G71ARM anunță în Mai 2016procesorul grafic Mali-G71, folosește arhitectura Bifrost, care poate fi cuplată cu noul procesor Cortex-A73 pentru sarcini de realitate virtuală . Acesta este primul GPU ARM compatibil cu API-ul Vulkan , API -ul fiind apoi portat la modelele din seria Mali-Txxx, dar nu s-au dat informații despre portul de pe Mali-xxx. S-au făcut îmbunătățiri la sistemul de conducte, granularitatea cache-urilor și eliminarea triunghiurilor mai mici de un pixel.
Mali-G51Anunțat în octombrie 2016, Mali-G51 este destinat realității virtuale și ecranelor cu rezoluție mai mare. Are două umbrere de pixeli pe nucleu grafic, dublând astfel ratele texel și pixeli pe nucleu, comparativ cu Mali-G71. De asemenea, acceptă compresia tampon de imagine ARM Frame Buffer Compression (AFBC) 1.2, precum și API-urile Vulkan, OpenGL ES 3.2 și OpenCL 2.0.
Mali-G52 Mali-G31 Mali-G72Anunțat în Mai 2017 (a doua generație Bifrost), Mali-G72 este destinat să reușească Mali-G71, performanța generală comparativ cu predecesorul său a fost îmbunătățită cu 40%, iar eficiența energetică îmbunătățită cu 25%.
Mali-G76Anunțat în Mai 2018(a treia generație Bifrost), Mali-G76 își îmbunătățește performanța cu 30% față de G72 și îmbunătățește eficiența în învățarea automată (ML) de 2,7 ori. Suportă 4 până la 20 de nuclee. Fiecare nucleu are trei motoare și fiecare motor are opt căi de execuție.
Mali-G78 este a doua generație a arhitecturii Valhall.
Iată lista actuală a modelelor de bază din Mali:
Nume | Max nuclee max. umbrere |
Dimensiunea maximă a nivelului cache 2 | Compatibilitate API | Arhitectură | Referinţă |
---|---|---|---|---|---|
Mali-55 | 1 | - | OpenGL ES 1.1, OpenVG 1.0 | - | |
Mali-200 | 1 | - | OpenGL ES 1.1 și 2.0, OpenVG 1.1 | Utgard | |
Mali-300 | 1 | 8 KB | OpenGL ES 1.1 și 2.0, OpenVG 1.1 | ||
Mali-400 MP | 4 | 256 KB | OpenGL ES 1.1 și 2.0, OpenVG 1.1 | ||
Mali-450 MP | 8 | 512 KB | OpenGL ES 1.1 și 2.0, OpenVG 1.1 | ||
Mali-470 | 4 | 8 KB (L1) 256 KB (L2) |
OpenGL ES 1.1 și 2.0, OpenVG 1.1 | ||
Mali-T604 | 4 | 256 KB |
OpenGL ES 1.1, 2.0 și 3.0, OpenVG 1.1, OpenCL 1.1, DirectX 11, Renderscript |
Midgard 1 st gen. |
|
Mali-T622 | 2 | 256 KB pe nucleu |
OpenGL ES 1.1, 2.0 și 3.0, OpenVG 1.1, OpenCL 1.1, DirectX 11, Renderscript |
||
Mali-T624 | 4 | 256 KB |
OpenGL ES 1.1, 2.0 și 3.0, OpenVG 1.1, OpenCL 1.1, DirectX 11, Renderscript |
Midgard 2 e Gen. |
|
Mali-T628 | 8 | 256 KB |
OpenGL ES 1.1, 2.0 și 3.0, OpenVG 1.1, OpenCL 1.1, DirectX 11, Renderscript |
||
Mali-T658 | 8 | 256 KB |
OpenGL ES 1.1, 2.0 și 3.0, OpenVG 1.1, OpenCL 1.1, DirectX 11, Renderscript |
||
Mali-T678 | 8 | 256 KB |
OpenGL ES 1.1, 2.0 și 3.0, OpenVG 1.1, OpenCL 1.1, DirectX 11, Renderscript |
||
Mali-T720 | 8 | 64 KiB la 256 KiB în funcție de numărul de procesoare. |
OpenGL ES 1.1, 2.0 și 3.0, OpenVG 1.1, OpenCL 1.1, DirectX 11, Renderscript |
Midgard 3 e Div. |
|
Mali-T760 | 16 | 256 KiB la 2 Mio (256 la 512 KiB partajat de un grup de 4 nuclee) |
OpenGL ES 1.1, 2.0 și 3.0 până la 3.2, OpenVG 1.1, Vulkan 1.0 OpenCL 1.1, DirectX 11, Renderscript |
||
Mali-T820 | 1 la 4 | 32 KiB la 256 KiB în funcție de numărul de procesoare. |
OpenGL ES 1.1, 2.0, 3.0 până la 3.2, Vulkan 1.0 OpenCL 1.1 / 1.2 Profil complet, DirectX 11 FL9_3, Renderscript |
Midgard al 4- lea gen. |
|
Mali-T830 | 1 la 4 | 32 KiB la 256 KiB în funcție de numărul de procesoare. |
OpenGL ES 1.1, 2.0, 3.0 până la 3.2, Vulkan 1.0 OpenCL 1.1 / 1.2 Profil complet, DirectX 11 FL9_3, Renderscript |
||
Mali-T860 | 1 la 16 | 256 KiB până la 2 MioB în funcție de numărul de procesoare. |
OpenGL ES 1.1, 2.0, 3.0 până la 3.2, Vulkan 1.0 OpenCL 1.1 / 1.2 Profil complet, DirectX 11 FL9_3, Renderscript |
||
Mali-T880 | 1 la 16 | 256 KiB până la 2 MiB în funcție de numărul de procesoare (256 până la 512 kiB / 4 unități shader) |
OpenGL ES 1.1, 2.0, 3.0 până la 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 Profil complet DirectX 11 FL11_2, Renderscript |
||
Mali-G31 consum foarte mic. |
1 (pixel unic sau dublu) | 32 KiB la 512 KiB nivel 2 |
OpenGL ES 1.1, 2.0, 3.0 - 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 / 2.0 Full Profile Renderscript |
Bifrost | |
Mali-G51 | 1 la 32 | 128 KiB la 2 MiB nivel 2 |
OpenGL ES 1.1, 2.0, 3.0 până la 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 / 2.0 Profil complet DirectX 11 FL11_2, Renderscript |
||
Mali-G52 | 1,2,3,4 sau 6 (pixel dual) | 32 KiB la 512 KiB nivel 2 |
OpenGL ES 1.1, 2.0, 3.0 - 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 / 2.0 Full Profile Renderscript |
||
Mali-G71 | 1 la 32 | 128 KiB la 2 MiB nivel 2 |
OpenGL ES 1.1, 2.0, 3.0 până la 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 / 2.0 Profil complet DirectX 11 FL11_2, Renderscript |
||
Mali-G72 | 1 la 32 | 128 KiB la 2 MiB nivel 2 |
OpenGL ES 1.1, 2.0, 3.0 - 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 / 2.0 Full Profile DirectX 12 FL11_1, Renderscript |
||
Mali-G76 | 4 la 20 | 512 KiB la 4 MiB nivelul 2 |
OpenGL ES 1.1, 2.0, 3.0 până la 3.2 Vulkan 1.1 OpenCL 1.1 / 1.2 / 2.0 Profil complet |
||
Mali-G77 | 7-16 | 512 KiB la 4 MiB nivelul 2 |
OpenGL ES 1.1, 2.0, 3.0 până la 3.2 Vulkan 1.1 OpenCL 1.1, 1.2, 2.0 Profil complet |
Valhall | |
Mali-G78 | 7 la 24 | 512 KiB la 2 MiB nivelul 2 |
OpenGL ES 1.1, 2.0, 3.0 până la 3.2 Vulkan 1.1, 1.2 OpenCL 1.1, 1.2, 2.0 Profil complet |
Valhall 2 e Gen. |
Diferitele variante ale GPU-ului Mali pot fi găsite în următoarele SoC-uri:
Producător | Numele SoC | Versiunea Mali |
---|---|---|
Telechipuri | TCC8803, TCC8902, TCC8900, TCC9201 | Mali-200 |
NetLogic | Au1380, Au1350 | Mali-200 |
Tehnologie de bază | Leopard-6 | Mali-200 |
STMicroelectronics | SPEAr1340 | Mali-200 |
Spreadtrum | SC8810, SC6820 | Mali-400 MP1 |
Amlogic | 8726-M, 8726-MX | Mali-400 MP1 / MP2 (1 sau 2 nuclee 400 MHz ) |
Allwinner | A10, A13 , R8 | Mali-400 MP1 (1 nucleu la 300 ~ 400 MHz ) |
Allwinner | A20 | Mali-400 MP2 (2 nuclee) |
Nufront | 2816. Nusmart | Mali-400 MP |
Rockchip | RK3188 , PX2 | Mali-400 MP4 (4 nuclee) |
MediaTek | MT6572 | Mali-400 MP (1 nucleu) |
Samsung | Exynos 4210, 4212, 4412 | Mali-400 MP4 (4 nuclee) |
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 nuclee) |
Amlogic | AML8726-M8 | Mali-450 MP4 (4 nuclee) |
Amlogic | S802, S812 | Mali-450 MP8 (8 nuclee) |
Samsung | Exynos 5250, 5440 | Mali-T604 MP |
Samsung | Exynos 5260 | Mali-T624 MP |
HiSilicon | 935. Kirin | Mali-T628 MP4 (4 nuclee) |
Samsung | Exynos 5420, 5422, 5800 | Mali-T628 MP6 (6 nuclee) |
HiSilicon | K3V3 (sau Kirin 910) | Mali-T658 |
Samsung | 7580. Exynos | Mali-T720 MP2 (2 nuclee) |
Allwinner | H6 V200 și H6 VC200 | Mali-T720 Mutli-Core |
Rockchip | RK3288 | Mali-T760 MP4 (4 nuclee) |
MediaTek | MT6732 | Mali-T760 |
Rockchip | RK3399 | Mali-T860 MP4 (4 nuclee) |
MediaTek | Helio P20 | Mali-T880 MP2 (2 nuclee) |
HiSilicon | Kirin 950 | Mali-T880 MP4 (4 nuclee) |
MediaTek | Helio X20 | Mali-T880 MP4 (4 nuclee) |
MediaTek | Helio X25 | Mali-T880 MP4 (4 nuclee) |
Samsung | Exynos 8 Octa 8890 | Mali-T880 MP12 (12 nuclee) |
HiSilicon | 960. Kirin | Mali-G71 MP8 (8 nuclee) |
Samsung | 8895. Exynos | Mali-G71 MP20 (20 nuclee) |
Allwinner | Allwinner H616 | Mali-G31 MP2 (2 nuclee) |
Rockchip | RK3530 | Mali-G52 |
HiSilicon | 970. Kirin | Mali-G72 MP12 (12 nuclee) |
Samsung | Exynos 9810 | Mali-G72 MP18 (18 nuclee) |
HiSilicon | 980. Kirin | Mali-G76 MP16 (16 nuclee) |
Samsung | Exynos 9820 | Mali-G76 MP12 (12 nuclee) |