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

GPU utilization using MALI G51

Hello Team,


We need to understand that how to get value of %GPU utilization for individual processes running on target because there are lot of parameter include such as GPU active, Non-Fragment queue active etc, By which factor we can achieve the overall GPU performance for our application

Please find the below attached image as you can see the highlight portion of MALI GPU Utilization :



Is there any calculation we need to do to achieve the overall GPU performance?

And also the GPU utilization is in mega-cycle how can we achieve it in percentage?

Parents
  • We need to understand that how to get value of %GPU utilization for individual processes running on target because there are lot of parameter include such as GPU active, Non-Fragment queue active etc, By which factor we can achieve the overall GPU performance for our application

    GPU active is the overall time where "something" is running on one of the hardware queues. Non-fragment / fragment active are the two queues, and can run in parallel (including for different processes). Generally GPU Active is the main metric for hardware utilization, btu you want to make sure the two sub queues are pipelining well and not running serially. 

    The GPU data we get from the hardware counters is global data - it is not process aware and cannot be filtered by process.

    And also the GPU utilization is in mega-cycle how can we achieve it in percentage?

    Modify the Streamline expression to divide cycles by your target frequency for that device. The $ZOOM macro can be used to provide scaling - it is the current bin size in seconds and so can be used to scale a frequency constant so it remains usable at all UI zoom levels.

    HTH, 
    Pete

Reply
  • We need to understand that how to get value of %GPU utilization for individual processes running on target because there are lot of parameter include such as GPU active, Non-Fragment queue active etc, By which factor we can achieve the overall GPU performance for our application

    GPU active is the overall time where "something" is running on one of the hardware queues. Non-fragment / fragment active are the two queues, and can run in parallel (including for different processes). Generally GPU Active is the main metric for hardware utilization, btu you want to make sure the two sub queues are pipelining well and not running serially. 

    The GPU data we get from the hardware counters is global data - it is not process aware and cannot be filtered by process.

    And also the GPU utilization is in mega-cycle how can we achieve it in percentage?

    Modify the Streamline expression to divide cycles by your target frequency for that device. The $ZOOM macro can be used to provide scaling - it is the current bin size in seconds and so can be used to scale a frequency constant so it remains usable at all UI zoom levels.

    HTH, 
    Pete

Children
  • Hello Peter,

    ?

    Modify the Streamline expression to divide cycles by your target frequency for that device. The $ZOOM macro can be used to provide scaling - it is the current bin size in seconds and so can be used to scale a frequency constant so it remains usable at all UI zoom levels.

    We are using Mali G51, we haven't found any frequency related information so could you please provide the information regarding frequency or some official document, we need to find in urgent basis.

    And just for confirmation to get the GPU in (%)

    GPU % =(  clock speed got from streamline / clock speed of MALI G51)x 100%

    Is my understanding correct?

    Best Regards,

    Rohit

  • Hi Rohit,

    could you please provide the information regarding frequency

    Maximum frequency depends on the device - different vendors can use different silicon implementations, and choose to use different design constraints. I'd suggest talking to the chipset manufacturer.

    Empirically you can run a heavy load and look at the GPU performance over 1 second. If you see a sustained region where GPU Active cycles stays level that is a good region to measure.

    GPU % =(  clock speed got from streamline / clock speed of MALI G51)x 100%

    Assuming the GPU has a 1GHz sustainable top frequency, the following Streamline expression gives you a percentage relative to max load:

    ($MaliGPUCyclesGPUActive/(1000000000*$ZOOM)) * 100

    HTH, 
    Pete

  • Hello Peter,

    Assuming the GPU has a 1GHz sustainable top frequency, the following Streamline expression gives you a percentage relative to max load:

    Just for confirmation Assuming my chipset max frequency is 700 MHz and from streamline max load I am getting over 1s is 520 MHz,

    So according to that my GPU load in % will be 520/700 = 74%

    Is my Understanding correct ?

    Best Regards,

    Rohit