Pycuda如何知道哪个设备正在运行

时间:2017-10-31 10:47:15

标签: python cuda pycuda

我们只有4个GPU设备。我们有超过4个用户来运行cuda程序,所以在我运行我的程序之前,我想检查哪个设备不忙,或者它会分配内存失败。但我还没有找到一个获取此标签的功能。我知道什么时候我们想要使用我们称之为的设备" cudaSetDevice()" ,因此每个设备必须有一个标签。那个" nvidia-smi"可以获得更多细节,包括哪些进程正在使用哪个设备以及它使用了多少内存。谁可以帮助我?

1 个答案:

答案 0 :(得分: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