P-states and idle power
More actions
A stock CMP 170HX idles at 30 to 40 W. That is heat a passive card still has to get rid of, and it adds up in a multi-card box. With patched idle settings people reach 23 to 26 W per card, close to the A100's own floor.
Idle draw measured
| Setup | Idle draw per card | Temperature | Status | Source |
|---|---|---|---|---|
| Stock | about 40 W (against 15 W for an RTX 5060 Ti) | not given | Reported | Source: @nikhilr1696, 2026-10-07 |
| Stock, card spec page | 30 to 40 W | not given | Reported | Source: repo github.com/amoghmunikote/170th-Street by amoghmunikote on GitHub, posted by @markshowa, 2026-10-18 (no license stated) |
| Four cards, 180 W cap, blower running, no load | 33.7 to 37.7 W (about 141 W for four) | core 37 to 38 C, memory 41 to 51 C | Reported | Source: repo github.com/PixelML/club-170hx by PixelML on GitHub, posted by @c133, 2026-10-20 (Apache-2.0 license) |
| 170tune reference card | 36.9 W true idle at 405 MHz; 40.2 W with a server loaded at 1,140 MHz | not given | Reported | Source: repo github.com/vektorprime/170tune by vektorprime on GitHub, posted by @rh3dai, 2026-10-04 (MIT license; fork of cachenetics/170tune) |
| 8 GB and 10 GB card on one host, after a repaste (PTM on the 8 GB card) | about 33 W each | memory 37 C (8 GB) and 41 C (10 GB) | Reported | Source: @ghostinthedatacenter_87281, 2026-10-13 Source: @ghostinthedatacenter_87281, 2026-10-13 |
| "Some tweaks" (not specified) | about 29 W | not given | Reported | Source: @cibernox, 2026-10-07 |
| Idle gate patches (below), three cards | 23, 25 and 26 W; the warmer cards drop to 23 W with fans up | not given | Reported | Source: @robbbbbb7973, 2026-10-10 |
| A100 PCIe at P8, from screenshots found online | about 22 W at the lowest | n/a | Reported | Source: @robbbbbb7973, 2026-10-21 |
@robbbbbb7973 thinks HBM keeps the A100, and so the 170HX, from going much below about 22 W. Source: @robbbbbb7973, 2026-10-21
A whole server can idle far higher than its cards: a Supermicro SYS-4028GR with 170HX cards draws about 300 W with no load, mostly fans. Source: @catchyuser, 2026-10-09
The idle gate patches
Reported @cibernox wrote two pull requests, one for cmpunlocker and one for 170tune. Judging by the setting names below, they lower the core clock, HBM clock and refresh rate while a card is idle and restore them when it is busy, with temperature thresholds. @robbbbbb7973 merged both into his own copies (plus the ECC changes from cmpunlocker), ran the 170tune idle gate, and has run three cards at 23 to 26 W idle with no errors. Source: @robbbbbb7973, 2026-10-10 His gate output:
DEVICE_ID=0x20c210de DRIVER=610.57.04 VBIOS=92.00.6D.00.0A HBM=1 BUSY_NDIV=64 BUSY_REFRESH=6 BUSY_CLK=0 IDLE_CLK=210 IDLE_NDIV=30 COOL_REFRESH=24 IDLE_REFRESH=48 COOL_C=60 HOT_C=63
- This is the 300 W 8 GB VBIOS (busy NDIV 64 is its stock memory clock). Values for other VBIOS versions were not posted.
- Contested @cibernox himself saw errors when he went that low and is not sure whether the cause was software or hardware; he plans to retest. Source: @cibernox, 2026-10-09
- The idle settings were not in the upstream cmpunlocker or 170tune repositories as cloned on 2026-10-30; ask in the Discord for the current state.
Levers and what they save
- HBM refresh interval. At NDIV 76, REFRESH 24 cut idle from 41.0 to 34.9 W with flat bandwidth; refresh is an idle-power lever, worth only about 2.5 % under a serving load. Keep stock refresh if HBM is above 85 C. Source: repo github.com/vektorprime/170tune by vektorprime on GitHub REFRESH 192 (about 30 times the JEDEC interval) was corruption-free at the stock clock Source: repo github.com/cachenetics/170tune by cachenetics on GitHub, posted by @rh3dai, 2026-10-04 (MIT license); REFRESH 384 was still clean and 768 wedged the card Source: repo github.com/vektorprime/170tune by vektorprime on GitHub.
- HBM clock. The idle gate drops NDIV to 30 at idle; lower memory clock and longer refresh save more than large drops in core clock. Source: @vcore2191, 2026-10-21
- Core clock. On @vcore2191's card, dropping the core from 1,140 MHz at 0.712 V to 210 MHz at 0.55 V saves 4 W, which puts core power at about 4.5 W at the higher point and 0.5 W at the lower one, ignoring other voltage domains. Source: @vcore2191, 2026-10-21
- Core idle point. With no CUDA context the core sits at 712 mV, which is not on the V/F curve (by the curve, 210 MHz is about 0.55 V and 712 mV about 900 MHz), so idle may not follow the curve. The 1,140 MHz point looks hardcoded in the LACT curve editor: setting it lower is refused, setting it higher is accepted but the card still idles at 1,140 MHz. Source: @vcore2191, 2026-10-07
- Below a certain clock (about 200 MHz) the core offset no longer changes the voltage. Source: @robbbbbb7973, 2026-10-21
Ideas not yet tested
- Theory A p-state that undervolts the HBM. @matstatman's VID-to-clock map: floor 210 MHz at VIDs up to 568.75 mV; 581.25 mV for 300 MHz, 650 mV for 885, 756 mV for 1,230, 850 mV for 1,395, saturating at 1,470 MHz from 918.75 mV. The memory voltage register might be writable, but he will not risk it for an estimated 2 W. Source: @matstatman, 2026-10-21 @vcore2191 expects more: power scales with voltage squared; HBM1 on Vega ran at 0.8 V instead of 1.2 V at low clocks, and a study of HBM1 showed power following supply voltage (arXiv 2101.00969), so if HBM2e behaves alike roughly half the HBM power could go. He believes the stacks run at 1.1 V with an 810 MHz minimum. Source: @vcore2191, 2026-10-21
- Theory Drop the PCIe link speed at idle (ASPM), as an RTX 5090 does when it falls to PCIe 1.0 at idle. Source: @robbbbbb7973, 2026-10-21
Source: @markshowa, 2026-10-21 Full ASPM may need PCIe Gen3, which the 170HX does not have. Source: @matstatman, 2026-10-21 Uselspci, notnvidia-smi, to read the real link state;nvidia-smiestimates it from bandwidth. Source: @djpandaman, 2026-10-21 - Theory sasha0552/nvidia-pstated (GPL-3.0) is a daemon that switches each GPU between a low and a high performance state to cut idle draw (defaults: low state 8, high state 16, 80 C temperature threshold, 0 % utilization threshold, 100 ms poll, 30 iterations before switching). It must run on the host where the driver lives, not in a container, and needs
libnvidia-api.so.1andlibnvidia-ml.so.1. It can also switch external fans through a script. Nobody has reported it working on a 170HX. Source: repo github.com/sasha0552/nvidia-pstated by sasha0552 on GitHub, posted by @d3m3n7r, 2026-10-13 (GPL-3.0 license)
Other approaches
- Keep the cards busy: @analyticeth runs a proof-of-work miner whenever the cards are not serving, so they never sit idle. Source: @analyticeth, 2026-10-07
- Drive the fans from the idle state: if the fan curve follows the lower idle power, the box gets quieter. Source: @djpandaman, 2026-10-09
The p-states thread
The Discord thread "Add p-states from A100 (pcie) to reduce idle draw" is where this work happens: thread. Its opening request is older than the imported history.