Io corro questo comando in un guscio e ottenere:Incoerenza degli ID tra 'nvidia-smi -L' e cuDeviceGetName()
C:\Users\me>nvidia-smi -L
GPU 0: Quadro K2000 (UUID: GPU-b1ac50d1-019c-58e1-3598-4877fddd3f17)
GPU 1: Quadro 2000 (UUID: GPU-1f22a253-c329-dfb7-0db4-e005efb6a4c7)
Ma nel mio codice, quando corro cuDeviceGetName (.. , ID) dove ID è l'ID fornito dall'uscita nvidia-smi, i dispositivi sono stati invertiti: GPU 0 diventa Quadro 2000 e GPU 1 diventa Quadro K2000.
È un comportamento previsto o un bug? Qualcuno sa una soluzione alternativa per far sì che nvidia-smi ottenga l'ID "reale" delle GPU? Potrei usare l'UUID per ottenere il dispositivo corretto con nvmlDeviceGetUUID() ma usare l'API nvml sembra un po 'troppo complicato per quello che sto cercando di ottenere.
This domanda discutere come Čuda assegnare ID ai dispositivi senza chiara conclusione.
Sto usando CUDA 6.5.
EDIT: Ho dato un'occhiata alla manpage di nvidia-smi (avrei dovuto farlo prima ...). Essa afferma:
"Si raccomanda che gli utenti desiderano consistencyuse sia UUDI o bus PCI ID, dal momento che l'enumerazione dispositivo ordinamento non è garantito per essere coerenti"
Stai ancora cercando un kludge ...
Comunque Anche la documentazione precisa inoltre che si ordina da pciBusId, dubito che sia l'unico criterio da quando sulla mia macchina 2x Tesla K80 sono sullo stesso pciBusId. Mi chiedo quale non sia l'ordine corretto per quei due bambini. –
"2x Tesla K80 sono sullo stesso pciBusid" non possibile. Dai un'occhiata al tuo dispositivoQuery output –
Beh, ci possono essere diverse carte sullo stesso pciBusId (segnalato da http://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__DEVICE.html#group__CUDART__DEVICE_1g1bf9d625a931d657e08db2b4391170f0), solo differenziabili da pciDeviceID. Tensorflow per esempio stampe: Prima carta: pciBusID: 0000: 00: 04.0 seconda carta: pciBusID: 0000: 00: 05.0 Tuttavia, entrambi hanno lo stesso ID bus. "0000: 00: 05.0" è creato da "[dominio]: [bus]: [dispositivo]. [Funzione]" (vedere http://docs.nvidia.com/cuda/cuda-runtime-api/group__CUDART__DEVICE. html # group__CUDART__DEVICE_1gea264dad3d8c4898e0b82213c0253def) –