How do I set GPU core and memory clock programmatically on Windows?
Is there some API/library for this? I have an ATI Radeon 9000 Series graphics card and I need to lower its core/memory clock on W开发者_运维百科indows startup (I thought of making a small service for this but I never did this before).
I know it's possible (because RivaTuner does it somehow) but I just haven't figured out how.
Can point me to some resources/books/examples?
Thanks.
I'm also looking for a way to do this. Any ideas using the Nvidia or ATI SDK maybe?
Judging from results of google search, nvidia provides API for overclocking their GPUs, and there are some ATI tools available as well (though ATI tools look "unofficial"). However, there's no cross-platform API, and settings are probably extremely GPU-specific.
I'd strongly recommend to avoid overclocking GPU, becuase it'll be easy to fry or permanently damage it. To be fair, last cards I had were relatively resitant to overheating - one GF8400GS worked for a month with broken cooler without noticeable permanent damage. Of course, rendering scenes that used pixel shaders (while cooler was still broken) has been consistently causing surrealistic artifacts (in 3d apps) and corruption of desktop icons (on windows desktop), and system freezes - until cooler has been replaced.
So I'd recommend to avoid modifying any GPU settings (power/clock/whatever). If you're unhappy about power consumption, using different GPU might be a better idea. Radion 9000 is quite old, so it is possible that there are some newer budget cards that have more features and drain less power.
MSI Afterburner can be controlled from the command line. I imagine that you could set a profile with the reduced memory/core clocks and then apply it on startup through the command line.
I don't think either AMD/ATI or nVidia publishes how to do things like this. It's clearly possible, but from what I've seen you'd probably have to sign a non-disclosure agreement before they'd tell you how to do it.
That said, there is quite a bit of info publicly available -- Linux drivers can be very informative. I'm not sure whether (and if so, how much) they'll tell you about this aspect though.
I found a library that could be use full for you. It based on Python and so it is pretty much neat on the programming side.
https://github.com/mjmvisser/adl3
精彩评论