Post
Topic
Board Mining (Altcoins)
Re: [OS] nvOC easy-to-use Linux Nvidia Mining v0019-1.4
by
papampi
on 22/11/2017, 15:22:27 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.