cudaGetDeviceCount возвращает 1 вместо 2

У меня есть кластер GPU, состоящий из 2 Tesla M2050, и когда я выполняю свой код, cudaGetDeviceCount возвращает только 1. Если я пытаюсь установить устройство 1 с помощью cudaSetDevice, это выдает мне эту ошибку: неверные порядковые номера устройства. В диспетчере устройств windows оба устройства перечислены. При необходимости это мой исходный код

cutilSafeCall(cudaGetDeviceCount(&num_devices));

for (device = 0; device < num_devices; device++) {
      cudaDeviceProp properties;
      cudaGetDeviceProperties(&properties, device);
      printf("Device ID:\t%d\n", device);
      printf("Device Name:\t%s\n", properties.name );
      printf("Global memory:\t%d\n", properties.totalGlobalMem );
      printf("Constant memory:\t%d\n", properties.totalConstMem );
      printf("Warp size:\t%d\n", properties.warpSize );
}
devs=0;
ParseArguments(argc, argv);
cutilSafeCall(cudaSetDevice(devs));

любая помощь будет оценена

редактировать: вывод deviceQuery.exe

deviceQuery.exe Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

There is 1 device supporting CUDA

Device 0: "Tesla M2050"   
CUDA Driver Version: 5.50
CUDA Runtime Version:                          4.20   
CUDA Capability Major/Minor version number:    2.0  
...
...

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 5.50, CUDA Runtime Vers ion = 4.20, NumDevs = 1, Device = Tesla M2050


PASSED

Press <Enter> to Quit...
-----------------------------------------------------------

1 ответ

Если у вас есть два графических процессора CUDA в одном узле, а deviceQuery сообщает только об одном, рассмотрите следующие возможности:

  • Проверьте правильность работы обоих графических процессоров, запустив nvidia-smi. Если отображается только один, проверьте правильность сокета.
  • Убедитесь, что переменная окружения CUDA_VISIBLE_DEVICES не установлена.
Другие вопросы по тегам