Nvidia GPU Overclocking OC In Linux

in nvidia •  7 years ago  (edited)

Optimizing GPU to its peak means getting maximum out of it and stressing it more. According to me, OC will reduce the life of the GPU. Hence please tune the GPU with some benchmarking tool. Double check GPU temperature. I am keeping the power to as low as possible especially for 1060 which actually give you good hash rate.

Enable GPU tuning using nvidia-settings utility
sudo nvidia-xconfig -a --allow-empty-initial-configuration --cool-bits=28 --enable-all-gpus

For headless systems, you should configure xorg with dummy configuration
sudo nvidia-xconfig -a --force-generate --allow-empty-initial-configuration --cool-bits=28 --no-sli --connected-monitor="DFP-0"

Tuning Power Consumption for 1070/1060/1050ti
GTX 1070 (Expected Hash rate for ETH ~30 MH/s):
nvidia-smi -pm 1
nvidia-smi -pl 110

GTX 1060 (Expected Hash rate for ETH ~22 MH/s):
nvidia-smi -pm 1
nvidia-smi -pl 90

GTX 1050 Ti (Expected Hash rate for ETH ~13.1 MH/s):
nvidia-smi -pm 1
nvidia-smi -pl 60

Setting FAN speed and Memory clock speed. Similarly, do it for all GPU available in the system

GTX 1070 (~30 MH/s Solo ETH):

    sudo nvidia-settings -c :0 -a [gpu:0]/GPUMemoryTransferRateOffset[3]=1100
     sudo nvidia-settings -c :0 -a [gpu:0]/GPUGraphicsClockOffset[3]=-200
     sudo nvidia-settings -c :0 -a [gpu:0]/GPUFanControlState=1
     sudo nvidia-settings -c :0 -a [fan:0]/GPUTargetFanSpeed=80

GTX 1060 (~21.5 MH/s Solo ETH):

     sudo nvidia-settings -c :0 -a [gpu:0]/GPUMemoryTransferRateOffset[3]=1600
     sudo nvidia-settings -c :0 -a [gpu:0]/GPUGraphicsClockOffset[3]=-160
     sudo nvidia-settings -c :0 -a [gpu:0]/GPUFanControlState=1
     sudo nvidia-settings -c :0 -a [fan:0]/GPUTargetFanSpeed=80

GTX 1050 Ti (~13.1 MH/s Solo ETH):

     sudo nvidia-settings -c :0 -a [gpu:0]/GPUMemoryTransferRateOffset[2]=600
     sudo nvidia-settings -c :0 -a [gpu:0]/GPUGraphicsClockOffset[2]=-100
     sudo nvidia-settings -c :0 -a [gpu:0]/GPUFanControlState=1
     sudo nvidia-settings -c :0 -a [fan:0]/GPUTargetFanSpeed=80

NVIDIA Auto OC Script

#Define Environment Variable 
MemoryOffset="1600"
ClockOffset="-200"
FanSpeed="80"
export DISPLAY=:0
xset -dpms
xset s off
xhost +
#Create xorg.conf with cool bits. I will use 31.. please check the manual properly 
nvidia-xconfig -a --force-generate --allow-empty-initial-configuration --cool-bits=31 --no-sli --connected-monitor="DFP-0"
echo "In case of any error please reboot and run this script again"
#Paths to the utilities we will need
SMI='/usr/bin/nvidia-smi'
SET='/usr/bin/nvidia-settings'
#Determine major driver version
VER=$(awk '/NVIDIA/ {print $8}' /proc/driver/nvidia/version | cut -d . -f 1)
#Drivers from 285.x.y on allow persistence mode setting
if [ "${VER}" -lt 285 ]
then
    echo "Error: Current driver version is ${VER}. Driver version must be greater than 285."; exit 1;
fi

    $SMI -pm 1 # enable persistance mode
    $SMI -i 0,1,2,3,4 -pl 90

    echo "Applying Settings"

    # how many GPU's are in the system?
    NUMGPU="$(nvidia-smi -L | wc -l)"

    # loop through each GPU and individually set fan speed
    n=0
    while [  $n -lt  "$NUMGPU" ];
    do
        # start an x session, and call nvidia-settings to enable fan control and set speed
        ${SET} -c :0 -a [gpu:${n}]/GPUFanControlState=1 -a [fan:${n}]/GPUTargetFanSpeed=$FanSpeed
        ${SET} -c :0 -a [gpu:${n}]/GpuPowerMizerMode=1
        ${SET} -c :0 -a [gpu:${n}]/GPUMemoryTransferRateOffset[3]=$MemoryOffset
        ${SET} -c :0 -a [gpu:${n}]/GPUGraphicsClockOffset[3]=$ClockOffset
        let n=n+1
    done

    echo "Complete"; exit 0;
Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Congratulations @gurucp! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 1 year!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Do not miss the last post from @steemitboard:

Are you a DrugWars early adopter? Benvenuto in famiglia!
Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Congratulations @gurucp! You received a personal award!

Happy Steem Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!