我需要確定給定的CUDA設備是否連接了顯示器。我不知道這樣做的CUDA功能。如何在Linux上獲取連接顯示器的數量到gpu?
在Windows上,我可以使用NVAPI獲取每臺設備的連接顯示器數量和PCI總線/插槽ID。使用後者,我可以找到匹配的CUDA設備(通過調用cudaGetDeviceProperties)。
如何在Linux上執行相同的NVAPI操作?
從技術上講,我需要的是一個Linux替代以下代碼:
NvAPI_Initialize();
NvPhysicalGpuHandle gpuHandles[64];
NvU32 numOfGPUs;
NvAPI_EnumPhysicalGPUs(gpuHandles, &numOfGPUs);
for (int i = 0; i < numOfGPUs; i++)
{
NvU32 connected_displays = 0;
NvU32 busId = 0;
NvU32 busSlotId = 0;
NvAPI_GPU_GetConnectedDisplayIds(gpuHandles[i], NULL, &connected_displays, NULL);
NvAPI_GPU_GetBusId(gpuHandles[i], &busId);
NvAPI_GPU_GetBusSlotId(gpuHandles[i], &busSlotId);
printf("Current device: %d\n", i);
printf("Number of connected displays: %u\n", connected_displays);
printf("Bus id: %u\tBus slot id: %u\n", busId, busSlotId);
}
NvAPI_Unload();
也許使用'lsof'命令。或者'/ proc /'下的一些深層次的東西。 –
你可以檢測monito是否開啓/關閉cuda?因此,當你有了這個id時,你可以調用另一個函數,也許......!? – alap
@ Laszlo-AndrasZsurzsa我認爲這與cuda或GPU沒有任何關係。 – hthms