The LACT config file is located in /etc/lact/config.yaml
, and contains all of the GPU settings that are typically edited in the GUI, as well as a few settings specifying the behaviour of the daemon.
LACT listens for config file changes and reloads all GPU settings automatically, but daemon-related settings such as the logging level or permissions require a service restart (systemctl restart lactd
).
Full config file with all possible options:
# WARNING: this is only an example of each possible setting. DO NOT COPY THIS CONFIG AS IS.
# Many options don't make sense to be used together, and depend on your hardware.
daemon:
# The logging level of the daemon.
# Possible values: `error`, `warn`, `info` (default), `debug`, `trace`
log_level: info
# User groups who should have access to the daemon.
# WARNING: only the first group from this list that is found on the system is used!
# This is made a list and not a single value to allow this config to work across
# different distros, which might have different groups for an "admin" user.
admin_groups:
- wheel
- sudo
# If set to `true`, this setting makes the LACT daemon not reset
# GPU clocks when changing other settings or when turning off the daemon.
# Can be used to work around a few very specific issues with
# some settings not applying on AMD GPUs.
disable_clocks_cleanup: false
# Daemon's TCP listening address. Not specified by default.
# By default TCP access is disabled, and only a unix socket is present.
# Specifying this option enables the TCP listener.
tcp_listen_address: 127.0.0.1:12853
# Period in seconds for how long settings should wait to be confirmed.
# Most GPU setting change commands require a confirmation command to be used
# in order to save these settings to the config.
# If a confirm command is not issued within the configured period (default: 5 seconds)
# the setting will be reverted.
apply_settings_timer: 5
# The main GPU configuration map, containing the list of GPUs and their settings.
gpus:
# A GPU config entry. This is the ID of the GPU.
# The ID is formed with a combination of a PCI device id,
# PCI subsystem id and PCI slot name to uniquely identify
# each GPU in the system, even if there are multiple of the same model.
# You can discover the id of your GPU by either:
# - Changing a setting in the UI, so it's written to the config
# - Using `lact cli list-gpus`
1002:687F-1043:0555-0000:0b:00.0:
# Whether the daemon should touch fan control settings at all.
# Setting this to `true` requires the `fan_control_settings` field to be present as well.
fan_control_enabled: true
fan_control_settings:
# Fan control mode. Can be either `curve` or `static`
mode: curve
# Static fan speed from 0 to 1. Used when `mode` is `static`
static_speed: 1.0
# The temperature sensor name to be used with a custom fan curve.
# This can be used to base the fan curve off the`junction` (hotspot)
# temperature instead of the default overall ("edge") tempreature.
# Applicable on most Vega and newer AMD GPUs.
temperature_key: edge
# Interval in milliseconds for how often the GPU temperature should be checked
# when adjusting the fan curve.
interval_ms: 500
# Custom fan curve used with `mode` set to `curve`.
# The format of the map is temperature to fan speed from 0 to 1.
# Note: on RDNA3+ AMD GPUs this must have 5 entries.
curve:
40: 0.2
50: 0.35
60: 0.5
70: 0.75
80: 1.0
# Hysteresis setting: when spinning down fans after a temperature drop,
# the target speed needs to be lower for at least this many milliseconds
# for the fan to actually slow down.
# This lets you avoid fan speed jumping around during short drops of load
# (e.g. loading screen in a game).
spindown_delay_ms: 0
# Hysteresis setting: the minimum temperature change in degrees
# to affect the fan speed. Also used to avoid rapid fan speed changes
# when the temperature only changes e.g. 1 degree.
change_threshold: 0
# Power management firmware options. Specific to RDNA3+ AMD GPUs.
# Most of these settings are only applied when not using a custom fan curve.
pmfw_options:
# This setting adjusts the PMFW’s behavior about the maximum speed in RPM the fan can spin.
acoustic_limit: 3200
# This setting adjusts the PMFW’s behavior about the maximum speed in RPM the fan can spin
# when the temperature is not greater than target temperature.
acoustic_target: 1450
# The minimum speed in RPM that the fan can spin at.
minimum_pwm: 15
# Target temperature for the GPU in degrees.
# Paring with the acoustic_target setting, they define the maximum speed in RPM
# the fan can spin when the temperature is not greater than target temperature.
target_temperature: 83
# When set to `true`, allows the fan to be turned turned off when below the
# `zero_rpm_threshold` temperature value.
zero_rpm: true
# Temperature in degrees below which the fan should be turned off when `zero_rpm` is set to true.
zero_rpm_threshold: 50
# Power limit in watts.
power_cap: 320.0
# Performance level option for AMD GPUs.
# Can be `auto`, `low`, `high` or `manual`.
performance_level: auto
# Index of an AMD power profile mode.
# Setting this requires `performance_level` to be set to `manual`.
power_profile_mode_index: 0
# Custom heuristic values when using the custom AMD power profile mode.
# The meaning of these values, their format and count depend on the specific GPU model.
# Check the names of these values in the UI.
custom_power_profile_mode_hueristics:
- - 0
- 5
- 1
- 0
- 4
- 800
- 4587520
- -65536
- 0
- - 0
- 5
- 1
- 0
- 1
- 0
- 3276800
- -65536
- -6553
- - 0
- 5
- 1
- 0
- 4
- 800
- 327680
- -65536
- 0
# List of AMD power states which should be enabled
power_states:
# GPU power states
core_clock:
- 0
- 2
- 3
# VRAM power states
memory_clock:
- 0
- 1
# Minimum GPU clockspeed in MHz.
min_core_clock: 300
# Minimum VRAM clockspeed in MHz.
min_memory_clock: 500
# Minimum GPU voltage in mV.
min_voltage: 900
# Maximum GPU clockspeed in MHz.
max_core_clock: 1630
# Maximum VRAM clockspeed in MHz.
max_memory_clock: 800
# Maximum GPU voltage in mV.
max_voltage: 1200
# Voltage offset value in mV for RDNA and newer AMD GPUs.
voltage_offset: 0
# Settings profiles
profiles:
# Name of the profile
vkcube:
# GPU settings in this profile.
# It is the same config format that is used for the top-level `gpus` option.
gpus: {}
# Profile activation rule for when this profile shoule be activated
# when using automatic profile switching.
rule:
# Type of the rule. Can be either `process or `gamemode`.
type: process
# Process filter. This is not required when using the gamemode rule type.
filter:
# Name of the process.
name: vkcube
# Process arguments. Not required.
args: --my-arg
# Current profile to be used. Does not have effect when `auto_switch_profiles` is used.
# Omit this option or set to `null` to use the default profile (settings in the top-level `gpus` entry).
current_profile: vkcube
# If profiles should be switched between automatically based on their configured rules.
auto_switch_profiles: true