Nvidia Learning Curve
#1
I purchased a reference design GTX 970 card last night from best buy.  First time using Nvidia products and confused how I can control fan speed and overclocking on Ubunut 14.04.  

My understanding is there are two methods 1) install windows and flash the bios or 2) modify xorg.conf ?  Are there no easier options to adjust fan speed and clock, like AMD's "aticonfig" tool?  

If I'm limited to using those two methods are there anything "gotchas" I should look out for?  Last thing I need is to brick a brand new card by flashing the bios incorrectly.

With that said.  While testing last night GPU temp was around 80c @ 50% fan speed during a bruteforce of dummy MD5 hash.  However hashcat's speed kept going up and down which made me think the card is throttling?  Personally I like the temp to be lower, especially once I get more of these cards.
#2
It's been posted on the forums before, but I'll repost everything here.

First you need to generate an appropriate xorg.conf that will enable fan control, force the appropriate power state, and disable the watchdog:

Code:
nvidia-xconfig -s -a --force-generate --allow-empty-initial-configuration \
        --cool-bits=12 --registry-dwords="PerfLevelSrc=0x2222" \
        --no-sli --connected-monitor="DFP-0" -o /etc/X11/xorg.conf

sed -i '/Driver/a \ \ \ \ Option         "Interactive" "False"' /etc/X11/xorg.conf

Once this is done you can start/restart Xorg and configure the GPU via nvidia-settings (just as you would with amdcofig.) We need to set PowerMizer to maximum performance, enable fan control, set the GPU fan speed to 100%, and set a graphics clock offset of 100-250 Mhz to compensate for PowerMizer:

Code:
export DISPLAY=:0

nvidia-settings -a GPUPowerMizerMode=1 \
                -a GPUFanControlState=1 \
                -a GPUCurrentFanSpeed=100 \
                -a GPUGraphicsClockOffset[3]=100

That's all there is to it. Not much different from AMD, just different tools.
#3
awesome, thank you
#4
(07-28-2015, 08:40 PM)epixoip Wrote: It's been posted on the forums before, but I'll repost everything here.

First you need to generate an appropriate xorg.conf that will enable fan control, force the appropriate power state, and disable the watchdog:

Code:
nvidia-xconfig -s -a --force-generate --allow-empty-initial-configuration \
       --cool-bits=12 --registry-dwords="PerfLevelSrc=0x2222" \
       --no-sli --connected-monitor="DFP-0" -o /etc/X11/xorg.conf

sed -i '/Driver/a \ \ \ \ Option         "Interactive" "False"' /etc/X11/xorg.conf

Once this is done you can start/restart Xorg and configure the GPU via nvidia-settings (just as you would with amdcofig.) We need to set PowerMizer to maximum performance, enable fan control, set the GPU fan speed to 100%, and set a graphics clock offset of 100-250 Mhz to compensate for PowerMizer:

Code:
export DISPLAY=:0

nvidia-settings -a GPUPowerMizerMode=1 \
       -a GPUFanControlState=1 \
       -a GPUCurrentFanSpeed=100 \
       -a GPUGraphicsClockOffset[3]=100

That's all there is to it. Not much different from AMD, just different tools.

epixoip:

You suggested the above code for a user with one Nvidia card. Would this code be appropriate for 2 Nvidia cards?
Thank you.
#5
I'm not sure what I said above that implies it's only for one GPU. You can use it for one GPU, you can use it for 16 GPUs, doesn't matter...
#6
epixoip:

I've done the top half as instructed and created the xorg.conf files

How does one "start/restart Xorg"?

Do I run the second half instructions in Terminal?

Thank you.
#7
These are still the recommended settings right? I am having issues with the nvidia-settings portion.  First part works fine. When I run nvidia-settings, I get the below error message on Ubuntu 16.04. 

Code:
ERROR: libgtk-3.so.0: cannot open shared object file: No such file or directory
      libnvidia-gtk3.so: cannot open shared object file: No such file or directory
      libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
      libnvidia-gtk2.so: cannot open shared object file: No such file or directory

If I try to explicitly reference these libraries using the "-I" trigger, it then tells me:

Code:
/usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0/libnvidia-gtk3.so.367.27: cannot open shared object file: No such file or directory

The above file is actually listed here: /usr/lib/x86_64-linux-gnu/libnvidia-gtk3.so.367.27

Looks like nvidia-settings is checking the wrong directly for all of its gtk library files. Is there an easy way to adjust this without explicitly listing out every single one and its correct location?
#8
In the words of OffSec, I tried harder. 

Was missing gtk2. 

tl;dr 
Code:
apt-get install gtk2.0
#9
i dont know if this is the right place to ask so you mods can break it out to it's own subject if needed

the problem i am having now is that the nvidia adaptive clocking keeps dropping the performance to level 2 instead of running at max of 3 whenever i start hashcat and maybe other cuda programs

is this normal? is level 3 only for games not cuda compute? does hashcat bypass the settings and max the card?

i have read other posts one that suggested setting power level so i did that and the card is still underperforming when idle it shows powermizer as level 3 but when i run hashcat it drops to 2.

is 177 watts not enough power for the cart to consistantly use level 3 and how do i raise the limit as i get an error saying that it wont allow above 177.

i have a beefy 450 watt power supply.

thanks for the help
#10
i just checked with evga who makes the card and found that it is normal for cuda load to cause the performance to max out at level 2 because cuda does not drive the card hard enough to use all of the memory.

that begs the next question

since the coolbits option seems to only allow overclocking level 3 is there a way to overclock level 2 so i can force the card to perform faster?

thanks

love ejonesss