Jetson/TX1 Controlling Performance

From eLinux.org
Jump to: navigation, search

Although Jetson TX1's L4T BSP has a built-in load governor enabled, through Linux sysfs it's possible to manually control various core settings and clock frequencies, impacting power consumption and performance.

Maximizing TX1 Performance

Use the TX1 Governor Maximization script to enable maximum performance. Run 1 minute after boot to ensure any of the Ubuntu startup scripts don't interfere or override the settings during boot.

Below the steps are broken down to illustrate the different settings available for manual use:

1. Maximizing CPU/GPU

Run the script below as root to maximize the clock frequency limits of the CPU/GPU governor.

This section also keeps the 4 ARM Cortex-A57 cores always on.

sudo su
echo userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo userspace > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
echo userspace > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governor
echo userspace > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governor
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freq
cat /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq > /sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freq
echo 0 > /sys/devices/system/cpu/cpuquiet/tegra_cpuquiet/enable
for file in /sys/devices/system/cpu/cpu*/online; do
 if [ `cat $file` -eq 0 ]; then
 echo 1 > $file
 fi
done
echo runnable > /sys/devices/system/cpu/cpuquiet/current_governor
cat /sys/kernel/debug/clock/gpu_dvfs_t
cat /sys/kernel/debug/clock/dvfs_table
cat /sys/kernel/debug/clock/gbus/max >
/sys/kernel/debug/clock/override.gbus/rate
echo 1 > /sys/kernel/debug/clock/override.gbus/state

2. Disable CPU Idle

for i in `ls /sys/devices/system/cpu/cpu*/cpuidle/state*/disable`; do echo 1
> $i; done

3. Maximize EMC (Memory Controller)

cat /sys/kernel/debug/clock/override.emc/max > /sys/kernel/debug/clock/override.emc/rate
echo 1 > /sys/kernel/debug/clock/override.emc/state

4. Controlling the Fan

echo 255 > /sys/kernel/debug/tegra_fan/target_pwm


Other Settings

See the TK1 Performance page for settings and commands from Jetson TK1, many of them still relevant to TX1.

There are many cores not mentioned above, exposed through /sys/kernel/debug and /sys/devices/system that can be experimented with for impacts to power scaling.