Question From where should I take PWM control signal?

Imacflier

Distinguished
Jan 19, 2014
574
27
19,090
Hi, all,

I am building a custom loop which will contain both the GPU and the CPU. Both the loop pump and the radiator fans are PWM controlled. I can obtain the PWM control signals from either the GPU (intercepting the old GPU temperature fan control signal) or from the motherboard (the motherboard pump/fan control signal).

In, essence I am asking whether to control the pump speed and radiator fan speeds based on the GPU or the CPU temperature. Or control the fan from the GPU and the pump from the CPU, or the reverse?. Or design a circuit to control both the pump and the radiator fan based on whichever of the two signals is "highest"? (So many directions from which to choose and so little knowledge and experience!)

Please give me the logic behind your advice so that I may learn something!

TIA

Larry
 
I am asking whether to control the pump speed and radiator fan speeds based on the GPU or the CPU temperature.
Or control the fan from the GPU and the pump from the CPU, or the reverse?.
Or design a circuit to control both the pump and the radiator fan based on whichever of the two signals is "highest"?
Do not control pump.
Set it to constant speed with acceptable sound levels.

For fans - you want them to be controlled by highest temperature (cpu or gpu). This will depend of type of your workload.
You can also set one fan to be controlled by cpu, the other by gpu.
 
Update your post to include full system hardware specs and OS information.

Include PSU: make, model, wattage, age, condition (original to build, new, refurbished, used)?

Disk drive(s): make, model, capacity, how full?

List of all connected peripherals.
Requested data follows; in return, please explain how any of this data can possibly affect the answer to my question!

CPU: I9-9900KS
GPU: RTX 3080
OS: Windows 11 Pro
PSU: Corsair SF1000 (NIB)
System Drive: 4TB NVME, 30% full
Storage Drive: 4TB NVME, empty
NAS: 30 TB, ~60% full over 5 6TB IronWolf HDDs
Monitor: Samsung 49" Odyssey OLED (G93SC) Series

Larry
 
First factor: in most liquid-cooled systems there is a small dilemma with an easy common solution. There are two main factors impacting the rate of heat removal in the loop. The pump speed impacts the rate of moving heat from its source (CPU or GPU, in your case) to the radiator. The Rad Fans' speed determines the rate of removing heat from the rad to air expelled outside the case. IF one has BOTH the pump and Rad Fan speeds automatically and continuously adjusted according to one temperature sensor we get a problem because the response times of the two speed-controlled devices are different. So when temperature rises BOTH devices speed up, but the actual impact on the real temperature at the sensor happens faster from one device's actions. Shortly thereafter the impact of the action of the other device hits the system, normally resulting in an overshoot of the intended target (temperature) and the temperature change result is too large. This results in the control system sending out a signal to change back in the opposite direction to fix that off-target result, and again BOTH devices react with the same delay of response and overshoot but in the opposite direction. Repeat. Repeat. etc. The common solution is to fix the speed of ONE of the devices and have ALL temperature control done by automatic manipulation of the speed of only the other device. Most commonly that is done by making the PUMP run full speed always, although some systems allow the user to alter that pump speed setting to some other lower FIXED speed. There are a few AIO systems on the market that actually DO alter PUMP speeds automatically via PWM signal, but they do that my intervening and custom-adjusting the PWM signal for the PUMP only and its rate of changes to avoid this repetitious overshoot issue. So IF the equipment you buy requires a PWM speed signal to the PUMP, do as they say. BUT if you are building this custom loop yourself, I strongly advise you do the common approach and have the PUMP speed always full speed.

To your original question, though, assuming that you need the speed for only the RAD FANS to be guided by a temperature sensor - which sensor? My suggestion is to use the one in the CPU chip, commonly used as the ONLY option for the CPU_FAN header. There is a substantial correlation of the workload (and hence of heat generation) in the CPU and GPU chips, but there are lots of times where the CPU is working harder without heavy use of complex graphics. So I think it more important to ensure that the CPU is kept cool enough at all times and the GPU might be over-cooled at those times.. My GUESS is that the reverse (GPU used much more than CPU and thus getting hotter) is rare.

