Skip to content

GPU Auto Optimizer v0.4.7

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Oct 22:08
· 78 commits to main since this release
e20591c

This is a pre-release for testing. The app does not offer it as an update. It follows a day of card tests in which the numbers would not repeat, and the finding of why: another program was using the graphics card the whole time.

New

  • A run looks at what else uses the card first, and asks. A run measures the card under full load, and every other program on the card takes from what it measures. An editor that only stood open, using 2 % of the card while idle, cost 8 % of the score on the reference card for a whole day; a video playing in a browser made readings jump by 3 to 8 %. Before a run the app now names every program that uses the card and asks: Check again, Go on anyway or Cancel. It closes nothing for you. What it found is written to the run's log, and after an optimize run it looks once more: if a program started or stopped under the run, the result says that its comparison with stock is not to be trusted.
  • The memory search has two passes, and remembers where a card's memory gave out. It goes up until a step fails or has clearly lost bandwidth, then measures again from 200 MHz below the highest step that passed and keeps the lowest offset within 1 % of the best. A single reading that is off no longer ends the search. The offset where the memory gave out is remembered for that card and driver, so a later run stays below it without going there again.
  • The run screen says which step the run is at, with a bar and the time left for a step that lasts. The countdown stands at the right edge and the bar fills evenly.
  • A demo mode for looking at the window: GpuAutoOptimizer.exe --demo plays a run in about a minute, with made-up numbers, without a graphics card being touched and without administrator rights. --demo=run skips the question about other programs.
  • gao --busy shows the programs a run would find on the card, and changes nothing.

Fixed

  • The memory offset differed wildly from run to run on a card whose bandwidth rises until its memory fails: +650, +1600, +550 and +100 MHz on one day on the reference card. Where the search ended was chance, and the chance came from the other program on the card. The two changes above are the answer: the app looks for such programs, and the search no longer lets one reading decide.
  • A bandwidth measurement that lost the device said bandwidth measurement failed: and nothing after it. It now says what happened.

Changed on the command line

gao --optimize, --undervolt and --retest do not start while other programs use the card: they name them and stop, with nothing changed. Add --busy-ok as the last argument to go on as it is.

What was checked on a card, and what was not

On the reference RTX 4070, driver 617.42:

  • Best of my GPU with the new memory search, on a quiet card, with the memory's edge already known from an earlier run: the search stopped 200 MHz below that edge, measured again and kept +2100, applied +1450 MHz; no driver reset; 5918 it/s against 5741 at stock (+3.1 %), in sixteen and a half minutes.
  • The check for other programs: next to an open editor, gao --retest named it, did not start and changed nothing.
  • Not run on a card: going on with --busy-ok, and the three answers in the window on a real run (seen in the demo mode only). A first memory search on a card whose edge is not known yet. All in one, Undervolt and the tune test with this version.

Before a run

  1. Close MSI Afterburner completely, also its icon in the notification area, and RivaTuner if you have it.
  2. NVIDIA app, System, Performance: switch Automatic Tuning off.
  3. Keep the NVIDIA overlay (Alt+Z) closed during the run.
  4. Close games, and also what does not look heavy: code editors, browsers, videos, chat programs. The app tells you which ones it sees.

If your card runs hot

Use Undervolt. Best of my GPU will most likely end with "the result is slower than stock" and leave the card as it was: that is the app being honest, not a failure. Please send C:\ProgramData\GpuAutoOptimizer\run.log and a picture of the last screen, whatever happens.

Known

  • The first memory search on a card goes up until the memory gives out. That can end in a wrong result from the test load, or in a driver reset: the screen goes black for a moment and the search carries on lower. It happens once per card and driver; the offset is remembered.
  • A card that does have a bandwidth peak keeps an offset up to 200 MHz below it.
  • The app can only see other programs before and after a run, not during it. A program that is busy only now and then can be missed. An application that draws through an embedded browser is named as that browser (msedgewebview2), not by its own name.
  • On some cards the memory-bandwidth measurement does not settle inside a run; the memory is then left at stock. Not solved in this version.
  • A profile's temperature limit is fixed. For a card that is above it at stock the speed profiles have nothing to offer yet.
  • The executables are not signed. Windows SmartScreen may warn at the first start, and a detection by an antivirus program cannot be ruled out; if you see one, please open an issue.
  • Tested on one PC: an RTX 4070 with driver 617.42.