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!