Pycuda как узнать какое устройство запущено

У нас всего 4 устройства с графическим процессором. и у нас есть более 4 пользователей для запуска программы cuda, поэтому, прежде чем запускать свою программу, я хочу проверить, какое устройство не занято, иначе оно не выделит память. Но я не нашел функцию для получения этого тега. Я знаю, что когда мы хотим использовать устройство, мы вызываем «cudaSetDevice()», поэтому для каждого устройства должен быть тег. и что «nvidia-smi» может получить более подробную информацию, включая, какой процесс использует какое устройство и сколько памяти он использует. Так кто может мне помочь?


person Rico.Wu    schedule 31.10.2017    source источник


Ответы (1)


Значения для cudaSetDevice начинаются с 0, а затем монотонно увеличиваются для каждого дополнительного устройства. В качестве альтернативы вы можете установить переменную среды CUDA_VISIBLE_DEVICES, чтобы выбрать, какое устройство использовать. (см. https://devblogs.nvidia.com/parallelforall/cuda-pro-tip-control-gpu-visibility-cuda_visible_devices/).

Чтобы получить информацию о том, что использует устройство, вам необходимо использовать API драйвера: http://docs.nvidia.com/cuda/cuda-driver-api/index.html

person James Sharpe    schedule 31.10.2017