Shader Clock Overclocking Tutorial

Discussion in 'RivaTuner Advanced Discussion forum' started by thegame69dx, Sep 17, 2007.

  1. thegame69dx

    thegame69dx New Member

    Messages:
    5
    Likes Received:
    0
    GPU:
    8800GTX
    Hi Unwinder,

    can I/We please have a little tutorial how to adjust shader clocks?
     
  2. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,123
    Likes Received:
    6,688
    You can find everything you need in Release notes, context help for ShaderClockRatio and this thread:

    http://forums.guru3d.com/showthread.php?t=237145

    If you still don't understand how to use it after reading all these things, I strongly recommend you to stay away from shader clock adjustment.
     
  3. thegame69dx

    thegame69dx New Member

    Messages:
    5
    Likes Received:
    0
    GPU:
    8800GTX
    thx for help, got it working
     
  4. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,123
    Likes Received:
    6,688
    Congratulations ;)
     

  5. sam3000

    sam3000 Master Guru

    Messages:
    370
    Likes Received:
    0
    GPU:
    SLI GTX970
    I can see this subject bringing up a number of very FAQs so here's a rough guide to try to head some of them off and to stop Unwinder from banging his head against a wall :)

    NVIDIA G80 based GPU shader clock speed adjustment using 163.67 drivers and RivaTuner 2.04
    ======================================================================

    Overview/Background
    ---------------------

    Prior to NVIDIA driver release 163.67, the shader clock speed was linked to the core clock (aka ROP domain clock) speed and could not be changed independently by itself. The relationship between core and shader domain clock speeds (for most cards) is shown in table A. Some cards have slightly different set freq vs resultant core/shader speeds so take the table as an illustration of how the shader clock changes with respect to the core clock rather than precise values. To overclock the shader speed it was necessary to flash the GPU BIOS with a modified version that sets a higher default shader speed.

    By way of an example, my 8800 GTS EVGA Superclocked comes from the factory with BIOS programmed default core and shader speeds of 576 and 1350, respectively. When increasing the core speed, I found 648 to be my maximum stable speed. From table A, you can see that with a core of 648 the maximum shader speed (owing to the driver controlled core/shader speed linkage) is 1512. To push it higher you increase the BIOS set shader speed. For example, with a BIOS set to core/shader 576/1404 (from 576/1350), all linked shader speeds are bumped up by 54MHz. So now when increasing the core to 648, the maximum shader speed becomes 1512+54=1568. I eventually determined my maximum stable shader speed to by 1674 (achieved with GPU BIOS startup speeds set to 576/1512; overclocking core to 648 now yields a shader speed of (1512-1350)+1512=1674).

    However, as of NVIDIA driver release 163.67, the shader clock can now be modified independently of the core clock speed. Here is the announcement by Unwinder:

    "Guys, I've got very good news for G80 owners. I've just examined overclocking interfaces of newly released 163.67 drivers and I was really pleased to see that NVIDIA finally added an ability of independent shader clock adjustment. As you probably know, with the past driver families the ForceWare automatically overclocked G80 shader domain synchronicallly with ROP domain using BIOS defined Shader/ROP clock ratio. Starting from 163.67 drivers internal ForceWare overclocking interfaces no longer scale shader domain clock when ROP clock is adjusted and the driver now provides completely independent shader clock adjustment interface. It means that starting from ForceWare 163.67 all overclocking tools like RivaTuner, nTune, PowerStrip or ATITool will adjust ROP clock only.
    However, new revisions of these tools supporting new overclocking interfaces will probably allow you to adjust shader clock too. Now I've played with new interfaces and upcoming v2.04 will contain an experimental feature allowing power users to definie custom Shader/ROP ratio via the registry, so RT will clock shader domain together with ROP domain using user defined ratio.
    And v2.05 will give you completely independent slider for adjusting shader clock independently of core clock.

    Note:

    By default this applies to Vista specific overclocking interfaces only, Windows XP drivers still provide traditional overclocking interface adjusting both shader and ROP clocks. However, XP drivers also contain optional Vista-styled overclocking interfaces and you can force RivaTuner to use them by setting NVAPIUsageBehavior registry entry to 1."

    Two big points of note here:
    *) The driver's new overclocking functionality is only used *by default* on Vista. Setting the rivatuner NVAPIUsageBehaviour registry entry to 1 will allow XP users to enjoy the new shader speed configurability.
    *) With the new driver interface, by default, the shader speed will not change AT ALL when you change the core speed. This is where the use of RivaTuner's new ShaderClockRatio registry value comes in (see below). It can be found under the power user tab, RivaTuner->Nvidia->Overclocking.


    Changing the shader clock speed
    --------------------------------

    On to the mechanics of the new ShaderClockRatio setting in Rivatuner 2.04. Here's more text from Unwinder:

    "Guys, I’d like to share with you some more important G80 overclocking related specifics introduced in 163.67:

    1) The driver’s clock programming routine is optimized and it causes unwanted effects when you’re trying to change shader domain clock only. Currently the driver uses just ROP domain clock only to see if clock generator programming have to be performed or not. For example, if your 8800GTX ROP clock is set to 612MHz and you need to change shader domain clock only (directly or via specifying custom or shader/ROP clock ratio) without changing current ROP clock, the driver will optimize clock frequency programming seeing that ROP clock is not changed and it simply won’t change the clocks, even if requested shader domain clock has been changed. The workaround is pretty simple: when you change shader clock always combine it with ROP clock change (for example, if your 8800GTX ROP clock is set to 612MHz and you’ve changed shader clock, simply reset ROP clock to default 576MHz, apply it, then return it to 612MHz again to get new shader clock applied). I hope that this unwanted optimization will be removed in future ForceWare, and now please just keep it in mind while playing with shader clock programming using RT 2.04 and 163.67.
    2) Currently Vista driver puts some limitations on ROP/shader domain clocks ratio you’re allowed to set. Most likely they are hardware clock generator architecture related and hardware simply cannot work (or cannot work stable) when domain clocks are too asynchronous. For example, on my 8800GTX the driver simply refuses to set the clocks with shader/ROP ratio within 1.0 – 2.0 range (default ratio is 1350/575 = 2.34), but it accepts the clocks programmed with ratio within 2.3 – 2.5 range. Considering that the driver no longer changes domain clocks synchronically and all o/c tools (RT 2.03, ATITool, nTuner, PowerStrip) currently change ROP clock only, that results in rather interesting effect: you won’t be able to adjust ROP clock as high as before. Once it gets too far from (or too close to) shader clock and shader/ROP clock ratio is out of range – the driver refuses to set such clock. Many of you already noticed this effect, seeing that the driver simply stops increasing ROP clock after a certain dead point with 163.67."

    and

    "In the latest build of 2.04 (2.04 test 7) I've added an ability of setting ShaderClockRatio to -1, which can be used to force RivaTuner to recalculate desired Shader/ROP ratio automatically by dividing default shader clock by default ROP clock.
    So if you set ShaderClockRatio = -1 and change ROP clock with RT, it will increase shader clock using you card's BIOS defined ratio (e.g. 1350/576=2.34 on GTX, 1188/513 = 2.32 on GTS etc). If you wish to go further, you may still override the ratio, for example increase shader clock by specifying greater ratio (e.g. ShaderClockRatio = 2.5)."


    Three important points here:
    *) The driver currently imposes restrictions on how far the shader clock speed can be changed from what it otherwise would've been when linked to the core clock speed in old drivers (it is suspected that the restriction is owing to hardware limitations rather than a driver software design choice). This means you can't set an arbitrary shader speed which you know your card is capable of and necessarily expect it to work.
    *) Setting the ShaderClockRatio to the special value of -1 will give you a very similar core / shader speed linkage that you had under previous drivers (163.44 and older).
    *) When the change the value of ShaderClockRatio, in order for it to take effect, you must make a core speed. So, for example, you might reduce the core speed a little, apply and then put it back to how it was and apply again.



    Worked example
    ----------------

    Surprise surprise, back to my EVGA 8800 GTS superclocked! .. First off, if you've not already done so, I recommend setting up RivaTuner monitor to show the core clock, shader clock and memory clock speeds so that you can immediately tell if your core/shader clock changes are having any effect. My setup is vista with 163.67 drivers. With RivaTuner 2.03, when overclocking the core to 648, the shader would now stick at the bootup default speed of 1512 MHz (see last paragraph of "Overview/Background" above). If I had blindly run 3dmark2006 tests after installing the 163.67 driver, I would've assumed that the new drivers give worse performance but the rivatuner graphs show you that the shader is not running at the expected speed.

    After installing RivaTuner 2.04, we are now able to set the ShaderClockRatio value to restore a higher shader clock speed. In my case since I want a shader speed of 1674 when the core is 648, I use 1674/648 = 2.58.


    =======================


    Table A
    --------

    Some cards have slightly different set freq vs resultant core/shader speeds so take the table as an illustration of how the shader clock changes with respect to the core clock rather than precise values.

    Code:
    Set core  | Resultant frequency
    frequency |   Core  Shader
    ---------------------------------
    509-524   |   513   1188
    525-526   |   513   1242
    527-547   |   540   1242
    548-553   |   540   1296
    554-571   |   567   1296
    572-584   |   576   1350
    585-594   |   594   1350
    595-603   |   594   1404
    604-616   |   612   1404
    617-617   |   621   1404
    618-634   |   621   1458
    635-641   |   648   1458
    642-661   |   648   1512
    662-664   |   675   1512
    665-679   |   675   1566
    680-687   |   684   1566
    688-692   |   684   1620
    693-711   |   702   1620
    712-724   |   720   1674
    725-734   |   729   1674
    735-742   |   729   1728
    743-757   |   756   1728
     
    Last edited: Sep 17, 2007
  6. Critical_Impact

    Critical_Impact Active Member

    Messages:
    70
    Likes Received:
    0
    GPU:
    XFX 640MB 8800GTS @ 620/900
    Very nice tutorial. I'd assume that increasing the shader clock will increase your 3dMark score? Obviously you will only be able to overclock the shader clocks so far, but will increasing them by 200-300 make that much of a difference?

    I'll probably give 3dMark06 a go and see what sort of scores I get with various shader clocks. At the moment I've got it at 2.34 and my card is running at 621 with the final shader clock being 1458.
     
  7. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,123
    Likes Received:
    6,688
    Once again, good job! ;)

    Just a small note I would like to add:

    Right now I'm almost certain that it is hardware limitation rather than the driver's one.
     
  8. sam3000

    sam3000 Master Guru

    Messages:
    370
    Likes Received:
    0
    GPU:
    SLI GTX970
    updated, many thanks for the feedback!
     
  9. sam3000

    sam3000 Master Guru

    Messages:
    370
    Likes Received:
    0
    GPU:
    SLI GTX970
    It's been a while since I've done any 3dmark tests with different shader clocks but, if memory serves, I think I got roughly one extra 3dmark2006 for each 2MHz increment in shader speed. ie a shader speed bump of 108MHz would get me around 50 extra 3dmark2006 points. Of course the difference will vary for everyone depending on your exact card / core speed / memory speed / system cpu speed etc but at least you have an idea of roughly what to expect.
     
  10. plguzman

    plguzman Master Guru

    Messages:
    250
    Likes Received:
    0
    GPU:
    Diamond 4870X2
    Sticky?
     

  11. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,123
    Likes Received:
    6,688
    Done
     
  12. nsegative

    nsegative Guest

    Messages:
    26
    Likes Received:
    0
    GPU:
    XFX 8800 GTX 768mb
    Thanks for the tutorial. There's one thing I don't understand: I set the ratio to 2.5 on my XFX 8800 GTX and set 100% fan speed. Then I set my clocks to 648/1008 giving me a shader clock ratio of 1620. I ran 3dmarks05 but when I came out the core and shaderclock was down to 1512. Any idea?
     
  13. plguzman

    plguzman Master Guru

    Messages:
    250
    Likes Received:
    0
    GPU:
    Diamond 4870X2
    Now I easily reach my old XP scores with the shader overclocking. Awesome.
     
  14. sam3000

    sam3000 Master Guru

    Messages:
    370
    Likes Received:
    0
    GPU:
    SLI GTX970
    are you saying that rivatuner monitor showed a shader clock of 1620 prior to running 3dmark2005 and that it had dropped to 1512 by the time the benchmark had finished??

    or are you saying that when you set a ratio of 2.5, the achieved shader clock as shown by rivatuner monitor is only 1512? what if you only try to increase the shader a little? (ie try 2.42 to give a shader speed of 1566).
     
  15. nsegative

    nsegative Guest

    Messages:
    26
    Likes Received:
    0
    GPU:
    XFX 8800 GTX 768mb
    Sorry what I meant to say was that the core dropped to 594 (my core stock) and ram 1000 (my ram stock was 945) and shader to 1512. It's very odd, I just got finished playing MOH:airborn for about 30 minutes and once I came back and checked my hardware monitoring the 1620 and my speeds remained and never dropped.
     

  16. Unwinder

    Unwinder Ancient Guru Staff Member

    Messages:
    17,123
    Likes Received:
    6,688
    594 * 2.5 = 1485. Closest possible value is 1512. You've tried to change 2D clock too, which resulted in boosting shader for 2D performance level.
     
  17. RedDracoNL

    RedDracoNL Member

    Messages:
    23
    Likes Received:
    0
    GPU:
    GV-N970G1 1600/7500
    First of all :) hi! To everyone sins am new here.

    I was reading about RivaTuner 2.04 and thought well maybe this can help me out two so I tried the following

    I always had a Feeling the High shader clocks of my card where limiting my OC could not get past 435 Stable. So I tried to go around the other way, Instead of going up I went down I set RivaTuners Shader/ROP clock ratio to 2.0 witch lowerd my Shader clock from 1404 to 1135 if I remember right. And now my core seems to clock a lot higher it’s at 475 at the moment and seems to be stable. My shader clock is now at 1350 a little lower than standard so I might even be able to go a little higher.
     
  18. RedDracoNL

    RedDracoNL Member

    Messages:
    23
    Likes Received:
    0
    GPU:
    GV-N970G1 1600/7500
    Downclocking ShaderClocks

    First of all :D hi! To everyone sins am new here.

    I was reading about The new RivaTuner 2.04 and thought well maybe this can help me out so I tried the following

    I always had a Feeling the High shader clocks of my card where limiting my OC could not get past 635 Stable. So I tried to go around the other way, Instead of going up I went down I set RivaTuners Shader/ROP clock ratio to 2.0 witch lowerd my Shader clock from 1404 to 1135 if I remember right. And now my core seems to clock a lot higher it’s at 475 at the moment and seems to be stable. My shader clock is now at 1350 a little lower than standard so I might even be able to go a little higher.

    i'm Running Windows XP Pro SP2 btw.
     
    Last edited: Sep 17, 2007
  19. eRa`

    eRa` Ancient Guru

    Messages:
    1,823
    Likes Received:
    1
    GPU:
    Palit GeForce GTX 570
    Are you talking about the GPU in your profile? Because usually a 8800 GTS core clocks at 513MHz.
     
  20. nsegative

    nsegative Guest

    Messages:
    26
    Likes Received:
    0
    GPU:
    XFX 8800 GTX 768mb
    Yup and my current overclock is 648 * 2.5 = 1620. The problem I was having was that 3dmark05 reverted to stock core speed and shader clock (but the memory remained at the overclock speed). However MOH:airborne clocks didn't drop. I haven't tried running 05marks again because I'm not at home, could possible the memory clock overclock from 1000 to 1008 resulted in stable core/shader overclock?
     

Share This Page