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

How to determine some performance budgets in PA

Hi guys,

I use Performance Advisor (PA) to optimize my game. By the way, in PA, I can set performance budgets, but I don't know how to set an appropriate level for some budgets.

For example, for GPU cycles budget case, I can calculate the absolute limit of GPU cost per frame for : GPU top frequency/Frame rate = Maximum GPU cycles per frame.

So what about shader-cycles-budget (Shader cycles per frame) and cpu-cycles-budget (CPU cycles per frame)? I don't know exactly what 'Shader cycles per frame' means, so I can't calculate the value, and mobile processor has multiple multi-core cpu, and the frequency is different.

Anyone know more about this?

Thanks!

-Jinho

Parents
  • Hi Pete,

    Thank you so much for the good advice.
    Let me ask you one more thing.

    For memory bandwidth aim for a total that keeps your game under ~4GB/s total bandwidth. If you are targeting higher frame rates then your per-frame budget will reduce, as that per-second budget gets split more ways.

    Can I get the current total memory bandwidth (GB/s) using streamline capture data counters?

    Thanks!

    Jinho

Reply
  • Hi Pete,

    Thank you so much for the good advice.
    Let me ask you one more thing.

    For memory bandwidth aim for a total that keeps your game under ~4GB/s total bandwidth. If you are targeting higher frame rates then your per-frame budget will reduce, as that per-second budget gets split more ways.

    Can I get the current total memory bandwidth (GB/s) using streamline capture data counters?

    Thanks!

    Jinho

Children
  • Performance Advisor will always show the per-frame numbers, so for budget setting take your target GB/s and divide it by your target FPS. E.g. if you are targeting 4GB/s at 30 FPS then your per-frame budget is (4*1024/30) = 136MB/frame.

    You can see the bandwidth per second in the Streamline capture. 

    Highlight a 1 second range with the cross-section marker tool, and the message bubble will show you the total bandwidth.

    HTH, 
    Pete

  • Hi Pete,

    I am using the G-78 template.
    Is External memory bandwidth the same as Mali Memory bandwidth? If so, does the sum of Output external read bytes and Output external write bytes mean Total Memory bandwidth?

    Thanks,

    Jinho

  • If you apply the template in the Timeline too (not just counter configuration) you should get the same chart that I show above.

  • Hi Pete,

    For memory bandwidth aim for a total that keeps your game under ~4GB/s total bandwidth.

    Could you please explain why the 4GB limit is? Is there any article on this that I can refer to?

    Your answers always help me a lot. Thank you!

    -Jinho

  • A common entry-level memory system for mobile is capable of ~6.4GB/s (peak DRAM performance). DRAM performance drops a lot under high load, so under realistic usage you want to aim for ~60% of the peak performance. This gives the ~4GB/s target. 

    For high-end systems you have much faster DRAM performance (latest phones are often quoted with > 30GB/s). However accessing DRAM is very power hungry. A useful rule of thumb is ~80mW/GB/s for memory system+DRAM power, so 30GB/s is over 2 Watts of memory power. This is unlikely to be thermally sustainable. For these high-end systems you can definitely use more than 4GB/s, but < 8GB/s is still a very sensible target for energy efficiency reasons.

    HTH, 
    Pete

  • That's good advice I need.

    Thanks!

    -Jinho