{"id":15109718,"url":"https://github.com/ilya-zlobintsev/lact","last_synced_at":"2025-05-14T05:11:01.817Z","repository":{"id":41968348,"uuid":"304892612","full_name":"ilya-zlobintsev/LACT","owner":"ilya-zlobintsev","description":"Linux GPU Configuration And Monitoring Tool","archived":false,"fork":false,"pushed_at":"2025-05-12T20:09:05.000Z","size":2355,"stargazers_count":2328,"open_issues_count":31,"forks_count":56,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-05-12T20:52:17.710Z","etag":null,"topics":["amdgpu","gpu","hactoberfest","linux","nvidia","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ilya-zlobintsev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":null,"liberapay":"ilya-zlobintsev","ko_fi":"ilya_zlobintsev","tidelift":null,"community_bridge":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"polar":null,"custom":null}},"created_at":"2020-10-17T14:11:55.000Z","updated_at":"2025-05-12T19:16:27.000Z","dependencies_parsed_at":"2023-02-18T12:46:07.626Z","dependency_job_id":"ecacb7b1-a5bf-4100-bd1f-deb8eab5fc7f","html_url":"https://github.com/ilya-zlobintsev/LACT","commit_stats":null,"previous_names":["ilyazzz/lact"],"tags_count":29,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilya-zlobintsev%2FLACT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilya-zlobintsev%2FLACT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilya-zlobintsev%2FLACT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ilya-zlobintsev%2FLACT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ilya-zlobintsev","download_url":"https://codeload.github.com/ilya-zlobintsev/LACT/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254076850,"owners_count":22010611,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["amdgpu","gpu","hactoberfest","linux","nvidia","rust"],"created_at":"2024-09-25T23:22:32.482Z","updated_at":"2025-05-14T05:10:56.800Z","avatar_url":"https://github.com/ilya-zlobintsev.png","language":"Rust","funding_links":["https://liberapay.com/ilya-zlobintsev","https://ko-fi.com/ilya_zlobintsev"],"categories":[],"sub_categories":[],"readme":"# Linux GPU Control Application\n\n\u003cimg src=\"res/io.github.ilya_zlobintsev.LACT.png\" alt=\"icon\" width=\"100\"/\u003e\n\nThis application allows you to control your AMD, Nvidia or Intel GPU on a Linux\nsystem.\n\n| GPU info                                  | Overclocking                              | Fan control                               |\n| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- |\n| ![image](https://i.imgur.com/gur90cK.png) | ![image](https://i.imgur.com/BAL3MgC.png) | ![image](https://i.imgur.com/VsAVdOR.png) |\n| Historical data                           |                                           |                                           |\n| ![image](https://i.imgur.com/GOmKh1M.png) |                                           |                                           |\n\nCurrent features:\n\n- Viewing information about the GPU\n- Power and thermals monitoring, power limit configuration\n- Fan curve control (AMD and Nvidia)\n- Overclocking (GPU/VRAM clockspeed and voltage)\n- Power states configuration (AMD only)\n\nAll of the functionality works regardless of the desktop session (there is no\ndependency on X11 extensions).\n\n# Quick links\n\n- [Installation](#installation)\n- [Hardware support](https://github.com/ilya-zlobintsev/LACT/wiki/Hardware-Support)\n- [Enable overclocking on AMD](https://github.com/ilya-zlobintsev/LACT/wiki/Overclocking-(AMD))\n- [Config file reference](./docs/CONFIG.md)\n- [API](./docs/API.md)\n- [Power profiles daemon conflict](#power-profiles-daemon-note)\n- [Recovery from a bad overclock](https://github.com/ilya-zlobintsev/LACT/wiki/Recovering-from-a-bad-overclock)\n\n# Installation\n\n- Arch Linux: Install the package from official repositories: `pacman -S lact`\n  (or `lact-git` from AUR for development builds).\n- Debian/Ubuntu/Derivatives: Download a .deb from\n  [releases](https://github.com/ilya-zlobintsev/LACT/releases/).\n\n  It is only available on Debian 12+ and Ubuntu 22.04+ as older versions don't\n  ship gtk4.\n- Fedora: use the\n  [Copr repository](https://copr.fedorainfracloud.org/coprs/ilyaz/LACT/), or\n  download an RPM from\n  [releases](https://github.com/ilya-zlobintsev/LACT/releases/).\n- Gentoo: Available in\n  [GURU](https://github.com/gentoo/guru/tree/master/sys-apps/lact).\n- OpenSUSE: an RPM is available in\n  [releases](https://github.com/ilya-zlobintsev/LACT/releases/).\n\n  Only tumbleweed is supported as leap does not have the required dependencies\n  in the repos.\n- NixOS: There is a package available in\n  [nixpkgs](https://search.nixos.org/packages?channel=24.05\u0026from=0\u0026size=50\u0026sort=relevance\u0026type=packages\u0026query=lact)\n- Flatpak (universal): Available on [Flathub](https://flathub.org/apps/io.github.ilya_zlobintsev.LACT) and in [releases](https://github.com/ilya-zlobintsev/LACT/releases/).\n\n  See the [Flatpak documentation](./flatpak/README.md) for setup notes.\n- Build from source.\n\nNote: Nvidia support requires the Nvidia proprietary driver with CUDA libraries\ninstalled.\n\n## Development builds\n\nTo get latest fixes or features that have not yet been released in a stable\nversion, there are packages built from the latest commit that you can install\nfrom the\n[test release](https://github.com/ilya-zlobintsev/LACT/releases/tag/test-build)\nor using the `lact-git` AUR package on Arch-based distros.\n\nNote: the date that GitHub shows next to the test release is not when the packages were built,\nthe actual date is specified next to the attached package files.\n\n# Usage\n\nEnable and start the service (otherwise you won't be able to change any\nsettings):\n\n```\nsudo systemctl enable --now lactd\n```\n\nYou can now use the GUI to change settings and view information.\n\n# Hardware support\n\nSee the\n[Wiki page](https://github.com/ilya-zlobintsev/LACT/wiki/Hardware-Support)\n\n# Configuration\n\nThere is a configuration file available in `/etc/lact/config.yaml`. Most of the\nsettings are accessible through the GUI, but some of them may be useful to be\nedited manually (like `admin_group` and `admin_user` to specify who has access\nto the daemon)\n\nSee [CONFIG.md](./docs/CONFIG.md) for more information.\n\n**Socket permissions setup:**\n\nBy default, LACT uses either ether the `wheel` or `sudo` group (whichever is\navailable) for the ownership of the unix socket that the GUI needs to connect\nto.\n\nOn most desktop configurations (such as the default setup on Arch-based, most\nDebian-based or Fedora systems) this includes the default user, so you do not\nneed to configure this.\n\nHowever, some systems may have different user configuration. In particular, this\nhas been reported to be a problem on OpenSUSE.\n\nTo fix socket permissions in such configurations, edit `/etc/lact/config.yaml`\nand under the `daemon` section either:\n\n- Set `admin_user` to your username\n- Set `admin_group` to a group that your user is a part of Then restart the\n  service (`sudo systemctl restart lactd`).\n\n# Overclocking (AMD)\n\nSome functionality requires enabling an option in the amdgpu driver, see the\n[wiki page](https://github.com/ilya-zlobintsev/LACT/wiki/Overclocking-(AMD)) for\nmore information.\n\n## Power profiles daemon note!\n\nIf you are using `power-profiles-daemon` (which is installed by default on many\ndistributions), by default it will override the amdgpu performance level setting\naccording to its own profile.\n\nTo avoid this, create a file at\n`/etc/systemd/system/power-profiles-daemon.service.d/override.conf` with the\nfollowing contents:\n\n```\n[Service]\nExecStart=\nExecStart=/usr/libexec/power-profiles-daemon --block-action=amdgpu_dpm\n```\n\nNote: the `/usr/libexec` path might be different on your system, check it in\n`systemctl status power-profiles-daemon`\n\nSee https://github.com/ilya-zlobintsev/LACT/issues/370 for more information.\n\n# Suspend/Resume\n\nAs some of the GPU settings may get reset when suspending the system, LACT will\nreload them on system resume. This may not work on distributions which don't use\nsystemd, as it relies on the `org.freedesktop.login2` DBus interface.\n\n# Building from source\n\nDependencies:\n\n- rust 1.76+\n- gtk 4.6+\n- git\n- pkg-config\n- clang\n- make\n- hwdata\n- libdrm\n- vulkan-tools\n\nCommand to install all dependencies:\n\n- Fedora:\n  `sudo dnf install rust cargo make git clang gtk4-devel libdrm-devel vulkan-tools`\n- Arch:\n  `sudo pacman -S --needed base-devel git clang make rust gtk4 hwdata vulkan-tools`\n\nSteps:\n\n- `git clone https://github.com/ilya-zlobintsev/LACT \u0026\u0026 cd LACT`\n- `make`\n- `sudo make install`\n\nIt's possible to change which features LACT gets built with. To do so, replace\nthe `make` command with the following variation:\n\nHeadless build with no GUI:\n\n```\nmake build-release-headless\n```\n\nBuild GUI with libadwaita support:\n\n```\nmake build-release-libadwaita\n```\n\n# Remote management\n\nIt's possible to have the LACT daemon running on one machine, and then manage it\nremotely from another.\n\nThis is disabled by default, as the TCP connection **does not have any\nauthentication or encryption mechanism!** Make sure to only use it in trusted\nnetworks and/or set up appropriate firewall rules.\n\nTo enable it, edit `/etc/lact/config.yaml` and add `tcp_listen_address` with\nyour desired address and in the `daemon` section.\n\nExample:\n\n```yaml\ndaemon:\n  tcp_listen_address: 0.0.0.0:12853\n  log_level: info\n  admin_group: wheel\n  disable_clocks_cleanup: false\n```\n\nAfter this restart the service (`sudo systemctl restart lactd`).\n\nTo connect to a remote instance with the GUI, run it with\n`lact gui --tcp-address 192.168.1.10:12853`.\n\n# CLI\n\nThere is also a cli available.\n\n- List system GPUs:\n\n  `lact cli list-gpus`\n\n  Example output:\n\n  ```\n  10DE:2704-1462:5110-0000:09:00.0 (AD103 [GeForce RTX 4080])\n  ```\n- Getting GPU information:\n\n  `lact cli info`\n\n  Example output:\n\n  ```\n  $ lact cli info\n  GPU 10DE:2704-1462:5110-0000:09:00.0:\n  =====================================\n  GPU Model: NVIDIA GeForce RTX 4080 (0x10DE:0x2704)\n  Card Manufacturer: Micro-Star International Co., Ltd. [MSI] (0x1462)\n  Card Model: Unknown (0x5110)\n  Driver Used: nvidia 570.124.04\n  VBIOS Version: 95.03.1E.00.60\n  VRAM Size: 16376 MiB\n  GPU Family: Ada\n  Cuda Cores: 9728\n  SM Count: 76\n  ROP Count: 112 (14 * 8)\n  VRAM Type: GDDR6x\n  VRAM Manufacturer: Micron\n  L2 Cache: 65536 KiB\n  Resizeable bar: Enabled\n  CPU Accessible VRAM: 16384\n  Link Speed: 8 GT/s PCIe gen 3 x8\n  ```\n\nThe functionality of the CLI is quite limited. If you want to integrate LACT\nwith some application/script, you should use the [API](API.md) instead.\n\n# Reporting issues\n\nWhen reporting issues, please include your system info and GPU model.\n\nIf you're having an issue with changing the GPU's configuration, it's highly\nrecommended to include a debug snapshot in the bug report. You can generate one\nusing the option in the dropdown menu:\n\n![image](https://github.com/ilya-zlobintsev/LACT/assets/22796665/36dda5e3-981b-47e7-914e-6e29f30616b4)\n\nThe snapshot is an archive which includes the SysFS that LACT uses to interact\nwith the GPU.\n\nIf there's a crash, run `lact gui` from the command line to get GUI logs, check\ndaemon logs in `journalctl -u lactd` for errors, and see `dmesg` for kernel logs\nthat might include information about driver and system issues.\n\n# Other tools\n\nHere's a list of other useful tools for AMD GPUs on Linux:\n\n- [CoreCtrl](https://gitlab.com/corectrl/corectrl) - direct alternative to LACT,\n  provides similar functionality in addition to CPU configuration with a Qt UI\n- [amdgpu_top](https://github.com/Umio-Yasuno/amdgpu_top) - tool for detailed\n  real-time statistics on AMD GPUs\n- [Tuxclocker](https://github.com/Lurkki14/tuxclocker) - Qt overclocking tool,\n  has support for AMD GPUs\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filya-zlobintsev%2Flact","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Filya-zlobintsev%2Flact","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filya-zlobintsev%2Flact/lists"}