| #!/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" |