Control GPU fan speed

Hi. i am trying to control my GPU(Graphics card) fan speed using processing. is there any library or API to do that ?

  • my GPU : nvidia GTX1070
  • my OS : windows 10 / 64bit

Thanks in advance.
shoaib

I don’t know about processing internal comands, and not even about java methods for this, but i just searched for methods that would work with java in general and i didn’t find much useful… and if it’s not doable in java, then it can’t be done in Processing. But there are some ways to monitorize fanspeed apparently.

So i’d say no, it’s not doable, but i might have overlooked something. But i highly doubt that there is a special processing library for it.

1 Like

If this was Linux then there’s likely a terminal program to do this. You can then exec that from Processing / Java. Of course, it would almost certainly require admin rights, which is another issue.

I would see if there’s any Windows terminal program for this, and if there is see if you can call it from your sketch.

1 Like

Agreeing that this is unlikely.

Of course, if your GPU is being used to render your sketch, you do have a small amount of control over it. Render a billion polygons with it and the fan will probably kick onto high…

yeah! i know that. but its not useful actually. i need to control fan more precisely. thanks anyway: :smile:

NVidia has NVAPI which allows you to control fan speed and other stuff like voltage and frequencies of their cards, however not all cards support this (e.g. on my laptop the only way to control nvidia gpu fan speed is through manufacturer utility).

If you can control the fan speed with Afterburner it should be possible with NVAPI.

Now Processing runs on Java, so you would need to figure out how to call NVAPI from Java, either through JNA which is not super hard, or through JNI, for which you need to write some C code as well.

1 Like

Interesting! Putting our two answers together suggests this might be a possibility - https://github.com/arcnmx/nvoclock

2 Likes

Out of curiosity, why do you need to do this?