2010-01-29 3 views
7

Ich arbeite daran, eine CUDA-Anwendung zu bekommen, um auch die Kerntemperatur der GPU zu überwachen. Diese Informationen sind über NVAPI zugänglich.Wie hängen NVAPI-Geräte-IDs mit CUDA-Geräte-IDs zusammen?

Ein Problem ist, dass ich sicherstellen möchte, dass ich die gleiche GPU überwachen, wie ich meinen Code ausführen.

Es scheint jedoch Informationen zu geben, die darauf hinweisen, dass die Geräte-IDs, die ich von NvAPI_EnumPhysicalGPUs erhalte, nicht denen entsprechen, die mit SetDeviceId verwendet werden.

Könnte jemand klären?

Antwort

1

Ich sah eine interessante Diskussion darüber here.

Soweit ich sagen kann, haben diese Zahlen keine direkte Korrelation.

0

Ich teste es in meinem Computer mit zwei NVIDIA GPUs GTX 550 ti.
Das Ergebnis ist, dort sind alle Informationen identisch, außer für die Bus-ID.
Also, in nvapi, verwenden Sie NvAPI_GPU_GetBusId, dies wird eine ganze Zahl, wie 1, 2, ...
dann in cuda API, verwenden Sie cudaDeviceGetPCIBusId, dies wird eine Zeichenfolge, wie 0000: 01: 00.0 erhalten.
Vergleichen Sie die busID Ganzzahl mit dem zweiten Teil der BusID String,
können Sie ihre Beziehung erhalten.