| #!/bin/sh |
| |
| # Copyright 2021 The IREE Authors |
| # |
| # Licensed under the Apache License v2.0 with LLVM Exceptions. |
| # See https://llvm.org/LICENSE.txt for license information. |
| # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| |
| # Runs on a Pixel 6 device itself to set the GPU frequency scaling policy. |
| |
| ################################### WARNING #################################### |
| # This will overheat the phone if it's not on a cooling plate, resulting in # |
| # thermal throttling. To prevent anything catching on fire, the actual GPU # |
| # frequencies will be throttled to below the maximum, skewing your results. # |
| ################################################################################ |
| |
| set -euo pipefail |
| |
| POLICY="${1:-performance}" |
| |
| readonly MALI_GPU_PATH="/sys/devices/platform/1c500000.mali" |
| |
| echo "GPU info (before changing frequency scaling policy):" |
| echo 'policy\t\t\t\t\tcur\tmin\tmax' |
| echo "--------------------------------------------------------------" |
| paste \ |
| "${MALI_GPU_PATH}/power_policy" \ |
| "${MALI_GPU_PATH}/cur_freq" \ |
| "${MALI_GPU_PATH}/min_freq" \ |
| "${MALI_GPU_PATH}/max_freq" |
| |
| echo "Setting GPU frequency scaling policy to ${POLICY}" |
| |
| case "$POLICY" in |
| performance) |
| echo "always_on" > "${MALI_GPU_PATH}/power_policy" |
| cat "${MALI_GPU_PATH}/max_freq" > "${MALI_GPU_PATH}/scaling_max_freq" |
| cat "${MALI_GPU_PATH}/max_freq" > "${MALI_GPU_PATH}/scaling_min_freq" |
| ;; |
| default) |
| echo "coarse_demand" > "${MALI_GPU_PATH}/power_policy" |
| cat "${MALI_GPU_PATH}/max_freq" > "${MALI_GPU_PATH}/scaling_max_freq" |
| cat "${MALI_GPU_PATH}/min_freq" > "${MALI_GPU_PATH}/scaling_min_freq" |
| ;; |
| *) |
| echo "Unknown frequency scaling policy: ${POLICY}" |
| exit 1 |
| ;; |
| esac |
| |
| echo "GPU info (after changing frequency scaling policy):" |
| echo 'policy\t\t\t\t\tcur\tmin\tmax' |
| echo "--------------------------------------------------------------" |
| paste \ |
| "${MALI_GPU_PATH}/power_policy" \ |
| "${MALI_GPU_PATH}/cur_freq" \ |
| "${MALI_GPU_PATH}/min_freq" \ |
| "${MALI_GPU_PATH}/max_freq" |