Maintaining Max Boost MHz on Kepler GPU using NVIDIA Inspector

Message boards : Number crunching : Maintaining Max Boost MHz on Kepler GPU using NVIDIA Inspector
Message board moderation

To post messages, you must log in.

Previous · 1 · 2

AuthorMessage
Jacob Klein

Send message
Joined: 11 Oct 08
Posts: 1127
Credit: 1,901,927,545
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 35561 - Posted: 8 Mar 2014, 11:58:28 UTC
Last modified: 8 Mar 2014, 12:27:32 UTC

Now this is just silly. I'm running the 332.21 drivers, as a test, and... well, I woke up, and sure enough, it was clocked at 1045 instead of the expected 1241, on an e1s55_1-GIANNI_ntl9b task.

GPU-Z said Util, and a task was running, at around 75% GPU Usage. I suspended everything except that single GPUGrid task, and usage went up to about 83%. But the clock remained low, for reason Util. Even last night, in my game (iRacing), if the GPU Usage got low enough, the driver would unapply the Boost.

I conclude that 332.21 is actually affected. It also seems that the "reason" for this problem is that the GPU Usage is lower than the threshold that GPU Boost thinks is necessary to apply Boost. It may be designed that way intentionally, and may not be a bug, as NVIDIA is all about conserving power, and Boost is unrelated to the "Prefer maximum performance" setting.

This sucks. I know GPU Usage depends on the task type running on the GPU, but... if it's sufficiently low, Boost will not be applied by the driver, unless you force it using the workaround in the first post.

If I run FurMark for a second or two, I can see Boost kick back in, and the clock goes to max boost. But then, if I turn it off and wait several hours, eventually it will unboost.

So, I think I'm not going to reinstall the latest drivers, and make "Forcing Max Boost" a part of my startup routine, likely via a .bat file. If anyone has any other ideas or suggestions, please let me know.

Thanks,
Jacob
ID: 35561 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Jacob Klein

Send message
Joined: 11 Oct 08
Posts: 1127
Credit: 1,901,927,545
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 35562 - Posted: 8 Mar 2014, 14:08:36 UTC - in response to Message 35561.  

So, previously I was using Precision-X to set my Power Target (from 100% to 140%), and I'd have to set it again, every time Windows was restarted.

But, since I now want to set nVidiaInspector settings at startup, via a .bat file, I figured now would be a great time for me to set the Power Target there, too.

So, I have 2 .bat files, custom tailored for my GPU and settings. I'm setting GPU Index 2, because I have 3 GPUs, and I want to change settings for my eVGA GTX 660 Ti 3GB FTW, which shows as "(2)" in the dropdown in the nVidiaInspector UI. This GPU supports a Power Target of up to 140%. The commands I'm using in the main .bat file are: Set the P2 GPU Clock to 1242, Force any 3D application to use the P2 state, and set the Power Target to 140%.

Force Max Boost.bat
"c:\Program Files\nVidia Inspector\nvidiaInspector.exe" -setGpuClock:2,2,1242 -forcepstate:2,2 -setPowerTarget:2,140

Reset To Default.bat
"c:\Program Files\nVidia Inspector\nvidiaInspector.exe" -restoreAllPStates:2 -forcepstate:2,16

... and so, I created a shortcut to that "Force Max Boost.bat" file, in the following folder:
C:\Users\jacob_000\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

It appears to be working well for me, but I will continue to test.

Thanks,
Jacob
ID: 35562 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Jacob Klein

Send message
Joined: 11 Oct 08
Posts: 1127
Credit: 1,901,927,545
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 35585 - Posted: 10 Mar 2014, 16:21:20 UTC

I confirmed that the behavior where it can downclock from Max Boost and stay downclocked, still exists in 335.23. I completed a GPUGrid task, there was a brief 15 second pause between tasks (so it downclocked to 3D Base Mhz), then a new task started. Even at solid 82-84% GPU Usage with the new task, the GPU is not boosting back up at all. It's probably not considered a bug by NVIDIA, since in their eyes, I guess there's not enough demand on the GPU to warrant boosting.

So... If you don't mind the increased Wattage usage, I recommend forcing Max Boost, per the post right above this.
ID: 35585 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Jim1348

