mirror of
https://github.com/ilya-zlobintsev/LACT.git
synced 2025-02-25 18:55:26 -06:00
193 lines
7.6 KiB
Markdown
193 lines
7.6 KiB
Markdown
# Configuration
|
||
|
||
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:
|
||
```yaml
|
||
# 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
|
||
```
|