nan0s7 / nfancurve

A small and lightweight POSIX script for using a custom fan curve in Linux for those with an Nvidia GPU.
GNU General Public License v3.0
314 stars 57 forks source link

nvidia-settings allows setting the fan speed from 30% to 100% #57

Open georgrin opened 10 months ago

georgrin commented 10 months ago

So, I assume that when the GPU temperature is below the min_t, the script should disable fan control (and not set the speed to 0%). Fan control should be enabled when the GPU temperature is above the min_t.

Additionally, it would be beneficial to implement an action when the GPU temperature reaches a critical level, such as a reboot. Or, even better, terminate all processes utilizing the GPU.

The nvidia-settings command can be executed as "xvfb-run -a nvidia-settings". The /etc/X11/xorg.conf with coolbits is still required.

Thank you for the outstanding work.

nan0s7 commented 10 months ago

Hey thanks for the comment!

If we disable fan control when the temperature hits the minimum in the config, the Nvidia driver will take the reigns again. Although for most cards this probably won't do anything but it's probably safer to leave it in our control. I could just leave that up to the user though, following your feature request for actions at critical levels.

Unfortunately Nvidia has disabled turning the fans off completely.

Is that command for a headless setup or just in general?

Regarding your feature request for an action at a critical level, that would be cool to see.

I'd love to get back into this project sometime soon, but work is crazy right now. Hopefully soon.

georgrin commented 10 months ago

Hm... When I disable fan control through nvidia-settings on my 3080Ti cards (535 driver) on low temperatures (<40), fan consequently drop to 0 RPM. So I thougt better algo should be as I wrote in a first message.

This command is good to use for headless setup, yes.

nan0s7 commented 10 months ago

Oh interesting! Perhaps that's a new condition they've added. Will have to play around with it.