FYI
Unfortunately, there is no universally-supported way to get the GPU frequency. The clock supplied to the GPU usually comes from a PLL module, which differs from system to system. Many systems also vary the GPU and CPU clock frequencies over time, depending on workload and other factors, which complicates things further. Your best bet is therefore to find documentation for the system in which the GPU is embedded.
Sean
Hi there,
On linux (possibly true for android) you may be able to see the current clock at /sys/class/misc/mali0/device/clock and dvfs setting at /sys/class/misc/mali0/device/dvfs, but only if the kernel has been built with the relevant support, so I would not expect this information to be available on a production device. It is probably possible to make these available by rebuilding the kernel and mali kernel driver with the required options, but this is non trivial. Also just grepping through the kernel repo usually is enough to let you know the max clock frequency.
What device/OS are you working with?
Thanks,
Chris
Hi Chris,
We also want to run GPU at max possible clock. we set 533 for /sys/class/misc/mali0/device/clock as 533 and 'off' for /sys/class/misc/mali0/device/dvfs , and clock value getting modified to 100 when we run our application.
Can you please help us to turn of the DVFS on GPU. We are using Exynos5420 from Insignal with Android OS.
Veeranna
Hi veerannah,
The DVFS code for the GPU is not directly managed by our drivers - it is part of the platform integration provided in the BSP from Insignal. This style of integration occurs because the DVFS analogue parts which control F and V for the power domains are not part of the ARM IP. This question is probably best asked to Samsung or Insignal, as they maintain the BSP for that platform.
Kind regards, Pete
Hi Peter,
Thanks for reply. We are able to turn of DVFS for GPU. and seeing better performance. Now also want to check cache related settings of GPU. How can I check this?
There isn't really anything to check. It's an integral part of the GPU and automatically configured by the drivers at run-time.
Pete
Hi, veerannah
If possible, could I ask how did you vary the frequencies?
I just want to scale GPU frequencies to see performance differences.
Thanks in advance,
Woojung Myung
Hi,
In kernel code, there is a clock frequency table. We modified this table in accordance with our required value.Sorry I don't remember exact file name, if you search DVFS, GPU, clock keywords in kernel code you will get it.
Hi nightskyz,
Some devices have a DVFS table in the /sys/ mali class, which lets you see all valid possible frequencies. You can then in theory change the governor, disable DVFS, and force the frequency to each of the values in the table, and test your app accordingly.
This is not Mali specific however, and down to the vendor to implement and expose, so different devices may or may not have this available to the user.
An example: On my Nexus 10 device
# cat /sys/devices/platform/mali.0/clock Current sclk_g3d[G3D_BLK] = 450Mhz Possible settings : 533, 450, 400, 350, 266, 160, 100Mhz
# cat /sys/devices/platform/mali.0/clock
Current sclk_g3d[G3D_BLK] = 450Mhz
Possible settings : 533, 450, 400, 350, 266, 160, 100Mhz
I hope that helps,
Kind Regards,
Michael McGeagh
Really appreciate of your answer
I will try it
Woojung
Dear Michael,
Thanks for your detailed answer
I will try it.
Thanks a lot,