JustAResearcher

gpu-unlock-ada: Enable Tensor Speed-Select on Ada GPUs

A Linux kernel module that uses the AD102 payload from TOTORONG/AD103_win_unlocker to enable an SM speed-select override before NVIDIA’s driver loads. It targets RTX 4090 and opt-in experimental Ada GPUs, with locally generated firmware assets.

Stars
4.1k
Forks
538
Last commit
1 day ago
Contributors
20
Releases, 12 months
2

Our take

Newless than six months old and changing fast

Health score

70/100

How it is scored
Activity
67
Community
61
Issues
82
Pull requests
69

This is a narrowly scoped, actively maintained hardware experiment with meaningful validation, but its results and safety depend on the exact GPU and boot state.

Good fit if

  • You have a supported Linux GPU and can follow the cold-boot, driver-ordering and post-boot verification steps.
  • Your goal is to investigate FP16/BF16 or other measured tensor instruction rates, and you understand that application performance may differ.
  • You can build the module and firmware assets locally and accept GPL-2.0-only obligations for the covered project code.

Look elsewhere if

  • You need a broadly supported performance improvement for an unlisted GPU, or a guaranteed gain across inference and other application workloads.
  • You need Windows support from this repository; its Windows reference is a separate, single-profile contribution, not Linux-module target support.
  • You cannot validate GPU health and recover from a boot or firmware-state problem on the machine you plan to modify.
All health signals
Last commit2026-10-26 (1 day ago)
Commits, last 90 days100+
Releases, last 12 months2 (latest v1.1.1, 2026-10-24)
Contributors20 (top contributor: 43% of commits)
Issues closed, last 90 days33 (typically closed in 1 day)
Pull requests merged, last 90 days23 (typically merged in 0 days)
Project age3 days

Checked on 2026-10-27 with the GitHub API.

Overview

gpu-unlock-ada is a Linux kernel module that integrates the AD102 payload from TOTORONG’s AD103_win_unlocker into the Linux module and firmware-generation base from Zagitta’s gpu-unlock. It enables an SM speed-select override before the stock NVIDIA driver binds, addressing reduced tensor instruction throughput on supported GPUs without requiring a patched NVIDIA driver or UEFI application.

The primary target is the RTX 4090; other Ada GPU IDs are available only as explicit experimental opt-ins, with evidence varying by model. This is a hardware-level change, not a general-purpose GPU performance tool: measured instruction throughput gains do not necessarily translate to application gains. The README also describes a separate Windows reference port for one MSI RTX 4070 Ti, but that does not add Windows support to the Linux module.

Key Features

  • Runs as a Linux kernel module early in boot, before the NVIDIA driver binds.
  • Selects the AD102 firmware and payload automatically for RTX 4090 devices.
  • Supports selected experimental Ada IDs through individual opt-in flags and, for some models, exact PCI-address selection.
  • Builds firmware assets locally from pinned NVIDIA inputs and verifies asset hashes before use.
  • Checks the payload completion marker, permissions and speed-select readout, including after PCIe function-level reset.
  • Includes host-side tests and optional CUDA instruction benchmarks, plus published hardware reports and testing guidance.
  • Provides package and initramfs integration for mkinitcpio, initramfs-tools and dracut.

Use Cases

  • RTX 4090 owners who want to test higher FP16 or BF16 tensor instruction throughput on Linux and can validate the result on their specific card.
  • Owners of listed experimental Ada GPUs who are prepared to opt in by exact device and assess the model-specific evidence before deployment.
  • GPU researchers investigating tensor instruction rates and firmware-level speed selection, rather than expecting equivalent gains in every workload.
  • Linux system builders who want an early-boot module and locally generated firmware assets instead of a patched NVIDIA driver or UEFI application.

What you need

Detected in the repository

  • C (main language on GitHub)
  • A test suite

License in plain words

GPL-2.0strong copyleft

  • Commercial use: yes
  • Modify and redistribute: yes
  • You must keep: the license notice
  • Share your changes: yes, the full source of anything you distribute that includes it, under the GPL

A summary, not legal advice: the LICENSE file is what applies.

Getting Started

git clone https://github.com/JustAResearcher/gpu-unlock-ada.git
cd gpu-unlock-ada
make install

Review the README’s supported-target table and boot instructions before enabling the module. Build inputs and firmware are generated locally; consult the README for distribution-specific targets, kernel command-line options and validation steps.

Considerations

The repository is very new and changing quickly, although it has recent releases, frequent commits and issue and pull-request activity. Contributions are not dominated by one person, but the short project history limits what that says about long-term maintenance or hardware coverage.

An unlock requires a compatible GPU, Linux kernel headers, a working DKMS toolchain, locally generated firmware assets and correct initramfs ordering. The first attempt requires a cold start, and a warm reboot may not restore the hardware state needed to rerun the firmware sequence. Experimental Ada support is explicitly limited to listed IDs and small numbers of tested cards; laptop results in particular may not carry across models. Reported instruction-rate gains do not ensure faster real workloads, and some measured workloads showed no benefit. The module, packaging and payload integration are GPL-2.0-only; NVIDIA firmware remains subject to its own terms.

Found this useful?

Share it with someone who would like gpu-unlock-ada.