Architektura Mali to rodzina procesorów graficznych przeznaczona dla smartfonów i tabletów dotykowych ; jest rozwijany przez firmę ARM dla układów SoC opartych na architekturze ARM i integrowany na licencji przez różnych producentów mikroelektroniki . Został opracowany przez ARM Norway (dawniej Falanx) w Trondheim . Architektury mają skandynawskie nazwy (Utgard, Midgard, Bifrost i Valhall).
Te procesory graficzne można znaleźć w szczególności w niektórych układach SoC Exynos firmy Samsung , A1X firmy Allwinner Technology , niektórych układach SoC WonderMedia firmy VIA , niektórych układach SoC Amlogic lub Rockchip , a w szczególności w niektórych chipsetach Novathor firmy STMicroelectronics, takich jak U8500.
Projekt sterownika Lima powstał w 2011 roku w celu stworzenia darmowego sterownika umożliwiającego dostęp do generacji Mali-200 i Mali-400 architektury utgard, następnie został porzucony w latach 2012-2013. Od tego czasu jest ponownie aktywny.czerwiec 2017 i jest zintegrowany z Mesą od wersji 19, a część DRM w Linuksie od wersji 5.2.
Projekt Panfrost ma na celu wsparcie wersji Midgard (Txxx) i Bifrost (Gxx) tych procesorów graficznych. Ponieważ jest oparty na galium, niektóre funkcje pulpitu OpenGL są automatycznie tłumaczone na funkcje OpenGL ES, umożliwiając uruchamianie aplikacji pulpitu w architekturze Midgard, co nie ma miejsca w przypadku zastrzeżonego sterownika. Jest również zintegrowany ze stabilnymi wersjami Mesy od wersji 19, a część DRM w Linuksie od wersji 5.2. Obsługuje dużą liczbę pełnych funkcji OpenGL (nie tylko ES), bez osiągania OpenGL 3.0 wwrzesień 2019.
Jednak wiele układów SoC ARM zawiera procesor graficzny PowerVR lub rzadziej inne procesory graficzne ( Adreno firmy Qualcomm , Vivante , Nvidia i VideoCore firmy Broadcom ), z których wszystkie mają sterowniki dla systemu Linux. Sterowniki 3D są obecne w Mesie dla Adreno (Freedreno), Vivante (Etnaviv) i VideoCore (vc4 i vc5), a także nvidii ( Nowość ).
Ogólny interfejs API dostępu do procesora graficznego MALI kompatybilny z bezpłatnymi otwartymi źródłami EXA / DRI2 (licencje Apache i MIT ) jest dostępny dla Mali 200, 300, 400 i 600 na platformie Linux, ale z najniższym dostępem do procesora, w zależności od producenta pozostaje zamknięty.
Z drugiej strony sterownik X11 jest minimalny, a alternatywny projekt pokazał, że możliwe jest przyspieszenie średnio 3 razy wydajności operacji 3D i do 10 razy operacji geometrycznych 2D poprzez dodanie zarządzania niektórymi komponentami 'X11 .
Chociaż oficjalny sterownik ARM nie obsługuje OpenGL, to darmowe licencjonowane sterowniki dla Linuksa, Lima i Panfrost obsługują (patrz sekcja OpenGL ES powyżej).
OpenCL Development Kit , zwany „ Mali OpenCL SDK ”, są udostępniane przez ARM dla GPU T600 i powyżej, jest zgodny z systemem Linux i Microsoft Windows. Źródła są dostępne, ale zastrzeżona licencja. Aby móc redystrybuować źródła, wymagana jest licencja ARM.
Google Android zapewnia interfejs API Renderscript zgodny ze sterownikami Mali T600 i nowszymi .
Procesory Mali-T760 i wyższe architektury Midgard, a także cała architektura Bifrost, posiadają funkcje kompatybilne z API Vulkan 1.0. Sterowniki powinny działać w przestrzeni użytkownika , dla Androida 7.0 i GNU/Linux i tylko dla kilku platform.
Rozwój pilota Vulkan o otwartym kodzie źródłowym dla rodzin Midgard i Bifrost (Mali-Txxx i Mali-Gxx) o nazwie PanVk rozpoczyna się w 2021 roku w ramach projektu Mesa3D.
Mali-55 obsługuje sprzętowe obliczanie fragmentów i wektorów tylko programowych. Jest kompatybilny z OpenGL ES 1.1 i OpenVG 1.0
Procesory, których nazwa zawiera nazwę Mali-xxx odpowiadają architekturze Utgard .
Seria Mali-200Pierwsza seria, Mali 200, stosowana w procesorach takich jak SoC Telechips TCC890x. Szybkość wypełniania wynosi jeden piksel na rdzeń i na cykl zegara z ograniczeniem, gdy licznik wektorów jest nasycony, na przykład dla 1 rdzenia przy 100 MHz , 100 Mpikseli/s.
Seria Mali-300Wydaje się, że druga seria, Mali-300, nie została zintegrowana z komercyjnymi procesorami.
Seria Mali-4xxTrzecia seria, Mali-400 MP, pierwszy mobilny procesor graficzny oferujący architekturę wielordzeniową, jest oferowana na bardziej zaawansowanych procesorach, ogólnie zawierających procesor Cortex A9, taki jak ST-Ericsson U8500, taki jak Samsung Exynos 4 , Amlogic 8726-M i 8726-MX lub Rockchip RK3188, ale także na Soc zawierającym Cortex A8 Allwinner A1X . Może być używany w wersji od 1 do 4 rdzeni i niezależnie na częstotliwościach od 200 do 400 MHz . Aby dać wyobrażenie, czterordzeniowy rdzeń o częstotliwości 200 MHz obsługuje prędkość wypełniania 44 mln trójkątów na sekundę i 800 mln pikseli na sekundę, utrzymując w ten sposób surową prędkość wypełniania na rdzeń i cykl zegara Mali 200.
Mali-450 MP oferuje dwukrotnie większą moc na rdzeń niż Mali-400 MP do renderowania OpenGL ES 2.0 i może obsługiwać do 8 rdzeni jednocześnie. Pierwsza implementacja to Amlogic AML8726-M8, SoC stopiony w 28 nm przez TSMC zawierający 4 rdzenie cortex A9 przy 2 GHz i 6 serca Mali-450 MP i który powinien być dostarczany szeregowo od 3 e kwartał 2013.
w październik 2015ARM zapowiada Mali-470, nastawiony na urządzenia peryferyjne o bardzo niskim zużyciu energii (zegarki, chipy, które można wszyć w ubrania itp .). Poprawia Mali-450, głównie pod względem wydajności. Zużywa połowę mocy Mali-400 przy równoważnej szybkości przetwarzania. Dodaje procesor wektorowy w porównaniu do swoich poprzedników i dodatkowo zmniejsza przeliczanie bloków, które nie zostałyby zmodyfikowane.
Procesory, których nazwa zawiera nazwę Mali-Txxx odpowiadają architekturze Midgard .
Seria Mali-T6xxSeria Mali-T600 jest przeznaczona dla Cortexa A15. Wyposaża w szczególności serię Samsung Exynos 5. Pierwszym modelem był Mali-T604.
Seria Mali-T600 wprowadza 64-bitowe obliczenia zmiennoprzecinkowe. Zbudowany na skalowalnym, wielowątkowym, wielordzeniowym projekcie architektonicznym i zawiera wiele zaawansowanych funkcji, takich jak:
Seria Mali-T6XX oferuje również następujące nowe funkcje
ARM ogłasza 2 sierpnia 2012w Szanghaju dostarczyć grupie Khronos pełny test zgodności „ OpenCL 1.1 Full Profile” dla procesorów graficznych Mali-T604 w celu uzyskania certyfikatu. Jest to pełny profil dla komputerów stacjonarnych, a nie tylko aplikacji mobilnych lub wbudowanych ( Profil Embedded ), demonstrujący dążenie ARM do wygrywania we wszystkich obszarach.
Druga generacja, w tym Mali-T622, Mali-T624, Mali-T628, Mali-T678?
Seria Mali-T7xxPierwsza generacja Mali-T7xx, zaprezentowana na 29 października 2013 r., jest dostępny w dwóch modelach, oba kompatybilne z OpenGL ES 3.0 i DirectX11. Są również kompatybilne z OpenCL 1.1 i RenderScript:
Mali-T760 obsługuje również API Vulkan .
Seria Mali-T8xxKoniec październik 2014ARM przedstawia serię Mali-T8xx, ta nowa seria dodaje obsługę OpenGL ES 3.1, OpenCL 1.2 i różne optymalizacje, dzięki czemu procesor graficzny jest bardziej wydajny pod względem zużycia. Wsparcie Vulkan 1.0 API zostało dodane po jego wydaniu:
Procesory, których nazwa zawiera nazwę Mali-Gxx odpowiadają architekturze Bifrost .
Mali-G71ARM ogłasza w maj 2016procesor graficzny Mali-G71 wykorzystuje architekturę Bifrost, którą można połączyć z nowym procesorem Cortex-A73 do zadań wirtualnej rzeczywistości . Jest to pierwszy procesor graficzny ARM kompatybilny z API Vulkan , który następnie został przeniesiony do modeli serii Mali-Txxx, ale nie podano żadnych informacji o porcie na Mali-xxx. Wprowadzono ulepszenia w systemie potoku, szczegółowości pamięci podręcznej i wyeliminowaniu trójkątów mniejszych niż jeden piksel.
Mali-G51Zapowiedziany w październik 2016, Mali-G51 jest przeznaczony do rzeczywistości wirtualnej i ekranów o wyższej rozdzielczości. Ma dwa shadery pikseli na rdzeń graficzny, podwajając w ten sposób szybkość tekseli i pikseli na rdzeń w porównaniu z Mali-G71. Obsługuje również kompresję bufora obrazu ARM Frame Buffer Compression (AFBC) 1.2, a także interfejsy API Vulkan, OpenGL ES 3.2 i OpenCL 2.0.
Mali-G52 Mali-G31 Mali-G72Zapowiedziany w maj 2017 (Bifrost drugiej generacji), Mali-G72 ma zastąpić Mali-G71, ogólna wydajność w porównaniu z poprzednikiem została poprawiona o 40%, a efektywność energetyczna poprawiona o 25%.
Mali-G76Zapowiedziany w maj 2018(trzecia generacja Bifrost), Mali-G76 poprawia swoją wydajność o 30% w porównaniu do G72 i poprawia wydajność uczenia maszynowego (ML) o 2,7 razy. Obsługuje od 4 do 20 rdzeni. Każdy rdzeń ma trzy silniki, a każdy silnik ma osiem ścieżek wykonania.
Mali-G78 to druga generacja architektury Valhall.
Oto aktualna lista podstawowych modeli Mali:
Nazwisko | Max rdzenie max. shadery |
Maksymalny rozmiar pamięci podręcznej poziom 2 | Kompatybilność API | Architektura | Odniesienie |
---|---|---|---|---|---|
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 na rdzeń |
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 do 256 KiB w zależności od liczby procesorów. |
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 do 2 mln (256 do 512 KiB współdzielone przez grupę 4 rdzeni) |
OpenGL ES 1.1, 2.0 i 3.0 do 3.2, OpenVG 1.1, Vulkan 1.0 OpenCL 1.1, DirectX 11, Renderscript |
||
Mali-T820 | 1 do 4 | 32 KiB do 256 KiB w zależności od liczby procesorów. |
OpenGL ES 1.1, 2.0, 3.0 do 3.2, Vulkan 1.0 OpenCL 1.1 / 1.2 Pełny profil, DirectX 11 FL9_3, Renderscript |
Midgard 4 th Gen. |
|
Mali-T830 | 1 do 4 | 32 KiB do 256 KiB w zależności od liczby procesorów. |
OpenGL ES 1.1, 2.0, 3.0 do 3.2, Vulkan 1.0 OpenCL 1.1 / 1.2 Pełny profil, DirectX 11 FL9_3, Renderscript |
||
Mali-T860 | 1 do 16 | 256 KiB do 2 MioB w zależności od liczby procesorów. |
OpenGL ES 1.1, 2.0, 3.0 do 3.2, Vulkan 1.0 OpenCL 1.1 / 1.2 Pełny profil, DirectX 11 FL9_3, Renderscript |
||
Mali-T880 | 1 do 16 | 256 KiB do 2 MiB w zależności od liczby procesorów (256 do 512 kiB / 4 jednostki cieniujące) |
OpenGL ES 1.1, 2.0, 3.0 do 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 Pełny profil DirectX 11 FL11_2, Renderscript |
||
Mali-G31 bardzo niskie zużycie. |
1 (pojedynczy lub podwójny piksel) | 32 KiB do 512 KiB poziom 2 |
OpenGL ES 1.1, 2.0, 3.0 do 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 / 2.0 Full Profile Renderscript |
Bifrost | |
Mali-G51 | 1 do 32 | 128 KiB do 2 MiB poziom 2 |
OpenGL ES 1.1, 2.0, 3.0 do 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 / 2.0 Pełny profil DirectX 11 FL11_2, Renderscript |
||
Mali-G52 | 1,2,3,4 lub 6 (podwójny piksel) | 32 KiB do 512 KiB poziom 2 |
OpenGL ES 1.1, 2.0, 3.0 do 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 / 2.0 Full Profile Renderscript |
||
Mali-G71 | 1 do 32 | 128 KiB do 2 MiB poziom 2 |
OpenGL ES 1.1, 2.0, 3.0 do 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 / 2.0 Pełny profil DirectX 11 FL11_2, Renderscript |
||
Mali-G72 | 1 do 32 | 128 KiB do 2 MiB poziom 2 |
OpenGL ES 1.1, 2.0, 3.0 do 3.2 Vulkan 1.0 OpenCL 1.1 / 1.2 / 2.0 Pełny profil DirectX 12 FL11_1, Renderscript |
||
Mali-G76 | 4 do 20 | 512 KiB do 4 MiB poziom 2 |
OpenGL ES 1.1, 2.0, 3.0 do 3.2 Vulkan 1.1 OpenCL 1.1 / 1.2 / 2.0 Pełny profil |
||
Mali-G77 | 7 do 16 | 512 KiB do 4 MiB poziom 2 |
OpenGL ES 1.1, 2.0, 3.0 do 3.2 Vulkan 1.1 OpenCL 1.1, 1.2, 2.0 Pełny profil |
Valhall | |
Mali-G78 | 7 do 24 | 512 KiB do 2 MiB poziom 2 |
OpenGL ES 1.1, 2.0, 3.0 do 3.2 Vulkan 1.1, 1.2 OpenCL 1.1, 1.2, 2.0 Pełny profil |
Valhall 2 e Gen. |
Różne warianty GPU Mali można znaleźć w następujących SoC:
Producent | Nazwa SoC | Wersja Mali |
---|---|---|
Telechipy | TCC8803, TCC8902, TCC8900, TCC9201 | Mali-200 |
NetLogic | Au1380, Au1350 | Mali-200 |
Technologia podstawowa | Lampart-6 | Mali-200 |
STMicroelectronics | Włócznia1340 | Mali-200 |
Spreadtrum | SC8810, SC6820 | Mali-400 MP1 |
Amlogic | 8726-M, 8726-MX | Mali-400 MP1/MP2 (1 lub 2 rdzenie 400 MHz ) |
Wszyscy zwycięzcy | A10, A13 , R8 | Mali-400 MP1 (1 rdzeń przy 300 ~ 400 MHz ) |
Wszyscy zwycięzcy | A20 | Mali-400 MP2 (2 rdzenie) |
Nufront | Nusmart 2816 | Mali-400 MP |
Rockchip | RK3188 , PX2 | Mali-400 MP4 (4 rdzenie) |
MediaTek | MT6572 | Mali-400 MP (1 rdzeń) |
Samsung | Exynos 4210, 4212, 4412 | Mali-400 MP4 (4 rdzenie) |
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 rdzenie) |
Amlogic | AML8726-M8 | Mali-450 MP4 (4 rdzenie) |
Amlogic | S802, S812 | Mali-450 MP8 (8 rdzeni) |
Samsung | Exynos 5250, 5440 | Mali-T604 MP |
Samsung | Exynos 5260 | Mali-T624 MP |
HiSilicon | Kirin 935 | Mali-T628 MP4 (4 rdzenie) |
Samsung | Exynos 5420, 5422, 5800 | Mali-T628 MP6 (6 rdzeni) |
HiSilicon | K3V3 (lub Kirin 910) | Mali-T658 |
Samsung | Exynos 7580 | Mali-T720 MP2 (2 rdzenie) |
Wszyscy zwycięzcy | H6 V200 i H6 VC200 | Mali-T720 wielordzeniowy |
Rockchip | RK3288 | Mali-T760 MP4 (4 rdzenie) |
MediaTek | MT6732 | Mali-T760 |
Rockchip | RK3399 | Mali-T860 MP4 (4 rdzenie) |
MediaTek | Helio P20 | Mali-T880 MP2 (2 rdzenie) |
HiSilicon | Kirin 950 | Mali-T880 MP4 (4 rdzenie) |
MediaTek | Helio X20 | Mali-T880 MP4 (4 rdzenie) |
MediaTek | Helio X25 | Mali-T880 MP4 (4 rdzenie) |
Samsung | Exynos 8 Octa 8890 | Mali-T880 MP12 (12 rdzeni) |
HiSilicon | Kirin 960 | Mali-G71 MP8 (8 rdzeni) |
Samsung | Exynos 8895 | Mali-G71 MP20 (20 rdzeni) |
Wszyscy zwycięzcy | Zwycięzca H616 | Mali-G31 MP2 (2 rdzenie) |
Rockchip | RK3530 | Mali-G52 |
HiSilicon | Kirin 970 | Mali-G72 MP12 (12 rdzeni) |
Samsung | Exynos 9810 | Mali-G72 MP18 (18 rdzeni) |
HiSilicon | Kirin 980 | Mali-G76 MP16 (16 rdzeni) |
Samsung | Exynos 9820 | Mali-G76 MP12 (12 rdzeni) |