This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

What is the GLops of Mali T628MP6? Can't get 17 flops per pipe using OpenGL.

For Mali T604 and T628, peak performance is 17 FP32 FLOPS per ALU per cycle.http://malideveloper.arm.com/downloads/OpenCL_FAQ.pdf shows this is compsed of:

  • 7: dot product (4 Muls, 3 adds)
  • 1: scalar add
  • 4: vec4 add
  • 4: vec4 multiply
  • 1: scalar multiply

And also in What is exact double precision performance for Mali T628 MP6 (Arndale Octa Board) ? ,  @chrisvarns says 17flops.

And in http://malideveloper.arm.com/downloads/IWOCL.pdf, timhar01 also says 17flops.

But according to my measurement, it can't process dot product with vec4 MAD together. The running time of case 1 and case 2 is the same. Why? How can I get 17 flops?

case 1:

"    color_out5 = color_out5*color5+color6;\n"

"    color_out5 = color_out5*color5+color6;\n"

"    color_out5 = color_out5*color5+color6;\n"

"    color_out5 = color_out5*color5+color6;\n"

"    color_out5 = color_out5*color5+color6;\n"

"    color_out5 = color_out5*color5+color6;\n"

"    color_out5 = color_out5*color5+color6;\n"

"    color_out5 = color_out5*color5+color6;\n"


case2:

"    color_out1 = vec4(dot(color_out1, color1));\n"

"    color_out5 = color_out5*color5+color6;\n"

"    color_out1 = vec4(dot(color_out1, color1));\n"

"    color_out5 = color_out5*color5+color6;\n"

"    color_out1 = vec4(dot(color_out1, color1));\n"

"    color_out5 = color_out5*color5+color6;\n"

"    color_out1 = vec4(dot(color_out1, color1));\n"

"    color_out5 = color_out5*color5+color6;\n"

Parents
  • Hi chen,

    The number of floating point operations that the vector units can perform is double for FP16, than it is for FP32, resulting in double PEAK FLOPS for those units. But again, this is PEAK and we are not trying to suggest that you should expect this level of performance with every shader. The shader above is a bad example of the effect on A pipe instructions apparently as in that case it is only affecting the number of load/store instructions (still a good optimization!). General advice is to use mediump wherever possible, as this gives the compiler the most chance of taking advantage of it.

    Thanks,

    Chris

Reply
  • Hi chen,

    The number of floating point operations that the vector units can perform is double for FP16, than it is for FP32, resulting in double PEAK FLOPS for those units. But again, this is PEAK and we are not trying to suggest that you should expect this level of performance with every shader. The shader above is a bad example of the effect on A pipe instructions apparently as in that case it is only affecting the number of load/store instructions (still a good optimization!). General advice is to use mediump wherever possible, as this gives the compiler the most chance of taking advantage of it.

    Thanks,

    Chris

Children
No data