Month: February 2015

VGA card cooling, the Nvidia case

Neighborhood-Too-Noisy
So, you are building a PC and you want it to be ultra-quiet. You put together a nice rig but you now have an issue :
Your custom VGA cooler is making hell of a noise, what the f*** is happening??

Well, let me guess, you have chosen one of the latest Nvidia boards (GTX7xx or GTX9xx)?

Yes!!! then here is where the issue is coming from :

First, How it works?

First thing first, let me remind how the fan speed is controlled :
fan speed curveThe processor, should it be CPU or GPU is equiped with a temperature sensor, this temperature sensor has the critical task to report the actual temperature of the core of the processor so that the cooling can be adapted and in case it is not enough, the processor will throttle (i.e. limit its processing speed to limit the heat generation to what is bearable with the installed cooling).

So, what does the processor do with this data. Well, it has an embedded cooling profile and that temperature will be then put in correspondance with a fan speed percentage. In the curve besides, a 80° Celcius temperature will lead the fan to spin at 50% of the maximum speed. More accurately, the board will deliver a 50% PWM signal to the fan (this one might be at 50% of its maximum speed but it can be as well at 70% or 80% or maybe 20%, that will then be matter of the fan circuit).

 

nvidiaThis is how Intel or AMD (or even the older Nvidia) works. In simple terms : give me a temperature input, I give you a PWM output. Nothing more, nothing less, very straight forward.

For the tinkerers, there are then some utils like EVGA Precision X, MSI Afterburner, Speedfan,… that can allow you to set the profile I just introduce before. In those case, you basically just override the processor settings.

 

 

 

I tried to do a schematics :

normal mode

 

 

Now, what about the latest Nvidia?

Now Nvidia has added one more layer in this process. Basically, the board is not satisfied if it does not know the speed of the fan and ifthe fan speed is not as intended, then the board will adjust the actual PWM output. Typically the standard Nvidia cooler comes with a 4000 RPM blower fan, so let’s assume it is linear and 50% PWM means 50% of fan speed and then 2000 RPM.

In detail

  • The temperature sensor measures 80° Celcius, the GPU then says it needs to give 50%
  • The GPU either through its profile or through the override by one of those softwares I mentioned will output a 50% PWM signal
  • The board will then output at first a 50% PWM signal, monitor how the fan reacts, then adjust the PWM output to reach the desired fan speed. if it measures 1900 RPM, it will increase slightly the PWM signal, if it measures 2100, it will decrease slightly the PWM signal.

In theory, this is actually a good thing as it will ensure that all fans from a board to another run at same speed, and then ensure the same cooling performance (sorry if this reason seems a bit creative, that is the best I came up with so far).

But in practice, in our case we have a VGA cooler (the one from the photo is ARCTIC Accelero Xtreme) that runs with a maximum fan speed of 2000 RPM. While our VGA board came with another fan which spinned faster (as said before, 4000 RPM). therefore, what happens is that :

  • The temperature sensor measures 80° Celcius, the GPU then says it needs to give 50%
  • The GPU either through its profile or through the override by one of those softwares I mentioned will output a 50% PWM signal
  • The board will then output at first a 50% PWM signal, monitor how the fan reacts, then adjust the PWM output to reach the desired fan speed (i.e. 2000 RPM), this will only happen when PWM signal reaches 100% and therefore it is at full speed.

In schematics, this will then give :
Nvidia mode

There you go, our fan who was supposed to run at 1400 RPM is now at 2000 RPM and looked like the control does not work on Nvidia board.

This is set in the VBIOS of the board and can not be (so far) overriden. the only thing you can override is the temperature profile, but the PWM to RPM curve is given for your curve, so if you use a cooler with a native speed far below the original fan of your board, you might end up with a fan that is ALWAYS at full speed.

Disclaimer:
This is purely the result of observation and in no way official source from Nvidia. Some data might then be not totally accurate. if Nvidia official wants to rectify the data, I’ll gladly do it after reception of more explanation.