Skip to content

Commit 44fb60e

Browse files
authored
Merge pull request #33 from Rovey/docs-check-94
docs: hardware check 94, All in one to the end with the released 0.4.6
2 parents 2b2ef38 + d39f010 commit 44fb60e

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

‎docs/hardware-checks.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ root; adjust the path for a Debug build.
121121
| 91 | A whole run on a second card: the tester's RTX 3080 Ti Founders Edition | v0.4.5, **Best of my GPU** from the window, MSI Afterburner closed; the result screen and `run.log` sent by the tester | yes | the run gets through, the memory search never goes past where the bandwidth stops rising, and `run.log` says what happened | Pass for the run, with three findings (2026-10-11, from `run.log` and a picture of the result). Stock stopped at 86 C after 159 s with the driver's fans at 66 % and the run went on. Power: 65 % (73 C; 70 % read 80 C). The journal held the earlier freeze: `a previous run froze the machine at mem +2200; staying below it from now on`. Memory: `mem +0: bandwidth 795.5 GB/s`, then at +50 `bandwidth did not settle within 20 runs: 20 readings from 763.9 to 821.2 GB/s (spread 7.5 %)`, so the scan ended with +0 and nothing was thrown away for a clock change. Core: stable to +285, `DEVICE LOST` at +300, the driver came back (reconnect, 20 s rest, health `STABLE`), confirmed +225, applied +150, soak `STABLE`. Result: power 65 %, core +150, memory +0; 4749 it/s where stock scored 4937 (-3.8 %), 73 C instead of 86, 226 W instead of 287, fans at 80 % instead of 66 %. **Finding 1:** inside a run the bandwidth readings of this card scatter by 7.5 % within about a second, where the same card read 815.9 to 817.6 GB/s after thirty seconds of load (check 90). The measurement comes three seconds after the load starts; the confirm probe below drew 302 W in its first second at a limit of 227 W, so the power limiter had not caught up yet. Not confirmed. **Finding 2:** `confirm core +225 / mem +0: TOO HOT ... peak=76 C power=302 W` ended within a second, because the health probe after the reset runs at stock power and had heated the card to 76 C; a confirm probe that is too hot counts as holding, so +225 was confirmed by a probe that tested nothing. The soak at +150 did run its five minutes. Changed since: a confirm probe that is too hot before the clock was loaded for ten seconds does not confirm, and the card rests before the next, lower try (see the decision "A confirm probe that is too hot at once confirms nothing"). On a card: not run yet; it needs a driver reset on a card that runs hot. **Finding 3:** the result is slower and louder than stock, as the open design point in `docs/planned.md` expects for a card that is above the profile's 75 C at stock. |
122122
| 92 | The undervolt profile starts with the measurement at stock every run uses, and a hot card is not refused | Elevated, the tray app exited, a copy of `gao.json` kept. (a) `gao --undervolt` to the end; then `gao --status`. (b) The same with a test build whose stock limit is lowered to a temperature the reference card passes under load (63 C; it reaches 67). Put the copy of `gao.json` back. (c) Only on a card that is above the profile's limit at stock with the fans at 100 % (the tester's RTX 3080 Ti: 82 to 83 C): the **Undervolt** profile from the window, to the end, and its `run.log` | yes | (a) `the card at stock, five minutes`, a `stock: STABLE ...` line with the driver's fan speed, then `baseline: the measurement at stock`, and no second five minutes at stock: the first candidate follows at once; no `candidates are stopped at` line; `RESULT:`; `before:` shows 300 s and the fan speed the driver chose. (b) `stock: TOO HOT ... peak=64 C`, the line that the measurement stopped there, the cool-down, then `baseline: the measurement at stock` and a search that runs to `RESULT:` with `before:` showing the shortened time; no `candidates are stopped at` line, because 64 C is under the profile's 75. (c) no `not stable at stock`; `the card reached 86 C at stock: candidates are stopped at 85 C, not at the profile's 75 C`; candidates that end `STABLE` or `WRONG RESULT`, none `TOO HOT`; a result that is cooler and draws less than stock at the same clock | First run: **not as expected**, and that found a fault (2026-10-11, reference RTX 4070, driver 617.42, a test build of d1c99e9, started elevated by a script). The first halves held: (a) `stock: STABLE ... peak=65 C fan=70 %`, then `baseline: the measurement at stock` four seconds later and no second five minutes; (b) `stock: TOO HOT ... peak=64 C`, stopped after 34 s, the run went on, no `candidates are stopped at` line. But both runs then ended with `the card held no undervolt: the first step below its own voltage already failed`: their first candidates read `1070 mV (+15 MHz): SLOW ... clock=2323 MHz` and `1050 mV (+15 MHz): SLOW ... clock=2411 MHz`, on a card that ran 2791 MHz in the measurement just before. The search's load had not run yet when that candidate began (see the decision "With its reference handed over, the undervolt search warms its load up before the first candidate"). Second run, with the warm-up: **pass** for (a) and (b) (same day, a test build of 0733695). (a) `stock: STABLE score=5426 it/s clock=2788 MHz peak=66 C fan=70 %`, four seconds later `baseline: the measurement at stock`, `warming the load up: 5 s at stock`, `target: 2790 MHz, which the card reaches at 1090 mV by itself`, and the first candidate `1085 mV (+15 MHz): STABLE ... clock=2775 MHz`; 26 candidates, none `SLOW` or `TOO HOT`, the edge at 950 mV, `RESULT: 2790 MHz at 990 mV instead of 1090 mV`; `before:` 5426 it/s, 189 W, fan 70 % (300 s), `after:` 5325 it/s, 149 W, fan 53 % (300 s). (b) `stock: TOO HOT ... peak=64 C`, stopped after 74 s, the run went on, the same warm-up and a search to the same result (990 mV, edge 950 mV); `before:` shows 75 s; no `candidates are stopped at` line. The saved tune of before the test was put back and applied. (c) not run. |
123123
| 93 | A speed profile that would end slower than stock keeps nothing | Only on a card that is warmer at stock than the profile allows (the tester's RTX 3080 Ti; the reference card ends faster than stock with every speed profile): **Best of my GPU** from the window, to the end; the result screen, the dashboard and `run.log` | yes | the run goes through all its steps and its soak; then **Not applied** with `the result is slower than stock: N it/s against M (-X %)`, the power limit it had to go down to, and the pointer to Undervolt; `The card is back at stock.`; the dashboard shows stock and the saved tune of before the run, if there was one; `run.log` ends with `stopped: the result is slower than stock ... -- card restored to stock` | Not run yet. On the reference card: nothing to see, by design. |
124-
| 94 | All in one, with the undervolt step searching for the first time | Elevated, the tray app exited, a copy of `gao.json` kept: `gao --optimize all` to the end with a build that has the warm-up of the undervolt step; then `gao --status`; put the copy back | yes | five steps; in step 3 a `warming the load up` line, a first candidate that is not `SLOW`, and a descent; steps 4 and 5 run on the tune of steps 2 and 3; `RESULT:` | **Not as expected at step 4**, and that found a fault (2026-10-11, reference RTX 4070, driver 617.42, a test build of 0733695, unattended). Step 1: `stock: STABLE score=5325 it/s peak=65 C fan=70 % power=186 W`. Step 2: power 105 %, `mem: bandwidth peak +2300, confirmed +2300, applying +1600`, `core: highest stable +210, confirmed +210, applying +135`, soak `STABLE score=5568 it/s peak=70 C power=197 W`. Step 3, as wanted: `warming the load up: 5 s with the overclock`, `target: 2865 MHz, which the card reaches at 1050 mV with the overclock`, nine candidates `STABLE` from 1045 mV down, `WRONG RESULT` at 990 mV, confirmed at 1010 mV after two tries, and `applying 1050 mV (+135 MHz at that point)`: the margin left no raise above the overclock, so the curve was cut off, as in the runs before the warm-up; soak `STABLE score=5434 it/s peak=67 C power=176 W`. Step 4 did not begin: `the tune could not be applied for the fan tune: the undervolt was not applied: the point already runs more than the target -- card at stock`. The saved tune of before the test was put back and applied. Cause and fix: the decision "A flat top goes back on a card that is cooler than when it was found". **Not run again:** steps 4 and 5 with that fix have not been on a card. Also seen: the memory offset this run applied (+1600) is far from the +650 of the run that saved the tune in use that morning. |
124+
| 94 | All in one, with the undervolt step searching for the first time | Elevated, the tray app exited, a copy of `gao.json` kept: `gao --optimize all` to the end with a build that has the warm-up of the undervolt step; then `gao --status`; put the copy back | yes | five steps; in step 3 a `warming the load up` line, a first candidate that is not `SLOW`, and a descent; steps 4 and 5 run on the tune of steps 2 and 3; `RESULT:` | **Not as expected at step 4**, and that found a fault (2026-10-11, reference RTX 4070, driver 617.42, a test build of 0733695, unattended). Step 1: `stock: STABLE score=5325 it/s peak=65 C fan=70 % power=186 W`. Step 2: power 105 %, `mem: bandwidth peak +2300, confirmed +2300, applying +1600`, `core: highest stable +210, confirmed +210, applying +135`, soak `STABLE score=5568 it/s peak=70 C power=197 W`. Step 3, as wanted: `warming the load up: 5 s with the overclock`, `target: 2865 MHz, which the card reaches at 1050 mV with the overclock`, nine candidates `STABLE` from 1045 mV down, `WRONG RESULT` at 990 mV, confirmed at 1010 mV after two tries, and `applying 1050 mV (+135 MHz at that point)`: the margin left no raise above the overclock, so the curve was cut off, as in the runs before the warm-up; soak `STABLE score=5434 it/s peak=67 C power=176 W`. Step 4 did not begin: `the tune could not be applied for the fan tune: the undervolt was not applied: the point already runs more than the target -- card at stock`. The saved tune of before the test was put back and applied. Cause and fix: the decision "A flat top goes back on a card that is cooler than when it was found". Second run, with the `gao.exe` of the released v0.4.6: **pass, all five steps** (same day, started elevated by a script). Step 1: `stock: STABLE score=5309 it/s peak=66 C fan=70 % power=185 W`. Step 2: power 105 %, `mem: bandwidth peak +850, confirmed +850, applying +550`, `core: highest stable +210, confirmed +210, applying +135`, soak `STABLE score=5568 it/s`. Step 3: `target: 2850 MHz, which the card reaches at 1045 mV with the overclock`, `undervolt: lowest stable 975 mV, confirmed 985 mV, applying 1025 mV (+165 MHz at that point)`, soak `STABLE score=5363 it/s peak=66 C power=163 W`. Step 4: the tune went back on the card, `fan 60 %: 63 C`, `fan 55 %: 65 C`, `fan 52 %: 67 C`, `fan tune: 52 % holds 67 C`. Step 5: the final test ran its 300 s. `RESULT: power 105 %, core +135 MHz, mem +550 MHz, 2850 MHz at 1025 mV, fans 52 % at 67 C`; `stock: 5309 it/s, 185 W, fan 70 %, 66 C`, `now: 5353 it/s, 166 W, fan 52 %, 70 C`: `+0.8 % score and -10.3 % power against stock`; `undervolt: applied`. The saved tune of before the test was put back. **What this run did not show:** its undervolt had a raise of its own (+165 over an offset of +135), so the anchor was raised and not merely cut off, and the case of the first run (an anchor that reads a step above the target on a cooler card) did not come up. That fix has still only its tests. Also seen: the memory offset differs a lot from run to run on this card: +1600 in the first run (bandwidth peak +2300), +550 in the second (peak +850), +650 in the run that saved the tune in use that morning. |
125125

126126
## Notes
127127

0 commit comments

Comments
 (0)