Skip to content

Roch GPU 1.0.3

Choose a tag to compare

@RochStudio RochStudio released this 08 Sep 15:00
· 13 commits to main since this release

Over-current limits you can actually set, telemetry that measures current instead of dividing it out,
and longer travel on the sliders that had run out.

Getting it

Download RochGPU.exe below and run it. Nothing to install — no .NET runtime, no DLLs beside it.
It is unsigned, so SmartScreen will warn on first run ("More info" → "Run anyway").

SHA-256  47fc121a79009bbd2afd407ebe03964551f87a2a285bda3c647a756dda365c69

OCP current limits

The NVVDD and MSVDD over-current limits, in amps, are now levers in the XOC window — armed
individually like everything else there, and restored to stock when disarmed rather than left
standing, because an OCP limit survives a reboot and a card quietly running without its protection is
a state nobody chose.

The window each slider offers is read from the card, not derived. A 5070 Ti reports 250–350 A for
the core rail, and that is what the slider gives; where the driver declines to constrain a limit —
which it does for MSVDD, answering 1 A to 5001 A — the slider falls back to half the stock figure to
half again above it. Every card reports its own, which is the point.

--nvvdd-ocp and --msvdd-ocp do the same from the command line.

Raising one of these makes nothing faster. It moves the current at which the card stops itself out
of the way, and the reason that limit exists is the hardware behind it.

Telemetry

The hardware monitor is now the Telemetry window, and it carries measured rail current —
seven 12 V channels straight from the card's own power monitor: board total, PCIe slot, NVVDD input,
Misc0 input, and three the driver names only by number. Measured, not divided out of the board watts,
with min/max/average like every other row.

More travel where it ran out

  • Core and crossbar offsets to +750 MHz (from +495). These are the offsets a card reaches once
    the rails are raised and the boost is wound open, and the sliders were stopping before the card
    did.
  • Rail ceilings to 1200 mV (from 1170). Deliberately more than air cooling can use; the reason to
    offer it is water and LN2.
  • Clock range floor from the driver — 180 MHz on a 5070 Ti, where 210 used to be compiled in as a
    guess. Tested: the driver accepts 180 as a floor.

Every one of these is a slider end, not a measurement. Nothing up there is known to be stable.

Smaller things

  • Reset to Defaults replaces Reset and Revert. It writes the driver's defaults to the card and
    loads them into the sliders — which it always did, but the one-word label undersold it.
  • XOC is what the window is called now, matching the button that opens it, with one warning for
    the whole window instead of a note that predated half its levers.
  • The clock range forgets a lock the driver has cleared. NVML will not report a lock — GetClock
    answers NOT_SUPPORTED and the event reasons read zero whether one is set or not, both measured — so
    that row shows what was asked for. A display driver reset clears the lock, and is the only thing
    that makes NVML reopen its session, so the window now notices and stops claiming a range nothing
    holds.
  • A driver reset no longer strands the app. An NVML session does not survive one; a failure whose
    code says so now reopens it and retries.
  • Private call buffers carry 8 KB of slack. These structures are described by sizes worked out
    rather than published, and a size too small lets the driver write past the end — which corrupts the
    heap and kills the process later, somewhere unrelated.

Warning

Writing clocks and voltages to a GPU can crash the machine, corrupt work in progress, and in the
extreme damage hardware. The XOC levers can brown a card out rather than merely fail. Nothing here is
endorsed by NVIDIA or AMD. Read the warning in the README before using it.

Licence

GPL-3.0-or-later, the same licence as Roch Viewer.
The complete corresponding source for this binary is this repository at tag v1.0.3; build.ps1
rebuilds it with one command. Bundled third-party components keep their own licences — see
THIRD-PARTY-NOTICES.md.