6

AMDグラフィックスカードの温度とファンを監視し、ファンの障害または過熱をチェックする、しばらく前に書いた温度監視プログラムがあります。問題は、どのプロセスが GPU (グラフィックス プロセッシング ユニット) を使用するかを事前に知る必要があることです。これは、プロセスを強制終了するか、過熱を避けるために正常に停止させるためです。

プログラムをより動的にするために、どのプロセスが CPU 時間を使用しているか (タスク マネージャー) と同じように、どのプロセスが GPU を使用しているかを見つける方法が必要でした。そのようなアプリケーションの 1 つが、SysInternals の Process Explorer です。

C の Windows でこれを行うにはどうすればよいですか? そのような方法があるとすれば、Vista 以降が対象になることは承知しています。

4

2 に答える 2

2

Tesla ボードまたはハイエンド Quadro をお持ちで、Windows Server 2008 R2 64 ビット、Windows 7 64 ビット(または 32/64 ビット Linux)で実行している場合は、 NVMLを使用してそれを行うことができます。

最新のNVML SDK (Tespla Deployment Kit)をダウンロードして、次の 2 つの機能を確認してください。

nvmlReturn_t nvmlDeviceGetComputeRunningProcesses (nvmlDevice_t device, 
                                                   unsigned int  infoCount,
                                                   nvmlProcessInfo_t * infos)

nvmlReturn_t nvmlDeviceGetTemperature (nvmlDevice_t device,
                                       nvmlTemperatureSensors_t sensorType,
                                       unsigned int * temp)

気をつけて:

nvmlReturn_t nvmlDeviceGetFanSpeed (nvmlDevice_t device, unsigned int * speed)

実際のファン速度ではなく、「デバイスのファンの意図した動作速度を取得します」。そのため、ファンの障害を確認するために使用することはできません。

GeForce ボードで動作する nvmlDeviceGetComputeRunningProcesses の置き換えについては知りませんが、Windows NvAPI (GeForce でも動作する) では、ファン速度と温度の両方を照会できます。

于 2012-10-23T10:51:44.433 に答える