how many shader cores on G31/G52?


As a research project, I am now playing with Odroid C4 (G31 mp2), Odroid N2 (G52 mp4), and Hikey960 (G71 mp8)

After quick looking at the clinfo, I became curious about number of cores attached to each of GPU model above.

AFAIK, the MP means "multi processing", and hence number of shader cores in Bifrost series.

However, when I ran clinfo, the shown "max compute units" are 1, 2, 8 (G31 mp2, G52 mp4, and G71 mp8) unlike what I expected (2 ,4, 8).

FYI - I checked that both Odroid C4/N2 are using relatively old mali device driver compared to the Hikey960. However, as both device driver read the raw gpu props from the GPU, I guess both can correctly read the available number of cores.

Do I miss anything for GPU configuration? or was the specification from amlogic wrong?

  • "MP" gets used somewhat inconsistently - sometimes it's core count, and sometimes it's pixels/clock count. For the Bifrost family:

    Mali-G71 and Mali-G72 use a one-pixel per clock shader core. The "core count" and the "pixels/clock" count are therefore the same. For these designs the official Arm naming uses MP = core count.

    Mali-G52/76 use a two-pixel per clock shader core. The "core count" is therefore half the "pixels/clock" count. For these designs the official Arm naming uses MP = core count.

    Mali-G31 and Mali-G51 are the odd ones out because they come in both one-pixel and two-pixel shader core designs, and can be mixed in a single GPU. Core count is therefore ambiguous in these designs, so MP = pixel count. 

    • MP1 = 1 x 1pix/cy core = 1 core
    • MP2 = 1 x 2pix/cy core = 1 cores
    • MP3 = 1 x 2pix/cy core + 1 x 1pix/cy core = 2 cores
    • MP4 = 2 x 2pix/cy core = 2 cores

    It looks like the Odroid N2 isn't using our official naming convention - if that's two cores I would expect that to be called Mali-G52 MP2.