GPU's cycles in Streamline

Hi guys,

I need some clarification in regards to the GPU Active ($MaliGPUCyclesGPUActive) counter on a Mali-G76 (not really specific to this GPU though) in a Samsung S10e.

I'm getting a total of ~310 mega-cycles in 1 sec. From a quick look at the DVFS table file (found it in /sys/devices/platform/18500000.mali/dvfs_table) it seems the max frequency is 702MHz (for some reason I can't find any Arm official page with the max frequency of this GPU though) - and I'm relying in my interpretation of the values in there.

So, my question is, is it possible that the GPU is being underutilized or that DVFS has kicked-in (although I made sure to have the device running on top of an ice-pack); or both?

Cheers.

Parents
  • Hi JPJ, 

    For some reason I can't find any Arm official page with the max frequency of this GPU though.

    The max frequency entirely depends on the silicon implementation, so it can vary from device to device depending on silicon process, and target performance/area/power trade off used by our silicon partner.

    So, my question is, is it possible that the GPU is being underutilized or that DVFS has kicked-in  

    On mobile you'll be getting DVFS all the time; tuning CPU and GPU performance to match the workload demand is critical for getting good energy efficiency. 

    In general for a high-end part like the S10 you nearly always want to run the GPU well below maximum frequency. The high core count is really designed to allow complex content to run at under-drive voltages to gain energy efficiency. Energy per operation is proportional to V^2 so high frequencies get expensive pretty quickly. Running well below 700 should be "normal" for this device, yes,

    You can use the peak performance for short periods, but if you tried to run all the cores in a high-end device at max performance for a prolonged period you'd definitely overheat the device.  

    HTH, 
    Pete

  • Thanks Pete! I've massively oversimplified the problem, so thanks for the clarification. 

    What I meant by the "max frequency" was perhaps a representative frequency (e.g. as in this page https://developer.arm.com/ip-products/graphics-and-multimedia/mali-gpus/mali-t860-and-mali-t880-gpus for the T880-MP16)? So, I was searching for the equivalent for the G-76. I assume the frequency given in that page is not useful to individual user, but rather to silicon implementers, right?

    Regardless, I was trying to establish a parallel with an old Arm presentation from the Nordic Game Conference 2014, "Performance Optimization and Debugging Mobile Games". Although there's no text my interpretation was that I could somehow benchmark the value I was getting in the GPU Active counter against a set frequency.

    Having said all this, is there any meaningful use for that specific counter apart from using it to relative work from the different queues/job types (e.g. Fragment, Tiler, Interrupt)?

Reply Children
More questions in this forum