2010-01-29 2 views
7

Je travaille sur l'obtention d'une application CUDA pour surveiller également la température centrale du GPU. Cette information est accessible via NVAPI. Un problème est que je veux m'assurer que je surveille le même GPU que je cours sur mon code.Comment les ID de périphériques NVAPI se rapportent-ils aux ID de périphérique CUDA?

Cependant, il semble y avoir des informations suggérant que les ID de périphériques que je reçois de NvAPI_EnumPhysicalGPUs ne correspondent pas à ceux utilisés avec SetDeviceId.

Quelqu'un peut-il clarifier?

Répondre

1

J'ai vu une discussion intéressante à ce sujet here. Pour autant que je sache, ces chiffres ne sont pas directement corrélés.

0

Je l'ai testé sur mon ordinateur avec deux GPU NVIDIA GTX 550 ti.
Le résultat est que toutes les informations sont identiques, à l'exception de l'ID de bus.
Donc, dans nvapi, utilisez NvAPI_GPU_GetBusId, cela obtiendra un entier, comme 1, 2, ...
puis, dans l'API cuda, utilisez cudaDeviceGetPCIBusId, ceci obtiendra une chaîne, comme 0000: 01: 00.0.
comparer l'entier busID avec la deuxième partie de la chaîne BusID,
vous pouvez obtenir leur relation.