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

Optimize for Thermal

Hi,

I'd like to know ways to profile for thermal. Our game performance is reasonable in a S6 but it overheats in a fews minutes. Is there an api to trottle CPU/GPU or a tool to profile the operations that are contributing more to overheat.

Parents
  • Hi philira,

    The ability and location of changing the processor clocks (throttle the CPU/GPU) is not controlled by us, but the SoC vendor.

    As I have an S6 with me, here is what you can find from probing the /sys/ filesystem:

    /sys/devices/14ac0000.mali/

    asv_table

    clock

    core_availability_policy

    core_mask

    debug_level

    down_staycount

    driver

    dvfs

    dvfs_governor

    dvfs_max_lock

    dvfs_max_lock_status

    dvfs_min_lock

    dvfs_min_lock_status

    dvfs_table

    gpu_status

    highspeed_clock

    highspeed_delay

    highspeed_load

    hwcnt_bt_state

    hwcnt_dvfs

    hwcnt_gpr

    hwcnt_tripipe

    misc

    modalias

    norm_utilization

    perf

    polling_speed

    power

    power_policy

    power_state

    subsystem

    time_in_state

    tmu

    trace_dump

    trace_level

    uevent

    utilization

    utilization_stats

    vol

    wakeup_lock

    As you can see, you have the visibility of the GPU frequencies, among a lot of other useful things, on the S6 device.

    However, you cannot modify these files, unless you have root access to the device.

    Android is not designed in a way to let a standard (non-rooted) application to change frequencies, and with good reasons.

    The same goes for the CPU:

    /sys/devices/system/cpu/

    cpu0

    cpu1

    cpu2

    cpu3

    cpu4

    cpu5

    cpu6

    cpu7

    cpufreq

    cpuidle

    kernel_max

    modalias

    offline

    online

    possible

    power

    present

    uevent

    Please note that not all devices will have these sysfs entries in the same location, if at all. They do not exist for standard applications to modify.

    Regarding your original question related to how to reduce thermal throttling, and assuming you do not have access to the processor frequencies, then the main cause for heat in a mobile device is bandwidth.

    If you can reduce bandwidth in your application, this should help. Tools such as ARM DS-5 Streamline do have the ability to profile the bandwidth and let you know whether this is a concern for the particular device you are running it on. Note that each device will have a different limit regarding bandwidth.

    Ways to reduce bandwidth can be found in our optimisation guide, for example one method I can suggest to do this is to use ASTC. This gives incredible reduction in bandwidth while still retaining excellent image quality, and can be applied to just about every texture format your application can possibly have.

    We at ARM feel very strongly about not just low power, but thermal limits, and particularly in the GPU, we do a lot to help reduce bandwidth. To name a few, Transaction Elimination and AFBC all help with this problem.

    I hope that helps you understand what you can do to help alleviate your thermal constraints.

    If you have any further questions, feel free to ask them!

    Kind Regards,

    Michael McGeagh

Reply
  • Hi philira,

    The ability and location of changing the processor clocks (throttle the CPU/GPU) is not controlled by us, but the SoC vendor.

    As I have an S6 with me, here is what you can find from probing the /sys/ filesystem:

    /sys/devices/14ac0000.mali/

    asv_table

    clock

    core_availability_policy

    core_mask

    debug_level

    down_staycount

    driver

    dvfs

    dvfs_governor

    dvfs_max_lock

    dvfs_max_lock_status

    dvfs_min_lock

    dvfs_min_lock_status

    dvfs_table

    gpu_status

    highspeed_clock

    highspeed_delay

    highspeed_load

    hwcnt_bt_state

    hwcnt_dvfs

    hwcnt_gpr

    hwcnt_tripipe

    misc

    modalias

    norm_utilization

    perf

    polling_speed

    power

    power_policy

    power_state

    subsystem

    time_in_state

    tmu

    trace_dump

    trace_level

    uevent

    utilization

    utilization_stats

    vol

    wakeup_lock

    As you can see, you have the visibility of the GPU frequencies, among a lot of other useful things, on the S6 device.

    However, you cannot modify these files, unless you have root access to the device.

    Android is not designed in a way to let a standard (non-rooted) application to change frequencies, and with good reasons.

    The same goes for the CPU:

    /sys/devices/system/cpu/

    cpu0

    cpu1

    cpu2

    cpu3

    cpu4

    cpu5

    cpu6

    cpu7

    cpufreq

    cpuidle

    kernel_max

    modalias

    offline

    online

    possible

    power

    present

    uevent

    Please note that not all devices will have these sysfs entries in the same location, if at all. They do not exist for standard applications to modify.

    Regarding your original question related to how to reduce thermal throttling, and assuming you do not have access to the processor frequencies, then the main cause for heat in a mobile device is bandwidth.

    If you can reduce bandwidth in your application, this should help. Tools such as ARM DS-5 Streamline do have the ability to profile the bandwidth and let you know whether this is a concern for the particular device you are running it on. Note that each device will have a different limit regarding bandwidth.

    Ways to reduce bandwidth can be found in our optimisation guide, for example one method I can suggest to do this is to use ASTC. This gives incredible reduction in bandwidth while still retaining excellent image quality, and can be applied to just about every texture format your application can possibly have.

    We at ARM feel very strongly about not just low power, but thermal limits, and particularly in the GPU, we do a lot to help reduce bandwidth. To name a few, Transaction Elimination and AFBC all help with this problem.

    I hope that helps you understand what you can do to help alleviate your thermal constraints.

    If you have any further questions, feel free to ask them!

    Kind Regards,

    Michael McGeagh

Children
No data