Post
Topic
Board Mining (Altcoins)
Re: [OS] nvOC easy-to-use Linux Nvidia Mining v0019-1.4
by
cchazz
on 23/11/2017, 00:01:46 UTC
Hi papampi,

This issue was with a mix of cards like the P106 and 1070 in a frame setting the OC speeds requires that the nvidia command to set the GPU or memory OC needs to be the [2] for some and [3] for others.  The loop looks like it was designed to try both [2] [3] if NORMAL=YES above, for each gpu but the gpu variable was incremented in the inner loop so you would get [2] on gpu[0] then [3] on gpu[1],  [2] on gpu [2] and so on. By moving the gpu increment out of the for loop it and into the outer while loop I believe it works as intended.  I added the two echo's in here to show the behavior.  

Original loop:


TI is 2 3, J is 2 and GPU is 0
nvidia-settings -a [gpu:0]/GPUGraphicsClockOffset[2]=-200
nvidia-settings -a [gpu:0]/GPUMemoryTransferRateOffset[2]=1500

  Attribute 'GPUGraphicsClockOffset' (19_1_4:0[gpu:0]) assigned value -200.


  Attribute 'GPUMemoryTransferRateOffset' (19_1_4:0[gpu:0]) assigned value 1500.

TI is 2 3, J is 3 and GPU is 1
nvidia-settings -a [gpu:1]/GPUGraphicsClockOffset[3]=-200
nvidia-settings -a [gpu:1]/GPUMemoryTransferRateOffset[3]=1300




TI is 2 3, J is 2 and GPU is 2
nvidia-settings -a [gpu:2]/GPUGraphicsClockOffset[2]=-200
nvidia-settings -a [gpu:2]/GPUMemoryTransferRateOffset[2]=1500

  Attribute 'GPUGraphicsClockOffset' (19_1_4:0[gpu:2]) assigned value -200.


  Attribute 'GPUMemoryTransferRateOffset' (19_1_4:0[gpu:2]) assigned value 1500.

TI is 2 3, J is 3 and GPU is 3
nvidia-settings -a [gpu:3]/GPUGraphicsClockOffset[3]=-200
nvidia-settings -a [gpu:3]/GPUMemoryTransferRateOffset[3]=1500

  Attribute 'GPUGraphicsClockOffset' (19_1_4:0[gpu:3]) assigned value -200.


  Attribute 'GPUMemoryTransferRateOffset' (19_1_4:0[gpu:3]) assigned value 1500.

TI is 2 3, J is 2 and GPU is 4
nvidia-settings -a [gpu:4]/GPUGraphicsClockOffset[2]=-200
nvidia-settings -a [gpu:4]/GPUMemoryTransferRateOffset[2]=1300

  Attribute 'GPUGraphicsClockOffset' (19_1_4:0[gpu:4]) assigned value -200.


  Attribute 'GPUMemoryTransferRateOffset' (19_1_4:0[gpu:4]) assigned value 1300.

TI is 2 3, J is 3 and GPU is 5
nvidia-settings -a [gpu:5]/GPUGraphicsClockOffset[3]=-200
nvidia-settings -a [gpu:5]/GPUMemoryTransferRateOffset[3]=1300


===============================================================
By moving the gpu increment to the while loop the execution looks like:


TI is 2 3, J is 2 and GPU is 0
nvidia-settings -a [gpu:0]/GPUGraphicsClockOffset[2]=-200
nvidia-settings -a [gpu:0]/GPUMemoryTransferRateOffset[2]=1500

  Attribute 'GPUGraphicsClockOffset' (19_1_4:0[gpu:0]) assigned value -200.


  Attribute 'GPUMemoryTransferRateOffset' (19_1_4:0[gpu:0]) assigned value 1500.

TI is 2 3, J is 3 and GPU is 0
nvidia-settings -a [gpu:0]/GPUGraphicsClockOffset[3]=-200
nvidia-settings -a [gpu:0]/GPUMemoryTransferRateOffset[3]=1500

  Attribute 'GPUGraphicsClockOffset' (19_1_4:0[gpu:0]) assigned value -200.


  Attribute 'GPUMemoryTransferRateOffset' (19_1_4:0[gpu:0]) assigned value 1500.

TI is 2 3, J is 2 and GPU is 1
nvidia-settings -a [gpu:1]/GPUGraphicsClockOffset[2]=-200
nvidia-settings -a [gpu:1]/GPUMemoryTransferRateOffset[2]=1300

  Attribute 'GPUGraphicsClockOffset' (19_1_4:0[gpu:1]) assigned value -200.


  Attribute 'GPUMemoryTransferRateOffset' (19_1_4:0[gpu:1]) assigned value 1300.

TI is 2 3, J is 3 and GPU is 1
nvidia-settings -a [gpu:1]/GPUGraphicsClockOffset[3]=-200
nvidia-settings -a [gpu:1]/GPUMemoryTransferRateOffset[3]=1300




TI is 2 3, J is 2 and GPU is 2
nvidia-settings -a [gpu:2]/GPUGraphicsClockOffset[2]=-200
nvidia-settings -a [gpu:2]/GPUMemoryTransferRateOffset[2]=1500

  Attribute 'GPUGraphicsClockOffset' (19_1_4:0[gpu:2]) assigned value -200.


  Attribute 'GPUMemoryTransferRateOffset' (19_1_4:0[gpu:2]) assigned value 1500.

TI is 2 3, J is 3 and GPU is 2
nvidia-settings -a [gpu:2]/GPUGraphicsClockOffset[3]=-200
nvidia-settings -a [gpu:2]/GPUMemoryTransferRateOffset[3]=1500

  Attribute 'GPUGraphicsClockOffset' (19_1_4:0[gpu:2]) assigned value -200.


  Attribute 'GPUMemoryTransferRateOffset' (19_1_4:0[gpu:2]) assigned value 1500.







if [ $P106_100_FULL_HEADLESS_MODE == "NO" ]
then

gpu=0
while [ $gpu -lt $GPUS ]
do
for j in $TI
do
CORE=${__CORE_OVERCLOCK[${gpu}]}
MEM=${MEMORY_OVERCLOCK[${gpu}]}
echo "TI is $TI, J is $j and GPU is $gpu"
echo "${NVD} -a [gpu:$gpu]/GPUGraphicsClockOffset[${j}]=$CORE"
echo "${NVD} -a [gpu:$gpu]/GPUMemoryTransferRateOffset[${j}]=$MEM"
${NVD} -a [gpu:$gpu]/GPUGraphicsClockOffset[${j}]=$CORE
${NVD} -a [gpu:$gpu]/GPUMemoryTransferRateOffset[${j}]=$MEM
done
gpu=$(($gpu+1))
done







Thanks a lot for the detailed explanation
Added your fix for next release.

If you found any more fixes please let us know to add for next releases.

Would this be why my 2 1050 Ti's show as ERR! in the power chart when it first loads and ewbf reports them as 0 Hash/watt?  They're running alongside 6 1060 6GB cards and they all seem to be working correctly (appropriate hash rates per card).  Just the error bothered me was all. Thanks!