NVML API を使用して定期的に NVIDIA Tesla K20 GPU (Kepler アーキテクチャ) の電力使用量を測定するコードを書いています。
変数:
nvmlReturn_t result;
nvmlEnableState_t pmmode;
nvmlDevice_t nvmlDeviceID;
unsigned int powerInt;
基本コード:
result = nvmlDeviceGetPowerManagementMode(nvmlDeviceID, &pmmode);
if (pmmode == NVML_FEATURE_ENABLED) {
result = nvmlDeviceGetPowerUsage(nvmlDeviceID, &powerInt);
}
私の問題は、nvmlDeviceGetPowerManagementMode
常に戻ってくることNVML_ERROR_INVALID_ARGUMENT
です。これをチェックしました。
NVML API ドキュメントには、が無効またはであるNVML_ERROR_INVALID_ARGUMENT
場合に が返されると記載されています。nvmlDeviceID
pmmode
NULL
nvmlDeviceID
GPUと一致するプロパティを照会できるため、間違いなく有効です。しかしpmmode
、ドキュメンテーションにはReference in which to return the current power management mode
. 念のため、enable 値を割り当ててみましたが、結果は同じでした。
システムの他のユーザーがこの関数を使用して独自のライブラリを作成しており、問題に直面していないため、私は明らかに何か間違っています。私は彼らに連絡することができません。この機能を正しく動作させるには、何を修正すればよいですか?