Send message
Joined: 28 Jul 12
Posts: 819
Credit: 1,591,285,971
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 35587 - Posted: 10 Mar 2014, 17:09:30 UTC - in response to Message 35410.  

I did some research, and found that there is a way to force it. See here:
http://www.overclock.net/t/1267918/guide-nvidia-inspector-gtx670-680-disable-boost-fixed-clock-speed-undervolting
This is a pretty nice guide on force-overclocking.

Hope this helps someone!
Jacob Klein

Thanks. I don't see the under-clocking on my GTX 660s and 650 Ti, but I did notice that one of my GTX 660s was now running at only 1.162 volts instead of its usual 1.175 volts, and I could not figure out why. It is now on a different motherboard and OS than before, but you would not think that would affect the voltage. But the case is also different, and it runs a bit hotter now. As noted in that article, above 70C the voltage on the cards is reduced, and that is exactly what happened to me. I didn't see that on my other GTX 660, but that is because I had already flashed the BIOS in that one, and has set the voltage to a fixed value already.
ID: 35587 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Jacob Klein

Send message
Joined: 11 Oct 08
Posts: 1127
Credit: 1,901,927,545
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 36320 - Posted: 16 Apr 2014, 2:49:22 UTC
Last modified: 16 Apr 2014, 3:03:50 UTC

I wrote this tutorial for Forcing Max Boost, for my iRacing friends, but I'll post it here too, as it lays things out step by step.

Force Max Boost on a Kepler

I recently discovered that my Kepler GPU was not maintaining Max Boost, when iRacing, or when crunching a distributed computing work unit that had low GPU Usage. GPU-Z and Precision-X reported that it was being throttled down due to a utilization limit (Util), meaning it was trying to conserve power during a low-GPU-Usage scenario. However, I wanted to make sure that I was getting as much performance as possible from my GPU, even in these low-GPU-Usage scenarios. Fortunately, I have found a workaround!

Regarding "Max Boost", note that it is not the same as the "Boost" clock found in NVIDIA Inspector or Precision-X.
When a Kepler graphics card is marketed, it has:
- a listed "GPU clock" (which is the Base 3-d clock rate, essentially the minimum rate it'll run for any 3-d game/app)
- a listed "Boost clock" (which is the average expected 3-d boosted clock rate)
- an unlisted "Max Boost clock" (which is the maximum the GPU will upclock to, before being limited by voltage thresholds)

So, what the workaround does is: Instead of allowing the driver full control of upclocking and downclocking (where it downclocks when the GPU Usage is below some threshold) using Performance State P0 (which does not allow a specified clock rate), we instead FORCE it to use Performance State P2 (non-boosting 3D), along with a specified P2 clock rate equal to Max Boost, thus effectively forcing Max Boost!

This is only recommended if you want to ensure that you are getting absolute maximum performance all of the time. I'm not even sure if it has an effect on iRacing performance, but I would guess that it does. If you perform this workaround, a side affect will be that the GPU clock rate stays at maximum. This means that the idle power usage will increase a bit, but that is the tradeoff you will have to decide to make or not.

1) Verify that you have a Kepler GPU. You can do this by opening up NVIDIA Inspector, selecting your GPU from the dropdown at the bottom, and then looking near the top left for the "GPU" field. If it starts with GK, then it is a Kepler. Mine happens to be a GK104. If you don't have a Kepler, you should not proceed.
2) Determine your NVIDIA Inspector GPU Index. This is the value in parantheses within the NVIDIA Inspector dropdown at the bottom. We'll need this GPU Index value later.
3) Determine your Max Power Target. Open Precision-X, and determine the maximum value it will let you set your "Power Target" setting to. We'll call this Max Power Target, and we will use it later.
4) Monitor Precision-X. Set up Precision-X so that you can easily monitor the "GPU clock, MHz" value. This is the running clockrate of your GPU. It will normally vary, depending on things like GPU temperature (you setup that fan curve earlier, right?) and GPU usage.
5) Apply full load. Put full load (near-100% GPU Usage) on the GPU. I recommend opening GPU-Z, clicking the question mark "?" button at the middle right, then clicking "Start Render Test"
6) Determine your Max Boost. While under full load, monitor the "GPU clock, Mhz" value for a few seconds. Assuming you are under the 70ÂșC temperature thresholds, it should be at its maximum value. This is your "Max Boost" value. Make a note of that value. GPU-Z should be reporting "PerfCap Reason" value of "VRel, VOp", meaning that you are only limited by voltages. You can now close the program that put full load on the GPU, but keep running Precision-X to monitor the clock rate.
7) Instruct NVIDIA Inspector to execute the workaround. We want to: force a specific clock rate for the P2 power state, force the P2 power state to always be used, and force a power target level.
So, open a Command Prompt, and type the following command, substituting a couple values:

