Mali (GPU)

Mali (GPU)

The Mali series of graphics processing units (GPUs) and multimedia processors are semiconductor intellectual property cores produced by ARM Holdings for licensing in various ASIC designs by ARM partners.
Technical details
Like other embedded IP cores for 3D rendering acceleration, the Mali GPU does not include display controllers driving monitors, in contrast to common desktop video cards. Instead, the Mali ARM core is a pure 3D engine that renders graphics into memory and passes the rendered image over to another core to handle display.
ARM does, however, license display controller SIP cores independently of the Mali 3D accelerator SIP block, e.g. Mali DP500, DP550 and DP650.[3]
ARM also supplies tools to help in authoring OpenGL ES shaders named Mali GPU Shader Development Studio and Mali GPU User Interface Engine.
Display controllers such as the ARM HDLCD display controller are available separately.[4]
Variants
The Mali core grew out of the cores previously produced by Falanx and currently constitute:
Model | Micro- archi- tecture | Type | Launch date | Shader core count | Fab (nm) | Die size (mm2) | Core clock rate (MHz) | L2 cache size | Fillrate | Bus width (bits) | GFLOPS (per core) | API (version) | Fused multiply– add | Usage in SoCs | Usage | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
M△/s | GT/s | (GP/s) | Vulkan | OpenGL ES | OpenVG | OpenCL | Direct3D | ||||||||||||||
Mali-55/110 [120] | ? | Fixed function pipeline[5] | 2005 [121] | 1 | ? | ? | ? | N/A | 2.8 | 0.1 | ? | ? | N/A | 1.1 | 1.0 | N/A | N/A | No | Rockchip RK2818 | Graphics | |
Mali-200 [122] | Utgard[6] | Programmable pipeline[7] | 2007[8] | 1 | ? | ? | ? | N/A | 5 | 0.2 | ? | ? | 2.0 | 1.1 | |||||||
Mali-300 [123] | ? | 1 | 40 28 | ? | 500 | 8 KiB | 55 | 0.5 | ? | 5 | K1892VM14Ya | ||||||||||
Mali-400 MP [124] | 2008 | 1–4 | 40 28 | ? | 200–600 | 256 KiB | 55 | 0.5 | ? | 1.2–5.4 | Allwinner A10, A10s, A13, A20, A33, H3, A64 | ||||||||||
Mali-450 MP [125] | 2012 | 1–8 | 40 28 | ? | 300–750 | 512 KiB | 142 | 2.6 | ? | 4.5–11.9 | Amlogic S805, S802, S812, S905, Allwinner H5, RK3328 | ||||||||||
Mali-470 MP [126] | 2015 | 1–4 | 40 28 | ? | 250–650 | 8–256 KiB | 71 | 0.65 | ? | ? | ? | ||||||||||
Mali-T604 [127] [9] | Midgard 1stgen | Unified shader model + SIMD ISA | ? | 1–4 | 32 28 | ? | 533 | 32–256 KiB | 90 | 0.533 | ? | 17 | 3.1 | Full Profile 1.1 | 11 (FL 9_3) | Yes | Exynos 5250 | Graphics & Compute | |||
Mali-T658 [128] [9] | ? | 1–8 | ? | ? | ? | ? | ? | ? | |||||||||||||
Mali-T622 [129] | Midgard 2ndgen | ? | 1–2 | 32 28 | ? | 533 | ? | ? | 8.5 | ||||||||||||
Mali-T624 [130] | Aug 2012 | 1–4 | 32 28 | ? | 533–600 | ? | ? | 17-19.2 | |||||||||||||
Mali-T628 [131] | Aug 2012 | 1–8 | 32 28 | ? | 533–695 | ? | ? | 17–23.7 | Kirin 930/935 | ||||||||||||
Mali-T678 [132] [10] | Aug 2012 | 1–8 | 28 | ? | ? | ? | ? | ? | |||||||||||||
Mali-T720 [133] | Midgard 3rdgen | Oct 2013 | 1–8 | 28 | ? | 400–700 | 32–256 KiB[11] | 650 (MP8@650MHz) | 5.2 (MP8@650MHz) | ? | 6.8–11.9 | Exynos 7580, MT6735, MT6753 | |||||||||
Mali-T760 [134] | Oct 2013 | 1–16 | 28 / 14 | 1.75 mm2per shader core at 14 nm[12] | 600–772 | 256–2048 KiB[13] | 1300 | 0.6-12.6 GTexel/s (bilinear)[14] | 10.4 | ? | 17–26.2 | 1.0[15] | 3.2[16] | Full Profile 1.2 | 11 (FL 11_1) [17] | Exynos 7420, Exynos 5433, MT6752, MT6732, RK3288 | |||||
Mali-T820 [135] | Midgard 4thgen | Q4 2015 | 1–4 | 28 | ? | 600 | 32–256 KiB[13] | 400 | ? | 2.6 | ? | 10.2 | 11 (FL 9_3) | Amlogic S912 | |||||||
Mali-T830 [136] | 28 | ? | 600–950 | 32–256 KiB[13] | 400 | ? | 2.6 | ? | 20.4–32.3 | Kirin 650/655, Exynos 7870, Exynos 7880 | |||||||||||
Mali-T860 [137] | 1–16 | 28 | ? | 350–700 | 256–2048 KiB[13] | 1300 | ? | 10.4 | ? | 11.9–23.8 | 11 (FL 11_1) | RK3399 (MP4), Serge S1 (MP4), RK3399 (MP4), Helio P10 (MP2), MT6750 (MP2) | |||||||||
Mali-T880 [138] | Q2 2016 | 1–16 | 16 | ? | 650–1000 | 256–2048 KiB[13] | 1700 | ? | 13.6 | ? | 22.1–34 | Exynos 8890, Helio P20 (MT6757), Helio P25, Helio X20 (MT6797), Kirin 950/955 | |||||||||
Mali-G31 [139] | Bifrost 1stgen | Unified shader model + Unified memory + scalar, clause-based ISA | Q1 2018 | 1-6 (1 EU per core)[18] | 28 | ? | 650 | 32kB-512kB | ? | 1.3 | 10.4 | 1.1[19] | Full Profile 2.0 | Rockchip RK3326[20][21]AmLogic S905Y2, S905X2, S905D2 | |||||||
Mali-G51 [140] [22] | Q4 2016 | 1-6 (1 uni to 3 dual)[23] | 28
16 14 12 10 | ? | 650 | ? | 3.9 | 11 (FL 9_3) | HiSilicon Hi3751V811, HiSilicon Kirin 710 | ||||||||||||
Mali-G71 [141] | Q2 2016 | 1–32 | 16 14 10 | ? | 700-1037 | 128–2048 KiB | 1850 | 0.7-24.7 GTexel/s (bilinear)[24] | 27.2 | 18.56-28.9[25] | 11 (FL 11_1) | Kirin 960, Exynos 5 7872[26], Exynos 7 7885[27], Exynos 9 8895[28], Helio P23, Helio P30 | |||||||||
Mali-G52 [142] | Bifrost 2ndgen | Q1 2018 | 1-4 (2 or 3 EU per core) | 16 | ? | 850 | ? | 6.8 | 27.2 @ 850 MHz per core (2 EU) 40.8 @ 850 MHz per core (3 EU) | AmLogic S922X, Rockchip RK3530 | |||||||||||
Mali-G72 [143] | Q2 2017 | 1–32 | 16 10 | 1.36 mm2per shader core at 10 nm[29] | 572-800 | 128–2048 KiB | 27.2 | 30.54 | 12 (FL 11_1) | Kirin 970, Exynos 9 9810, Exynos 7 9610, Helio P60, Helio P70 | |||||||||||
Mali-G76 [144] | Bifrost 3rdgen | Q2 2018 | 4-20 | 8 7 | ? | 600-720 | 512–4096 KiB | ? | ? | ? | ~48.96 | Kirin980, Kirin 990, Exynos 9 9820, Exynos 9 9825, Helio G90/G90T | |||||||||
Mali-G77 [145] | Valhall 1stgen | Superscalar engine + Unified memory + simplified scalar ISA | Q2 2019 | 7-16 | 7 | 850 | 512–4096 KiB | ||||||||||||||
Model | **Micro- archi- tecture** | Type | Launch date | Shader core count | Fab (nm) | Die size (mm2) | Core clock rate (MHz) | Max L2 cache size | Fillrate (Max core count) | Bus width (bits) | FP32 GFLOPS (per core) | Vulkan | Open GL/ES | Open VG | Open CL | Direct 3D | Fused multiply-add | Usage in SoCs | Usage |
Adaptive Scalable Texture Compression (ASTC) is supported by Mali-T620, T720/T760, T820/T830/T860/T880 [32] and Mali-G series.
Implementations
The Mali GPU variants can be found in the following systems on chips (SoCs):
Vendor | SoC name | Mali version |
---|---|---|
Allwinner | Allwinner A1X (A10, A10s, A13) | Mali-400 MP[33][34][35] @ 300 MHz |
A20, A23, A33, H2, H3, A64, H64, R8, R16, R40, R18 | Mali-400 MP2[36] @ 350/350/350/600/600/?/?/?/?/?/? MHz | |
H5 | Mali-450 MP4 | |
H6 | Mali-T720 MP2 | |
Amlogic | 8726-M series (8726-M1, 8726-M3, 8726-M6, 8726-MX) | Mali-400 MP/MP2[37] @ 250/400 MHz |
8726-M8 series (M801, M802, S801, S802, S812) | Mali-450 MP6[37] @ 600 MHz | |
8726-M8B series (M805, S805) | Mali-450 MP2[37] @ 500 MHz | |
S905, S905X/D/L | Mali-450 MP3 @ 750 MHz | |
S905X2, S905Y2, S905D2 | Mali-G31 MP2 | |
S912 | Mali-T820 MP3 @ 600 MHz | |
S922X | Mali-G52 MP4 | |
T966 | Mali-T830 MP2 @ 650 MHz | |
Asus | Tinkerboard, Tinkerboard S | Mali-T760 |
Baikal Electronics | Baikal-M | Mali-T628 MP8[38] |
CSR | Quatro 5300 Series | Mali-400 MP |
InfoTM | iMAP×15 | Mali-400 |
iMAP×820 | Mali-400 MP2 | |
iMAP×912 | Mali-400 MP2 | |
HiSilicon | Kirin 620 | Mali-450 MP4 @ 533 MHz |
Kirin 650/655/658/659 | Mali-T830 MP2 @ 900 MHz | |
Kirin 710 | Mali-G51 MP4 @ 1000MHz | |
Kirin 910/910T | Mali-450 MP4 @ 533/700 MHz | |
Kirin 920/925/928 | Mali-T628 MP4 @ 600/600/? MHz | |
Kirin 930/935 | Mali-T628 MP4 @ 600/680 MHz | |
Kirin 950/955 | Mali-T880 MP4 @ 900 MHz | |
Kirin 960 | Mali-G71 MP8 @ 1037 MHz | |
Kirin 970 | Mali-G72 MP12 @ 746 MHz | |
Kirin 980 | Mali-G76 MP10 @ 720 MHz | |
Kirin 990/990 5G | Mali-G76 MP16 @ 600 MHz | |
Leadcore | LC1810, LC1811, LC1813, LC1913 | Mali-400[39][40][41][42] |
LC1860, LC1860C, LC1960 | Mali-T628 MP2 @ 600 MHz | |
MediaTek | MT5595, MT5890 | Mali-T624 MP3 |
MT5596, MT5891 | Mali-T860 MP2 [43] | |
MT6571, MT6572, MT6572M | Mali-400 MP1 @ ?/500/400 MHz | |
MT6580 | Mali-400 MP1 @ 500 MHz | |
MT6582/MT6582M | Mali-400 MP2 @ 500/416 MHz | |
MT6588, MT6591, MT6592, MT6592M, MT8127 | Mali-450 MP4 @ 600/700/600/600 MHz[44] | |
MT6732, MT6732M, MT6752, MT6752M | Mali-T760 MP2 @ 500/500/700/700 MHz[45] | |
MT6735, MT6735M, MT6735P | Mali-T720 MP2 @ 600/500/400 MHz | |
MT6737, MT6737T | Mali-T720 MP2 @ 550/600 MHz | |
MT6750 | Mali-T860 MP2 @ 520 MHz | |
MT6753 | Mali-T720 MP3 @ 700 MHz[46] | |
MT6755 (Helio P10), MT6755M, MT6755T | Mali-T860 MP2 @ 700/650/800 MHz | |
MT6757 (Helio P20), MT6757CD | Mali-T880 MP2 @ 900 MHz/1.0 GHz | |
MT6797, MT6797D, MT6797T, MT6797X | Mali-T880 MP4 @ 780/850/875 MHz | |
MT8735 | Mali-T720 MP2 @ 450 MHz | |
Helio P23 | Mali-G71 MP2 @ 770 MHz[47] | |
Helio P25 | Mali-T880 MP2 @ 1GHz[48] | |
Helio P30 | Mali-G71 MP2 @ 950 MHz[49] | |
Helio P60 | Mali-G72 MP3 @ 800 MHz[50] | |
Helio P70 | Mali-G72 MP3 @ 900 MHz[51] | |
Helio G90/G90T | Mali-G76 MP4 @ 800MHz | |
NetLogic | Au1380, Au1350 | Mali-200[52][53] |
Nufront | NS2816, NS2816M | Mali-400 MP |
NS115, TL7688, TL7689 | Mali-400 MP2 | |
Realtek | RTD1294, RTD1295, RTD1296 | Mali-T820 MP3[54] |
Rockchip | RK2818 | Mali-200 |
RK2926, RK2628, RK3036, RK3229 | Mali-400 MP @ 400/400/500/600 MHz[55] | |
RK3026, RK3126, RK3128 | Mali-400 MP2 @ 500/600/600 MHz | |
RK3066, RK3188, RK3188T | Mali-400 MP4 @ 266/533/~400 MHz[56][57] | |
RK3288 | Mali-T760 MP4 @ 600 MHz | |
RK3326 | Mali-G31 MP2[20][21] | |
RK3328 | Mali-450 MP2 | |
RK3399 | Mali-T860 MP4 @ 600 MHz | |
RK3530 | Mali-G52[58] | |
RK3588 | ||
Samsung | Exynos 3 Quad (3470), Exynos 4 Dual, Quad (4210, 4212 and 4412) | Mali-400 MP4[59] |
Exynos 5 Dual (5250) | Mali-T604 MP4[60] | |
Exynos 5 Hexa (5260) | Mali-T624 MP3 | |
Exynos 5 Octa (5420, 5422, 5430 and 5800) | Mali-T628 MP6 | |
Exynos 5 Hexa (7872) | Mali-G71 MP1 @ 1.2GHz | |
Exynos 7 Octa (5433/7410) | Mali-T760 MP6 | |
Exynos 7 Octa (7420) | Mali-T760 MP8 @ 772MHz | |
Exynos 7 Quad (7570),Exynos 3 Quard(3475) | Mali-T720 MP1 | |
Exynos 7 Octa (7580) | Mali-T720 MP2 | |
Exynos 7 Octa (7870) | Mali-T830 MP1 | |
Exynos 7 Octa (7880) | Mali-T830 MP3 | |
Exynos 7 Series 7885 | Mali-G71 MP2 @1300MHz | |
Exynos 8 Octa (8890) | Mali-T880 MP10 (Lite) / Mali-T880 MP12 @650MHz | |
Exynos 9 Octa (8895) | Mali-G71 MP20 @ 546MHz[61][62] | |
Exynos 7 Series 9610 | Mali-G72 MP3[63] | |
Exynos 9 Series 9810 | Mali-G72 MP18 @ 572MHz[64] | |
Exynos 9 Series 9820 | Mali-G76MP12 @ 702MHz | |
S5P6450 Vega | Mali-400 MP[65] | |
Sigma Designs | SMP8750 Series | Mali-400 MP4 @ 350 MHz[66] |
Socle-Tech | Leopard-6 | Mali-200[67] |
Spreadtrum | SC68xx, SC57xx, SC77xx, SC8xxx, SC983x | Mali-400 MP Series[68] |
SC9860, SC9860GV | Mali-T880 MP4 | |
ST-Ericsson | NovaThor U9500, U8500, U5500 | Mali-400 MP[69] |
STMicroelectronics | SPEAr1340 | Mali-200[70] |
STi7108, STiH416 | Mali-400 MP[71][72] | |
Telechips | TCC8803, TCC8902, TCC8900, TCC9201 | Mali-200[37][73] |
WonderMedia | WM8750 | Mali-200 |
WM8850, WM8950 | Mali-400 MP[74] | |
WM8880, WM8980 | Mali-400 MP2 | |
WM8860 | Mali-450 | |
Xiaomi | Surge S1 | Mali-T860 MP4 @ 800 MHz[75][76] |
Surge S2 | Mali-G71 MP12 @ 900 MHz (?)[77] |
Mali Video Processors
Mali Video is the name given to ARM Holdings' dedicated video decoding and video encoding ASIC. There are multiple versions implementing a number of video codecs, such as HEVC, VP9, H.264 and VP8. As with all ARM products, the Mali Video Processor is a semiconductor intellectual property core licensed to third parties for inclusion in their chips. Real time encode-decode capability is central to videotelephony. An interface to ARM's TrustZone technology is also built-in to enable Digital Rights Management of copyrighted material.
Mali-V500
The first version of a Mali Video processor was the V500, released in 2013 with the Mali-T622 GPU.[78] The V500 is a multicore design, sporting 1–8 cores, with support for H.264 and a protected video path using ARM TrustZone. The 8 core version is sufficient for 4K video decode at 120 frames per second (fps). The V500 can encode VP8 and H.264, and decode H.264, H.263, MPEG4, MPEG2, VC-1/WMV, Real, VP8.
Mali-V550
Released with the Mali-T800 GPU, ARM V550 video processors added both encode and decode HEVC support, 10-bit color depth, and technologies to further reduced power consumption.[79] The V550 also included technology improvements to better handle latency and save bandwidth.[80] Again built around the idea of a scalable number of cores (1–8) the V550 could support between 1080p60 (1 core) to 4K120 (8 cores). The V550 supported HEVC Main, H.264, VP8, JPEG encode, and HEVC Main 10, HEVC Main, H.264, H.263, MPEG4, MPEG2, VC-1/WMV, Real, VP8, JPEG decode.
Mali-V61
The Mali V61 video processor (formerly named Egil) was released with the Mali Bifrost GPU in 2016.[81][82] V61 has been designed to improve video encoding, in particular HEVC and VP9, and to allow for encoding either a single or multiple streams simultaneously.[83] The design continues the 1–8 variable core number design, with a single core supporting 1080p60 while 8 cores can drive 4Kp120. It can decode and encode VP9 10-bit, VP9 8-bit, HEVC Main 10, HEVC Main, H.264, VP8, JPEG and decode only MPEG4, MPEG2, VC-1/WMV, Real, H.263.[84]
Mali-V52
Mali-V76
The Mali V76 video processor was released with the Mali G76 GPU and Cortex-A76 CPU in 2018.[87] The V76 was designed to improve video encoding and decoding performance. The design continues the 2–8 variable core number design, with 8 cores capable of 8Kp60 decoding and 8Kp30 encoding. Relative to the V61, support was added for 10-bit HDR H.264 encode and decode. However, the AV1 codec is not supported.
Comparison
Mali Video | V500 | V550 | V61 | V52 | V76 |
---|---|---|---|---|---|
Announced | June 2, 2013[88] | October 27, 2014[89] | October 31, 2016[90] | March 6, 2018[91] | May 31, 2018[87] |
Recommended GPU | Mali-T800-series | Mali-G51 Mali-G72 | Mali-G31 Mali-G52 | Mali-G76 | |
Recommended DPU | Mali-DP500 | Mali-DP550 Mali-DP650 | Mali-DP650 Mali-D71 | Mali-D52 | |
Memory system | MMU | ||||
Bus interface | AMBA 3 AXI AMBA 4 ACE Lite | AMBA AXI | AMBA4 AXI | ||
Performance (enc) | 1080p60 (1 core) to 4K120 (8 core) | 1080p60 (1 core) to 4K60 (4 core) | 1080p60 (1 core) to 8K30 (8 core) | ||
Performance (dec) | 1080p120 (1 core) to 4K120 (4 core) | 1080p120 (1 core) to 8K60 (8 core) | |||
Decode & Encode | |||||
H.264 8-bit | D & E | D & E | D & E | D & E | D & E |
H.264 10-bit | D & E | D & E | |||
VP8 | D & E | D & E | D & E | D & E | D & E |
JPEG | D & E | D & E | D & E | D & E | |
HEVC Main | D & E | D & E | D & E | D & E | |
HEVC Main 10 | D | D & E | D & E | D & E | |
VP9 8-bit | D & E | D & E | D & E | ||
VP9 10-bit | D & E | D & E | D & E | ||
AV1 |
Mali Display Processors
Mali-D71
The Mali-D71 added Arm Framebuffer Compression (AFBC) 1.2 encoder, support for ARM CoreLink MMU-600 and Assertive Display 5. Assertive Display 5 has support for HDR10 and Hybrid Log-Gamma (HLG).
Mali-D77
The Mali-D77 added features including Asynchronous timewarp (ATW), Lens Distortion Correction (LDC) and Chromatic Aberration Correction (CAC). The Mali-D77 is also capable of 3K (2880x1440) @ 120Hz and 4K @ 90Hz.[92]
Mali Display | DP500[93][94] | DP550[95] | DP650[96][97] | D71[98][99][100] | D51 | D77[101][102] |
---|---|---|---|---|---|---|
Announced | May 8, 2010 | October 27, 2014 | January 20, 2016 | October 31, 2017 | March 6, 2018 | May 15, 2019 |
Optimized res | n/a | 720p (HD) to 1080p (FHD) | 1440p (QHD) | 1440p (QHD) to 2160p (UHD/4K) | 1080p (FHD) to 1440p (QHD) | 2880x1440 @ 120Hz |
Maximum res | 2160p (4K) | 2160p (4K) | 2160p (4K) | 2160p (4K) up to 120fps | 4096x2048 up to 60fps | 4320x2160 @ 120Hz |
Launched Alongside | Cortex-A17 core | Mali-T800 series GPU, V550 Video Processor | CoreLink MMU-600, Assertive Display 5 | Mali-G31, Mali-G52, Mali-V52 |
Mali Camera
Mali-C71
Mali-C52 & Mali-C32
On January 3th 2019 the Mali-C52 and C32 where announced, aimed at everyday devices including drones, smart home assistants and security, and internet protocol (IP) camera.[106]
Comparison
Mali Camera | C32 | C52 | C71 |
---|---|---|---|
Announced | January 3, 2019 | April 25, 2017 | |
Throughput | 600 MP/s | 1,2 GP/s | |
Camera support | 4x, total 16 MP | 4x 4096x4096 | |
Dynamic Range | 24 stops | ||
Channel support | RGGB, RGBlr | RGGB, RCCC, RGBIr, RCCB, RCCG | |
up to 16 channels | |||
ASIL compliance | ASIL D |
The Lima and Panfrost FOSS drivers
On January 21, 2012, Phoronix reported that Luc Verhaegen is driving a reverse-engineering attempt aimed at the Mali series of GPUs, specifically the Mali 200 and Mali 400 versions. The project will be known as Lima and support OpenGL ES 2.0.[107] The reverse-engineering project was presented at FOSDEM, February 4, 2012,[108][109] followed by the opening of a website [146] demonstrating some renders. On February 2, 2013, Verhaegen demonstrated Quake III Arena in timedemo mode, running on top of the Lima driver.[110] In May 2018, a Lima developer posted the driver for inclusion in the Linux kernel.[111] As of May 2019, the Lima driver is part of the mainline Linux kernel.[112]
See also
Adreno – GPU developed by Qualcomm (formerly AMD, then Freescale)
Atom family of SoCs – with Intel graphics core, not licensed to third parties
AMD mobile APUs – with AMD graphics core, licensed to Samsung [114]
PowerVR – by Imagination Technologies
Tegra – family of SoCs by Nvidia with the graphics core available as a SIP block to third parties
VideoCore – family of SoCs by Broadcom with the graphics core available as a SIP block to third parties
Vivante – available as SIP block to third parties