gpu: lock the memory clock at 810 MHz on the mining hosts (+13% on the 4090) #10

Merged
grenade merged 1 commits from gpu/memory-clock-lock into main 2026-09-03 15:47:00 +00:00
Owner

The miner never touches VRAM, so memory at full clock is watts taken from the SMs inside the same power cap. Measured with the CUDA engine, miner paused, interleaved rounds:

card memory clock MH/s SM clock
RTX 4090 at 250 W 10,251 (default) 410 1,950
RTX 4090 at 250 W 5,001 435 to 447 2,040 to 2,175
RTX 4090 at 250 W 810 463 2,190
RTX 4090 at 250 W 405 155 645, low-power state
RTX 3060 at 130 W 7,301 (default) 81 to 82 1,725 to 1,800
RTX 3060 at 130 W 810 83 to 84 1,790
  • asset/gpu/nvidia-power-limit.sh: after the power limit, locks each card's memory clock at NVIDIA_MEMORY_CLOCK_MHZ (verified against the card's supported states; 405 refused), or resets it when unset, so the config is authoritative both ways.
  • script/infra-setup.sh: GPU_MEMORY_CLOCKS per host, written to the same config file. benjy and quadbrat at 810; beast deliberately absent since inference is memory-bound.
  • readme.md: the numbers and the 405 trap.

Already applied from this branch via the gpu role: benjy and quadbrat locked at 810 MHz without a miner restart, beast reset to default. nvidia-smi -lmc survives neither reboot nor driver reload, which is why it lives in this boot unit next to the power limit.

🤖 Generated with Claude Code

https://claude.ai/code/session_01CBgs2nSi4H2mdh8kD8vMX5

The miner never touches VRAM, so memory at full clock is watts taken from the SMs inside the same power cap. Measured with the CUDA engine, miner paused, interleaved rounds: | card | memory clock | MH/s | SM clock | | --- | --- | --- | --- | | RTX 4090 at 250 W | 10,251 (default) | 410 | 1,950 | | RTX 4090 at 250 W | 5,001 | 435 to 447 | 2,040 to 2,175 | | RTX 4090 at 250 W | **810** | **463** | 2,190 | | RTX 4090 at 250 W | 405 | 155 | 645, low-power state | | RTX 3060 at 130 W | 7,301 (default) | 81 to 82 | 1,725 to 1,800 | | RTX 3060 at 130 W | **810** | 83 to 84 | 1,790 | - `asset/gpu/nvidia-power-limit.sh`: after the power limit, locks each card's memory clock at `NVIDIA_MEMORY_CLOCK_MHZ` (verified against the card's supported states; 405 refused), or resets it when unset, so the config is authoritative both ways. - `script/infra-setup.sh`: `GPU_MEMORY_CLOCKS` per host, written to the same config file. benjy and quadbrat at 810; beast deliberately absent since inference is memory-bound. - `readme.md`: the numbers and the 405 trap. **Already applied** from this branch via the gpu role: benjy and quadbrat locked at 810 MHz without a miner restart, beast reset to default. `nvidia-smi -lmc` survives neither reboot nor driver reload, which is why it lives in this boot unit next to the power limit. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01CBgs2nSi4H2mdh8kD8vMX5
grenade added 1 commit 2026-09-03 15:46:45 +00:00
The miner never touches VRAM, so memory at full clock is watts taken from the
SMs inside the same power cap. Measured with the CUDA engine, miner paused:
4090 at 250 W 410 -> 463 MH/s (SM 1950 -> 2190 MHz); 3060 at 130 W 81 -> 83.
405 MHz drops the card into a low-power state (155 MH/s) and is refused.

Applied by nvidia-power-limit.service from the same config file
(NVIDIA_MEMORY_CLOCK_MHZ), configured per host in GPU_MEMORY_CLOCKS; hosts
without an entry are reset to the driver default. beast is not listed:
inference is memory-bound.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CBgs2nSi4H2mdh8kD8vMX5
grenade merged commit 8ee003d8d3 into main 2026-09-03 15:47:00 +00:00
grenade deleted branch gpu/memory-clock-lock 2026-09-03 15:47:01 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lair/quantus#10