Cannot Control Fans on some GPUs

Using nvidia-settings to alter fan control, I use the command

sudo DISPLAY=:0 XAUTHORITY=/run/user/122/gdm/Xauthority nvidia-settings -c :0 -a "[gpu:x]/GPUFanControlState=1" -a "[gpu:x]/GPUTargetFanSpeed=90"

where x is the GPU number. I have 7 cards for this system. 0-3 work just fine with a set GPUTargetFanSpeed; however, when applying to 4-6, the cards fans just shut off. GPUTargetFanSpeed reports 0 even though it is being set to 90.

All of these cards are from the same manufacturer. I have noticed that, when doing

sudo DISPLAY=:0 XAUTHORITY=/run/user/122/gdm/Xauthority nvidia-settings -c :0 -q fans

there are more fans than there are cards (and the only fans in the system are the ones on the cards).

Known problem, the fans are enumerated without taking the gpu into account. So with many gpus, it’s trial-and-error which fan belongs to which gpu.

I cannot edit more than the fans allocated per GPU either… so I won’t be able to adjust fans for these cards at all?

You need to enable fan-control on all gpus:

nvidia-settings -c :0 -a "[gpu:x]/GPUFanControlState=1"

with x=0…[num gpus -1]
then set speed with

nvidia-settings -c :0 -a "[fan:y]/GPUTargetFanSpeed=90"

with y=0…[num fans -1]
Might work or you’ll get “Unknown error”

Works up until fan-7 (out of 12 total), then says Unknown Error.

Fan-4 through Fan-6 do not work - it will just set fans to 0%

EDIT: Enabling fan control allowed for GPUTargetFanSpeed to be edited for the fans that previously reported “Unknown Error”, which solved my problem.