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

Malisc Offline Compiler Verbose/Analyse result documentation

Hi,

Nice tools you're offering, I really love the offline compiler, and it really fits well in our pipeline to deliver shader to arm/mali mobile (unit tests and debug).

Now we'd like to advance on the perf departement, but I'm having hard time to figure out the documentation.

So I'm running

#malics -V -frag myshade.frag

in hope to get useful information on our shader performance, and got a nice array of results, but I could use some documentation on each column. Here's what I get

"

8 work registers used, 4 uniform registers used, spilling used.

AL/STTotal  Bound
cycles1332517175A
shortest path25241766A
longest path32251474A

"

I did search the website but couldn't find anything on any of those info, I can guess some, but really prefer making sure I have the perfect meaning of each.

I'd really like to be able to get as much info and meaning from command line

(this avoiding the huge 'studio' thing usage which implies too much setup for each shader where a simple compilation is enough)

Thanks !

Parents
  • Hi Kuranes,

    You're running the Mali 600 offline shader compiler so it's giving you statistics for that shader, compiled with that driver version, for a T6xx core (defaults to T670 r3p0 but you can select). The T6xx+ (Midgard) GPUs all implement what we call a "Tripipe" architecture, as they have A, LS, and T pipes, referring to Arithmetic, Load/Store and Texture respectively. Each instruction in your shader will execute in one of these pipes. The shader compiler is showing you the total number of instructions in the shader, as well as the longest and shortest execution path the shader will take through those instructions, in your case 66 and 74. It also shows you a breakdown of which pipes those instructions execute in, and therefore which one you are likely to be bound on and should consider optimizing first. I'll have a hunt for some documentation but I believe any documentation should be shipped with the compiler, and more general advice on the tri-pipe architecture is dotted throughout blogs on this site and also in the Mali Optimization guide available from Mali GPU Application Optimization Guide v3.0 « Mali Developer Center

    Hope this helps,

    Chris

Reply
  • Hi Kuranes,

    You're running the Mali 600 offline shader compiler so it's giving you statistics for that shader, compiled with that driver version, for a T6xx core (defaults to T670 r3p0 but you can select). The T6xx+ (Midgard) GPUs all implement what we call a "Tripipe" architecture, as they have A, LS, and T pipes, referring to Arithmetic, Load/Store and Texture respectively. Each instruction in your shader will execute in one of these pipes. The shader compiler is showing you the total number of instructions in the shader, as well as the longest and shortest execution path the shader will take through those instructions, in your case 66 and 74. It also shows you a breakdown of which pipes those instructions execute in, and therefore which one you are likely to be bound on and should consider optimizing first. I'll have a hunt for some documentation but I believe any documentation should be shipped with the compiler, and more general advice on the tri-pipe architecture is dotted throughout blogs on this site and also in the Mali Optimization guide available from Mali GPU Application Optimization Guide v3.0 « Mali Developer Center

    Hope this helps,

    Chris

Children