Overclocking vBios/Unlocking Kepler
*Cliquez ICI pour la version française*
INTRODUCTION
To resume, this procedure will simply kill GPU Boost 2.0 ill effects on overclocking. In detail, this procedure will suppress :
- TDP related throttling;
- Voltage/Power related throttling;
- Temperature related throttling;
and will allow you to :
- overclock to a fixed frequency using a fixed voltage;
- either overclock from within the vBios, or overclock much more effectively with softwares;
- retain maximum performance no matter the load.
This procedure will still allow for the card to throttle when idling to P5 and P8 states - typical behavior.
This procedure will not :
- allow for more voltage than what you can get through overvolting with a good software;
- allow for higher clocks than the max boost clock programmed in the vBios.
Why do it this way?
- best performance; absolutely no throttling whatsoever
- (vBios Overclocked) no software required, no software related bugs or updates; no need to reinstall softwares or set OC again when reinstalling OS or switching card to another PC
- (vBios unlocked) software OC will be made easier, and will benefit from a higher TDP overhead.
PREPARATION
- Knowledge of your card and experience OCing it. You don't want to start an OC process directly through Bios flashing. You want to have a pretty precise idea of what clock you can OC to, and what voltage it requires to run stable, at the very least.
- Rufus : create DOS bootable thumbdrive
Download
How-to
- GPU-Z : extract your original vBios/monitor results of modified vBios
Download
How to extract original vBios :
1- Install the program (I recommend a local install); run as admin.
2- Use the clickable green arrow alongside "Bios Version" entry in the main tab; choose "save to file" option; give the rom file a name that distinguishes it as the original.
3- Make a couple of backups of the file (ideally one should be external).
4- Copy the file to root of the bootable thumbdrive, in case you ever need to go back to stock during the process.
- nvflash for DOS : boot in DOS to flash the vBios
Download
How-to :
1- Extract nvflash files to the root of the DOS bootable thumbdrive.
2- Copy your modded vBios to root.
3- Boot from thumbdrive; nvflash will start and ask for keyboard; press enter to get the C: prompt to appear immediately, or just wait a couple more seconds until it appears.
4- Type "nvflash -6 romname.rom" without the quotes, and where "romname" is how you named your modded vBios .rom file.
5- Type "y" to accept flash, or any other key to cancel.
6- Reboot when "Update Successful" is displayed.
- Kepler Bios Tweaker - mod the vBios
Download
How-to : this is what this guide is all about!
Just remember : MAX 8 caracters when you name a .rom file after saving them with KBT, more than that nvflash will probably give an I/O error. Make sure your file's name is simple and easy to remember.
Also, one last very important thing : don't forget to disable your software OC before flashing your first modified vBios - particularly if you intend to OC through vBios, and even more so if the software is set to automatically run with Windows.
NOTE ABOUT "PerfCap Reasons"
Since version 320.18 (I think), Nvidia driver has the ability to report back real time data about the reason why the card is throttled. Those reasons appear in GPU-Z "Sensors" tab, under the entry "PerfCap Reason". Nvidia did not provide much information about these, and how they can be useful for the end user; they didn't even provide a table listing and explaining the codes. My understanding is that it is still a beta feature at this junction . Yet, it provides sufficient data IF you can keep an eye on GPU-Z long enough while under load, as the Sensors tab displays both the numeric code and the reason of each "PerfCap". Sadly, when you log to file, only the code appears, not the reason, and as Nvidia didn't provide that table for us to refer to, only way to know what a specific code means is to observe GPU-Z in real time.
I've managed to remember the most redundant codes (at least in my case), all of which I'll provide here to the best of my knowledge.
Code........Reason
0.............*blank* (no PerfCap, full performance)
1................Pwr
2..............Therm
4............... Vrel (logical guess is that it stands for "Voltage reliability")
5............Pwr, Vrel (voltage reliability because of high TDP)
16..............Util. (appears when idling, or coming out of load, or running a very moderate load)
Important thing to understand is that, although none of these codes are to be considered as errors or fault codes (they really only have an informational purpose, as all of them can happen within normal operation), it changes nothing to the fact that IDEALLY one should NEVER see any other codes than 16 or 0... and 16 should NEVER appear during load, unless there was a sizeable relapse in load (like in-game loading screens or something). So even if you can only log monitor your card, you can easily see if your vBios mod worked by running a benchmark or playing a game, without having to understand any other code than 0 or 16 : if the log file presents a PerfCap "0" all along the time the card was under load, then you're golden!
Simply put, a steady "PerfCap 0" under load is the consecration of a successful vBios unlock/OC.
KEPLER'S BIOS TWEAKER
The program has an intuitive interface, so it is not complicated to navigate around. It looks like a thousand small footprint monitoring utilities like GPU-Z. Still, having the right settings is yet another thing entirely.
For illustrational purpose, the screenshots of KBT's interface found here will feature two instances of the program running, one on the left displaying the original bios, one on the right displaying the modded bios. I also used some color to insist on important things and settings, to make every step of the process as clear as possible.
The card used for this guide is an Evga GTX 780 SuperClocked - reference cooler. Yours may present slight differences in the way settings are arranged.
To get started, run KBT and use the Load Bios button at the bottom to fetch and open your original bios extracted with GPU-Z.
Then follow all the steps.
PROCEDURE
Lock The Clocks
First part of the process is to lock some clocks to reflect what you want your base clocks to be. Here is also the main difference between unlocking the vBios for software OCing purposes, and overclocking within the vBios to completely avoid OCing softwares. Screenshots are examples of bios overclocking settings; if needed, I'll explain along the way what to do in order to unlock and set out for software OC instead, using italics to set it apart.
Common Table
What you'll want to do here is to set your overclocked frequency as the default clock for all three settings, TDP Base Clock, 3D Clock, and Boost Clock. And you'll also want that clock to be your default Entry #0.
In order to do that, you will first have to change the TDP Base Clock to Entry #0 (it will gray out Boost Clock), and then set its frequency to your target OC. Then just use the "Save Bios As" button to save your work under a new filename.
When it will be done saving, you'll see that both 3D Clock and Boost Clock are now grayed out, that all three clocks are now set to your target clock, and that all three clocks will be displayed as Entry #0. You may now go on with the rest of the process without saving again until we're done.
UNLOCK : you'll have to do the same thing, but obviously NOT using your OC clock. Just set TDP Base Clock to Entry #0 and save; the default boost clock of your card will now be it's base clock. Do mind that this base clock will be the frequency upon which you'll add core offset in software.
Then comes memory frequency, which you'll set accordingly to your target memory OC.
UNLOCK : you may very well choose to pre OC memory frequency here, or to leave it as is and OC it in software as usual.
Then comes the fan profile, and setting it or not depends on your card. If you have the reference cooler, I suggest you set 100% max range. Don't worry, unless your temps are out of control, you will never run 100% RPM setting vBios this way, but it does make the ref cooler scale a bit more tightly with temps.
Anybody with a manufacturer's cooler or better shouldn't have to worry much about temps and may leave the fan settings as is for now.
UNLOCK : no need to do anything neither of course, you'll have the software to set custom profiles tailored for your card, if needed.
Boost States
Here you'll just have to enter the same clock used for your base clock in the fields indicated in the screenshot. Once done, if you go back to Common Table, you will see that the grayed out "Boost Limit" indicator is now reflecting the clock you locked in Boost States instead of the card's highest programmed clock.
Clock States
While the tab "Clock States" doesn't need to be modified in any way, I wanted to point out that you can see your modified memory frequency in this tab - "DDR" value in both P00 and P02 profiles should reflect the new frequency you entered in the Common Table, as underlined in the screenshot.
***
First part of the process is over with. Note that it also has an hidden effect, besides locking the clock : it takes temps out of the equation. There is no setting regarding temps in the vBios, except for fan profile... but we did set our OC clock as the base clock, and apparently Kepler doesn't throttle it's base clock for thermal reasons, even if temps do go higher than 90*C.
With this hidden effect in mind, I advise to monitor your temps on a regular basis until you're sure everything is under control even after long hours of your most demanding games.
UNLOCK: as the base clock you just locked is not your OC clock, it doesn't work the same way for you : Kepler does throttle any "boost" clock if temps are too high. In the case of a software OC, it's the TDP setting in the software that will allow you to overcome thermal throttling. The changes we'll bring in the next part to the power table will ensure you have more headroom than needed regarding TDP.
Reclaim The Power
TDP always makes a victim of our cards, even though we set the software OC limit to the maximum overhead percentage. This step is crucial for stopping GPU Boost 2.0 to throttle your card. And although I won't be able to tell you what exactly the next settings really consist of, I can sure as hell tell you that my way is the "bare minimum" settings to get there - I've tried just about all possible combinations of values and overheads to make sure. All what follows is absolutely necessary for the procedure to work.
Power Table
... then scrolling down to...
In the Power Table, we find a total of six entries that are not labeled nor explained in any way. Each entry has a Min, Def, and Max setting, adjoined with a percentage, and the value in mW. The percentage is always related to the specific Def value for each entry. We guess that the values in mW are related to various power states for the GPU, but we need a bit of a hint to understand what's in front of us.
And for me, the hint is that the sixth entry looks familiar, as the Def value is the rated TDP of my card, while the Max value goes a little higher - and if we look at its percentage, it is the exact same 106% overhead I was able to set when rising TDP limit in Precision X. It's the overhead pretty much all GTX 780 have, as far as I know. So we could label that entry as "Performance TDP". And that entry is very important.
Now, your card Power Table entries may not be ordered the same way as mine - meaning, the last one may not be the "Performance TDP" entry. Your overhead in software OC may not be the same neither - hence why it's important to have experience with software OC, so that you already know things such as this, or what's your max voltage, or what voltage the card runs by default. In this case, if your vBios Power Table is different from mine, then knowing your TDP limit in software you'll have to identify your own Performance TDP entry - the one which Max value will have a overhead % reflecting software OC TDP limit, while Def value will be the rated TDP of your card.
Once you know what is your "Performance TDP" entry, first thing you have to do is to calculate the "theoretical TDP" of your card - meaning, the max power it could draw before overloading its power sources. Those power sources are : 75W for the PCI-e slot; 75W for any 6 pins PCI-e connector; 150W for any 8 pins PCI-e connectors. As an example, most 780 like mine are plugged with one 6 pins + one 8 pins, so the total amount of available power would be 75W (PCI-e slot) + 75W (6 pins) + 150W (8 pins) = 300W = 300 000 mW.
Second thing you have to do is to set the result of this simple calculation for both Def and Max values of all entries EXCEPT your "Performance TDP" entry. You don't have to modifiy any Min value.
As for the "Performance TDP" entry you'll want to set Def and Max values with a good overhead over your calculated available power. I used 350 000 mW, which is about 17% overhead. More than enough for TDP to keep below 90% under the heaviest load. As long as it doesn't reach 100% you won't be throttled, so any overhead allowing that will do the job.
UNLOCK : same exact procedure, except for the "Performance TDP" entry Max value. For that Max value, you'll want to have an "additionnal" overhead on the already boosted Def value, and you'll want that overhead % to be the one you would like to have as your TDP limit in software. Let me make this clearer with an example. Say I wanted 115% overhead in software, instead of the default 106%. To get that, I would still set 300 000 mW as my Def and Max values for the first five entries, just like I did for overclocking. Then I would still set 350 000 mW as the Def value for the "Performance TDP" entry, just like I did for overclocking. BUT then, in place of the same 350 000 mW I also used as Max value for overclocking, I would set 402 000 mW instead - only for the Max value, and only for the "Performance TDP" entry. Next time I would open the OC software after flashing that modded bios, it would allow me to rise TDP limit to 115%, and doing so my temp limit would scale accordingly from 80*C to 95*C, as it always does. And that's how you'll completely eliminate both TDP and temps throttling in software OC, instead of just pushing the boundary a bit.
***
Don't worry, your card won't start to draw 350W off the wall or anything because of these settings. It will behave like it always did. These settings are not changing anything to how the card uses power, as far as I experimented using my UPS. I suspect they act merely as a referential tab for GPU Boost to scale with TDP. We just changed that reference.
Let's move to the last part.
Escape From The Volt
What you need to understand here is this : with this whole procedure GPU Boost is not disabled, it is still trying hard to run the show, We just made it so that it didn't have much room to run any other show than the one we want it to run. Now comes the time to finish the job, to definitively cut out that tiny bit of stage space GPU Boost still has left to improvise its usual throttling crap - voltage.
Voltage Table
Coming first are three unlabeled, mysterious entries. I don't know exactly what they are, but my best guess, looking at the original vBios voltage range for these entries, is that they respectively represent : total available boost voltage range for P00; max boost voltage range for P00 (when TDP and temps allow it); default boost voltage range for P00 (on a long term basis). If you don't already know, P00 is the full performance power state of any Kepler card. Anyhow, I could be wrong with my guess for these entries, but I am positive that we need to change both Min and Max values for all three of them to our target OC voltage. In my case I knew I needed the max voltage my card can run to be stable running my OC, so I set it that way, but you don't need to set max voltage, just the voltage you found stable in software OC. Do mind that all vBios entries here use mV.
UNLOCK : you will actually need to set the max voltage your card can run for these three entries, NOT your target OC voltage : you will then use the software to overvolt as needed. If you're not sure what your max voltage is, use your OC software and max out the overvoltage and the TDP if they aren't already, then open GPU-Z, click on the "?" beside the Bus Interface entry in the main tab, click on "Start Render Test" in the window that pops, and let the test run while you switch GPU-Z to "Sensors" tab. Click the VDDC dropdown arrow, choose "Show Highest Reading", and the value you'll see should be your max voltage.
After that, the fourth entry is labeled P00, and of course you will also need to change it. Default value for P00 here is set very low - it's a minimal range, not the effective available range. If my theory about the three unlabeled entries holds true, then I would explain this one as being a minimal operational voltage range - as in, the card can shift to P00 state even running the lowest voltage and lowest according clocks, if a software calls for it without applying much load to it yet. Anyway, what we have to do here is to level that minimal range to the fixed voltage we need to run for our target OC. It won't work if we don't : GPU Boost is a bitch, and we MUST cut out any leverage it has on voltages, otherwise it applies this leverage to any situation. As soon as vBios is allowing for a range of performance instead of a fixed performance, GPU Boost can and will throttle the card, no matter every other setting we locked so far.
UNLOCK : as your base clock in vBios is not your OC clock, you have to set P00 voltage accordingly to your chosen base clock - usually the stock voltage does the trick.
After P00 of course there are three other entries for P02, P05, and P08, which values do not need any modification.
And then there will be a fixed amount of entries, labeled from Clock #01 to Clock #XX - depending on how many clocks have been programmed into the original vBios. Here the GTX 780 has 52 clocks, ranging from 324MHz to 1280.5MHz. Each clock have their operational voltage range, that we can change using the sliders. We do not need to care about all clocks for now, only our target overclock. How do you know which clock it is?
Boost Table
That tab cannot be modified, but it gives you crucial information : it tells you what frequency each clock # stands for. In the screenshot, I underlined Clock #48, which was my target OC. Just find yours in the Boost Table, and mind its clock #.
Then back again to the Voltage Table, and scroll down to your target clock #.
IF the voltage range set by default for your target clock is beyond the fixed voltage you intend to run it (the one you have set to P00, or the one you'll set through software), then obviously GPU Boost will find a way to throttle your clock at least a bit for voltage reliability reasons. Also, IF the voltage range of any lesser clock than your target clock overlaps the voltage you intend to run your OC, then GPU Boost will just as surely use it instead of your target clock, or throttle down to it when under load.
So you must set your target clock voltage first, and then completely "isolate" it from lesser clocks voltage. To achieve this, you will surely have to "compress" the voltages for the lesser clocks, as it's almost guaranteed a bunch of them will be default set to a higher or similar voltage your OC is running.
You may use fixed voltages instead of voltage ranges for your target clock voltage and for compressing, it doesn't matter. Simplest thing is to use the same voltage for all lesser clocks. For example, if Clock #44 is my target, if I need 1187.5 mV to run it, and if Clocks #39-43 overlap this voltage, then basically all I would have to do is set Clock #44 to a fixed 1187.5 mV, set Clocks 39-43 to a fixed 1175 mV, and leave the rest as is.
UNLOCK : also check that your chosen base clock has a voltage range that suits the voltage you set for P00. No need to isolate it this time, just make sure they match. If you used your default Boost Clock as I instructed, and the stock voltage as I instructed, you shouldn't have to change anything. If you decided to use another base clock/voltage, you might have to.
***
You're done!
Now comes the time to save, flash, test, and monitor. If you're unstable, rise both P00 and your clock's voltage a bit. Don't forget your former software OC was probably throttling most of the time, so the voltage you thought was stable may not be stable running the OC steady on a long term basis.
Liens sociaux