"c:\Program Files\nVidia Inspector\nvidiaInspector.exe" -setGPUClock:*,2,XXXX -forcePState:*,2 -setPowerTarget:*,QQQ
... substituting your "GPU Index" for each *
... substituting your ["Max Boost" + 1] for the XXXX values -- I had to add 1 to make it work correctly for me
... substituting your "Max Power Target" for the QQQ values
... Note: If you are uncomfortable with setting a higher Power Target, you can set it to 100. But I've had no problems setting it to Max Power Target.

So, for instance, since my GPU Index is 2, my Max Boost is 1241, and my Max Power Target is 140, my command line ends up becoming:
"c:\Program Files\nVidia Inspector\nvidiaInspector.exe" -setGPUClock:2,2,1242 -forcePState:2,2 -setPowerTarget:2,140

Note: If you want to see a list of all the supported command line parameters for NVIDIA Inspector, you can type:
"c:\Program Files\nVidia Inspector\nvidiaInspector.exe" /?

This command will need to be applied every time your restart your computer. So, if you don't want to forget about it, you could:
- Open Notepad, paste the command, and save it as a .bat file located somewhere you can remember
- In your Windows Startup folder, place a shortcut to the .bat file
My Windows startup folder happens to be:
C:\Users\jacob_000\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
- Restart Windows, and make sure the program runs after you login. If User Account Control is on, you'll get a prompt that you must click Yes to, every time you restart. You can then use Precision-X, to verify that it correctly set your clock rate and Power Target values.

To undo the workaround, you can:
- Restart the PC, and don't run the workaround (My testing indicates that this workaround is completely undone by a restart.)
- Execute the command that reverts the changes (It will restore all PStates, use "16" to not force any given PState, and set the power target level back to 100%):
"c:\Program Files\nVidia Inspector\nvidiaInspector.exe" -restoreAllPStates:* -forcePState:*,16 -setPowerTarget:*,100
... substituting your "GPU Index" for each *
- You could even create a .bat file, for that command, to easily be able to undo the workaround.

Note: If you mess with any other NVIDIA Inspector overclocking settings or command line settings, it is possible that a driver reinstallation may be necessary.

For more information on this workaround, here is the link where I originally found it (Note: They also go into overclocking, which I do not recommend)
http://www.overclock.net/t/1267918/guide-nvidia-inspector-gtx670-680-disable-boost-fixed-clock-speed-undervolting
ID: 36320 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Profile skgiven
Volunteer moderator
Volunteer tester
Avatar

Send message
Joined: 23 Apr 09
Posts: 3968
Credit: 1,995,359,260
RAC: 0
Level
His
Scientific publications
watwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwatwat
Message 36377 - Posted: 18 Apr 2014, 8:42:49 UTC - in response to Message 36320.  

Three days ago I experienced a worse situation with the last full driver (335.23 WHQL); GPU0 (GTX770) not only stopped boosting, it dropped to and stayed at a lower power level ~549MHz. Even after completing different tasks it stayed there. Suspending and resuming work didn't resolve the issue. The power usage was low (~27% IIRC) but the GPU usage was high (>80%).

I'm now trying 337.50 (without the work around) and so far so good - GPU0 is boosting to 1267MHz. However these issues were fairly rare on my setup, across several driver releases. So it could take a few weeks before the issue naturally presents itself again. I have tried snoozing the GPU and resuming again, but that didn't trigger an issue. The type of task running might be of some concern. The Power usage difference between some present task types is around 10%. Stems from a 14% GPU usage variation.
FAQ's

HOW TO:
- Opt out of Beta Tests
- Ask for Help
ID: 36377 · Rating: 0 · rate: Rate + / Rate - Report as offensive     Reply Quote
Previous · 1 · 2

Message boards : Number crunching : Maintaining Max Boost MHz on Kepler GPU using NVIDIA Inspector

©2026 Universitat Pompeu Fabra