Beginer experience with NVIDIA GTX 1070

gjaingjain Southern CalifoniaMember Posts: 4
edited July 2017 in Mining
Thought I'll give back to the community by sharing the experience of building a 4 GPU rig.

Base: i3-7100, Corsair H60 CPU cooler, Corsair Vengeance LPX 8GB 3200 on MSI Z170A M5
Wi-Fi: TP-Link AC1900
4 GPUs: One(1) MSI GTX 1070 Gaming X 8G and Three(3) MSI GTX 1070 Sea Hawk X 8G
PSU: EVGA 850w with 4 VGA outputs
Case: Corsair 750D Airflow Edition (cannot build open air rig with small children in the house.)

OS: Ubuntu 16.04 desktop, enabled Broadcom chipset in "Software & Updates >> Additional Drivers" to enable Wi-Fi.

Nvidia drivers installation:
1. sudo add-apt-repository ppa:graphics-drivers/ppa

2. sudo apt update

3. sudo apt install nvidia-381

4. sudo apt install nvidia-cuda-toolkit

Ethminer installation: https://github.com/ethereum-mining/ethminer


Generate /etc/X11/xorg.conf using nvidia-xconfig

<<< X11 configuration to enable overclocking >>>

For each GPU, ensure /etc/X11/xorg.conf has following lines

Section "Device"
Identifier "Device3" <<<<<---- This is GPU 4
Driver "nvidia"
BusID "PCI:[email protected]:0:0" <<<<<---- This should be address of your GPU
Option "ConstrainCursor" "off"
EndSection

Section "Screen"
Identifier "Screen3"
Device "Device3"
Option "AllowEmptyInitialConfiguration" "on"
Option "IgnoreDisplayDevices" "CRT"
Option "Coolbits" "31" <<<<<<<<------ This enables overclocking options in nvidia-settings
EndSection

<<< end of X11 config file modifications to enable overclocking>>>





<<< X11 configuration for use without monitor >>>

For the FIRST GPU ONLY, ensure /etc/X11/xorg.conf has following lines

Section "Device"
Identifier "Device0" <<<<<---- This is GPU 1 with additional config for headless display
Driver "nvidia"
BusID "PCI:[email protected]:0:0" <<<<<---- This should be address of your first GPU
Option "ConstrainCursor" "off"
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Option "AllowEmptyInitialConfiguration" "on"
Option "IgnoreDisplayDevices" "CRT"
Option "Coolbits" "31"
Option "ConnectedMonitor" "DFP-0"
Option "CustomEDID" "DFP-0:/etc/X11/edid.bin" <<<< Extracted using nvidia-settings application
EndSection

<<< end of X11 config file for use without monitor>>>




<<<Overclocking>>>>

Stock hashrate: 26 MH/s
Overclocked hashrate: Varies between 30 MH/s - 36 MH/s depending on heat generation, fan placement, power draw etc.

Temperature, Overclocking, Fan and Power Draw adjusted using following procedure

1) Use nvidia-settings and start with fan speed set to 100% and memory overclocking with +600. Move memory clock up +50 with each iteration to ensure stability over 4 hr period. Go back to previous setting ( -50) if ethminer crashes.

2) Reduce fan speed by 10% and observe if the temperature starts rising over 60 minutes.

3) Use nvidia-smi and reduce power draw by 2W in each iteration and observe if the hashrate starts to come down (ethminer output).

Screenshot of fan speeds and power draw: http://imgur.com/IRXTnpL
Screenshot of hashrate with stable overclocking: http://imgur.com/QKEwE0s

<<<Overclocking - end>>>>




<<<Overclocking - automatically apply settings on system reboot>>>>

X11 is set to autologin so that following nvidia-settings are loaded automatically

$ cat .nvidia-settings-rc
#
# /home/vyomjain/.nvidia-settings-rc
#
# Configuration file for nvidia-settings - the NVIDIA X Server Settings utility
# Generated on Sat Jul 1 13:28:32 2017
#

# ConfigProperties:
<<<<snipped>>>>
<<<<added to end of file>>>>
[gpu:0]/GPUPowerMizerMode=1
[gpu:0]/GPUGraphicsClockOffset[3]=0
[gpu:0]/GPUMemoryTransferRateOffset[3]=1700
[gpu:0]/GPUFanControlState=1
[fan:0]/GPUTargetFanSpeed=60

[gpu:1]/GPUPowerMizerMode=1
[gpu:1]/GPUGraphicsClockOffset[3]=0
[gpu:1]/GPUMemoryTransferRateOffset[3]=1400
[gpu:1]/GPUFanControlState=1
[fan:1]/GPUTargetFanSpeed=80

[gpu:2]/GPUPowerMizerMode=1
[gpu:2]/GPUGraphicsClockOffset[3]=0
[gpu:2]/GPUMemoryTransferRateOffset[3]=1300
[gpu:2]/GPUFanControlState=1
[fan:2]/GPUTargetFanSpeed=80

[gpu:3]/GPUPowerMizerMode=1
[gpu:3]/GPUGraphicsClockOffset[3]=0
[gpu:3]/GPUMemoryTransferRateOffset[3]=1700
[gpu:3]/GPUFanControlState=1
[fan:3]/GPUTargetFanSpeed=60

<<<< end of .nvidia-settings-rc >>>>>




<<<< /etc/rc.local to automatically adjust power draw at system startup >>>>>

$ cat /etc/rc.local
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

nvidia-smi -pm 1
nvidia-smi -i 0 -pl 120
nvidia-smi -i 1 -pl 120
nvidia-smi -i 2 -pl 120
nvidia-smi -i 3 -pl 120

exit 0

<<<< end of /etc/rc.local >>>>>




Here is how it looks on Nanopool: https://eth.nanopool.org/account/0x7e81e63d3270d878546565f5f9c1a856588dde88

Comment if anyone would benefit from more details. I'd happy to help.

Comments

Sign In or Register to comment.