Besides that estimation of which sensor is preferred there is the practical question of how to access the temp sensor inside the GPU. There never has been a "standard" way for that. The makers of video cards DO know how to deal with THEIR OWN cards and can access that info, use it for on-card cooling fans and display it for you in their own software tools. But how to access that info by software you custom design and run on the mobo to control your own cooling system is NOT simple! The closest you MIGHT get is to intercept the fan speed control signals the card feeds to its own on-card fan, and that may or may not be a common PWM signal. Further, then you need to work on how many fans can be powered and controlled from that signal source - the power supplied by the video card to its own cooling fans will have a limit, just as any mobo fan header does. And once you get that to work, then ALL your system cooling is being controlled by the software of the VIDEO card and configured using the video card's software tool, not by anything on the mobo.
 
Do not control pump.
Set it to constant speed with acceptable sound levels.

For fans - you want them to be controlled by highest temperature (cpu or gpu). This will depend of type of your workload.
You can also set one fan to be controlled by cpu, the other by gpu.
Thank you so much for the direct and pertinent response.

I expect (hope) to use a single 200mm fan paired with a (200 x 200 x 85) radiator . That should be adequate to cool well over the total capacity of the 1000 Watt power supply, and therefore sufficient.

Since, at this time, the highest temperature is unknowable, I think it best to design a circuit to select the PWM signal which is associated with the highest temperature.

Thanks, again

Larry
 
@Paperdoc Very nice post! I had not considered the effect of hysteresis in the system....but it is obviously something to be taken into account!

I think I will take both yours and SkyNetRising's advice: set the pump speed to the fastest speed tolerable based on pump loudness, intercept the PWM fan signal from the GPU, compare it with the PWM fan signal from the CPU and generate a fan control signal in a tracking amplifier choosing the higher temp as the signal to operate the radiator fan.

HMMMM, and here I though this was supposed to be fun and anot a refresher in heat transfer and fluid flow!

Larry
 
Do not control pump.
Set it to constant speed with acceptable sound levels.

For fans - you want them to be controlled by highest temperature (cpu or gpu). This will depend of type of your workload.
You can also set one fan to be controlled by cpu, the other by gpu.
I don’t think controlling fans like that would work? If your GPU is at 80 and that fan is going 100% but your CPU is sat in the 50’s and barely spinning you’re just reducing the overall cooling for the largest source of heat in the system
 
If your GPU is at 80 and that fan is going 100% but your CPU is sat in the 50’s and barely spinning you’re just reducing the overall cooling for the largest source of heat in the system
Since cpu and gpu are in the same custom loop, rising temperature of gpu will also rise temperature for cpu.
Fan curves will need to be tuned.

Problem is - OP intends to use radiator with a single fan. Then this approach can not be used.
 
My Goodness! Let me try to clarify what I think is the way.

1. Set pump speed.

2. Sample CPU Fan Speed Request value.

3 . Sample GPU Fan Speed Request value.

4. Set fan speed to the larger of 2. or 3.

5. Go to 2.

And that should vary the fan speed over the full range depending on whether the CPU or the GPU 'wants' more cooling, and how 'badly', and also deals with hysteresis!

Does that make sense to all concerned? Or is there a 'better' way?

I would like, very much, to get concurrence before I try and limber up my circuit design skills!

Larry
 
@Imacflier

Re:

"please explain how any of this data can possibly affect the answer to my question!"

System specs are simply a starting point.

Very much like getting work done on an automobile. The mechanics/technicians need to know the automobile make, model, year, mileage, engine, etc..

Another example: Doctors start with basic requirements: Heart rate, blood pressure, respiration, lab tests, weight, height, medical history.

Basics.

= = = =

There are members here that can immediately recognize some component(s) or component combinations known to be problematic.

System behavior, error codes, history, and performance can then be used to help narrow potential culprits and thus directly lead to answer.

Or possibly lead to other questions that will, in turn, lead to an answer.
 
Since cpu and gpu are in the same custom loop, rising temperature of gpu will also rise temperature for cpu.
Fan curves will need to be tuned.

Problem is - OP intends to use radiator with a single fan. Then this approach can not be used.
It depends on the load. It will rise the temperature of the water but if that water is still adequately cooling the other component it won’t rise enough to trigger the second fan. A 20 degree jump in GPU might only bump up the CPU by 5 and your GPU is throttling
 

TRENDING THREADS