Home

Awesome

Linux AMDGPU Control Application

<img src="res/io.github.lact-linux.png" alt="icon" width="100"/>

This application allows you to control your AMD GPU on a Linux system.

GPU infoOverclockingFan control
imageimageimage

Current features:

Installation

Why is there no AppImage/Flatpak/other universal format? See here.

Development builds

To get latest fixes or features that have not yet been released in a stable version, there are packages built from the latest commit that you can install from the test release or using the lact-git AUR package on Arch-based distros.

Note: the date of the test release is not the date when the packages were built, the actual date is specified next to the attached package files.

Usage

Enable and start the service (otherwise you won't be able to change any settings):

sudo systemctl enable --now lactd

You can now use the GUI to change settings and view information.

Hardware support

LACT for the most part does not implement features on a per-generation basis, rather it exposes the functionality that is available in the driver for the current system. However the following table shows what functionality can be expected for a given generation.

GenerationClocks configurationPower limitPower statesFan controlNotes
Southern Islands (HD 7000)UnsupportedUnknownUnknownUntestedRequires the amdgpu.si_support=1 kernel option
Sea Islands (R7/R9 200)UnsupportedUnknownUntestedUntestedRequires the amdgpu.cik_support=1 kernel option
Volcanic Islands (R7/R9 300)UnsupportedUnknownUntestedUntested
Arctic Islands/Polaris (RX 400-500)SupportedSupportedSupportedSupported
VegaSupportedSupportedSupportedSupported
RDNA1 (RX 5000)SupportedSupportedSupportedSupported
RDNA2 (RX 6000)SupportedSupportedSupportedSupported
RDNA3 (RX 7000)SupportedLimitedSupportedLimitedThere is an unconfigurable temperature threshold below which the fan does not get turned on, even with a custom curve. The power cap is also sometimes lower than it should be. Requires kernel 6.7+. See #255 for more info.

GPUs not listed here will still work, but might not have full functionality available. Monitoring/system info will be available everywhere. Integrated GPUs might also only have basic configuration available.

Configuration

There is a configuration file available in /etc/lact/config.yaml. Most of the settings are accessible through the GUI, but some of them may be useful to be edited manually (like admin_groups to specify who has access to the daemon)

Socket permissions setup:

By default, LACT uses either ether the wheel or sudo group (whichever is available) for the ownership of the unix socket that the GUI needs to connect to.

On most configurations (such as the default setup on Arch-based, most Debian-based or Fedora systems) you do not need to do anything.

However, some systems may have different user configuration. In particular, this has been reported to be a problem on OpenSUSE.

To fix socket permissions in such configurations, edit /etc/lact/config.yaml and add your username or group as the first entry in admin_groups under daemon, and restart the service (sudo systemctl restart lactd).

Overclocking

The overclocking functionality is disabled by default in the driver. There are two ways to enable it:

Suspend/Resume

As some of the GPU settings may get reset when suspending the system, LACT will reload them on system resume. This may not work on distributions which don't use systemd, as it relies on the org.freedesktop.login2 DBus interface.

Building from source

Dependencies:

Steps:

It's also possible to build LACT without some of the features by using cargo feature flags. This can be useful if some dependency is not available on your system, or is too old.

Build without DRM support (some GPU information will not be available):

cargo build --no-default-features -p lact --features=lact-gui

Minimal build (no GUI!):

cargo build --no-default-features -p lact

Build GUI with libadwaita support:

make build-release-libadwaita

API

There is an API available over a unix socket. See here for more information.

CLI

There is also a cli available.

The functionality of the CLI is quite limited. If you want to integrate LACT with some application/script, you should use the API instead.

Reporting issues

When reporting issues, please include your system info and GPU model.

If you're having an issue with changing the GPU's configuration, it's highly recommended to include a debug snapshot in the bug report. You can generate one using the option in the dropdown menu:

image

The snapshot is an archive which includes the SysFS that LACT uses to interact with the GPU.

If there's a crash, run lact gui from the command line to get GUI logs, check daemon logs in journalctl -u lactd for errors, and see dmesg for kernel logs that might include information about driver and system issues.

Other tools

Here's a list of other useful tools for AMD GPUs on Linux: