Download Nvidia Inspector 1.9.6.6.
Why use a fixed clock speed
World of Tanks without vsync. Default GTX670 on left. Forced clock speed on right.
Performance modes
P8 = idle clock speeds and lowest power consumption
P2 = the default mode used when your PC boots or no drivers are installed.
P0 = Gaming/Load. This mode only accepts boost/offset values
Forcing specific modes
The command line is required to do this. Either run "cmd" and locate the directory containing nvidia inspector, or create a .bat file in its directory.
Force P8 (idle) nvidiaInspector.exe -forcepstate:0,8
Force P2 (custom) nvidiaInspector.exe -forcepstate:0,2
Return to Default nvidiaInspector.exe -forcepstate:0,16
Be sure to set all clock speeds back to default before running the last command above.
Setting a fixed overclock
First, find your maximum boost/memory offsets using the normal overclocking methods.
I'm going to apply a +135/+500 overclock which equals 1311mhz/3500mhz. Use your own values in place for the instructions below.
1. Force P2 mode using "nvidiaInspector.exe -forcepstate:0,2".
2. Open Nvidia Inspector and go to the P2 dropdown entry. It should look like this:
3. Click unlock Max and move the GPU clock to 1311mhz. You can try and move the Memory Clock but it simply bounces back. Hit Apply Clocks. Notice how the Current Clock on left is not the value you just set. If you do the math, it is exactly 135 below our target.
4. The P2 mode still relies on your P0 boost setting to determine max clock speed. So, open that drop down and set your values. Once you click Apply it will now look like this:
Using batch files for simple switching between power modes
Create the following batch files in your Nvidia Inspector directory.
overclock.bat
nvidiaInspector.exe -setBaseClockOffset:0,0,135 -setMemoryClockOffset:0,0,500 -setpowertarget:0,111 -setVoltageOffset:0,0,187500 -setGpuClock:0,2,1311 -setMemoryClock:0,2,3500 -forcepstate:0,2
force_idle.bat
nvidiaInspector.exe -forcepstate:0,8
default
nvidiaInspector.exe -setVoltageOffset:0,0,0 -setGpuClock:0,2,705 -setMemoryClock:0,2,3000 -forcepstate:0,16
The commands above are self explanatory. Simply adjust the offsets/values to suit. I use shortcuts to execute these batch files, making idle<->overclock an easy toggle. Even with forced idle clocks, blurays only use 20% gpu.
Overvolting
When your card exceeds 70c it starts to downclock AND downvolt. If you apply a maximum voltage offset of +187.5mhz, your card will no longer downvolt. It will still downclock, but a fixed voltage may solve stability issues if you are right on the edge.
Known issues
Using -resetAllPStates command does not work correctly.
Reverting to default P mode can sometimes, depending on what you did, lock your card at a specific clock speed. Simply reinstall drivers to fix (clean install not required).
There is a 1-2% performance loss using this method. I have no idea why. Stick to normal overclock methods if you want high benchmark figures.
Why use a fixed clock speed
World of Tanks without vsync. Default GTX670 on left. Forced clock speed on right.

Performance modes
P8 = idle clock speeds and lowest power consumption
P2 = the default mode used when your PC boots or no drivers are installed.
P0 = Gaming/Load. This mode only accepts boost/offset values
Forcing specific modes
The command line is required to do this. Either run "cmd" and locate the directory containing nvidia inspector, or create a .bat file in its directory.
Force P8 (idle) nvidiaInspector.exe -forcepstate:0,8
Force P2 (custom) nvidiaInspector.exe -forcepstate:0,2
Return to Default nvidiaInspector.exe -forcepstate:0,16
Be sure to set all clock speeds back to default before running the last command above.
Setting a fixed overclock
First, find your maximum boost/memory offsets using the normal overclocking methods.
I'm going to apply a +135/+500 overclock which equals 1311mhz/3500mhz. Use your own values in place for the instructions below.
1. Force P2 mode using "nvidiaInspector.exe -forcepstate:0,2".
2. Open Nvidia Inspector and go to the P2 dropdown entry. It should look like this:

3. Click unlock Max and move the GPU clock to 1311mhz. You can try and move the Memory Clock but it simply bounces back. Hit Apply Clocks. Notice how the Current Clock on left is not the value you just set. If you do the math, it is exactly 135 below our target.

4. The P2 mode still relies on your P0 boost setting to determine max clock speed. So, open that drop down and set your values. Once you click Apply it will now look like this:

Using batch files for simple switching between power modes
Create the following batch files in your Nvidia Inspector directory.
overclock.bat
nvidiaInspector.exe -setBaseClockOffset:0,0,135 -setMemoryClockOffset:0,0,500 -setpowertarget:0,111 -setVoltageOffset:0,0,187500 -setGpuClock:0,2,1311 -setMemoryClock:0,2,3500 -forcepstate:0,2
force_idle.bat
nvidiaInspector.exe -forcepstate:0,8
default
nvidiaInspector.exe -setVoltageOffset:0,0,0 -setGpuClock:0,2,705 -setMemoryClock:0,2,3000 -forcepstate:0,16
The commands above are self explanatory. Simply adjust the offsets/values to suit. I use shortcuts to execute these batch files, making idle<->overclock an easy toggle. Even with forced idle clocks, blurays only use 20% gpu.
Overvolting
When your card exceeds 70c it starts to downclock AND downvolt. If you apply a maximum voltage offset of +187.5mhz, your card will no longer downvolt. It will still downclock, but a fixed voltage may solve stability issues if you are right on the edge.
Known issues
Using -resetAllPStates command does not work correctly.
Reverting to default P mode can sometimes, depending on what you did, lock your card at a specific clock speed. Simply reinstall drivers to fix (clean install not required).
There is a 1-2% performance loss using this method. I have no idea why. Stick to normal overclock methods if you want high benchmark figures.