Ich habe ein Programm zur Temperaturüberwachung, das ich vor einiger Zeit geschrieben habe. Es überwacht die Temperaturen und Lüfter meiner AMD-Grafikkarten, prüft auf Lüfterausfall oder überhitzt. Das Problem damit ist, dass es im Voraus wissen muss, welcher Prozess die GPU (Graphics Processing Unit) verwenden wird, um es zu stoppen oder es sanft zu stoppen, um eine Überhitzung zu vermeiden.Wie bekomme ich die GPU-Nutzung pro Prozess?
Um mein Programm dynamischer zu machen, musste ich einen Weg finden, welcher Prozess die GPU verwendet, ähnlich wie der Prozess CPU-Zeit verwendet (Task-Manager). Eine solche Anwendung ist der Process Explorer von SysInternals.
Ich frage, wie kann ich das in Windows in C tun? Ich bin mir bewusst, dass es, wenn es so einen Weg gibt, Vista und höher als Ziel haben würde.
Was ist mit OpenCL-Anwendungen? Und Ihre Frage ist stark betriebssystemspezifisch (unter Linux ist das anders als unter Windows). –
Ja, Windows ist das Betriebssystem, auf das ich ausgerichtet bin. Und was ist mit OpenCL-Anwendungen? Es ist in der Tat wegen OpenCL, dass ich anfänglich meine Anwendung geschrieben habe, so dass meine GPU/s nicht überhitzt. – farmdve
Nur ein kurzer Hinweis: siehe [Process Hacker] (http://superuser.com/a/585597/297281) C [Quellcode] (https://github.com/processhacker2/processhacker2/search?utf8=% E2% 9C% 93 & q = GPU); Es sieht so aus, als ob direkte 3D-Statistik-API-Aufrufe dort verwendet werden. –