CUDA error: invalid device ordinal

使用服务器进行单机多卡数据并行训练的时候,出现了一个小问题,本来以为可以直接创建4个process,可以4路数据并行,结果运行时发现报以下错:

RuntimeError: CUDA error: invalid device ordinal

原因:当前设备的GPU数量与cuda数量不匹配,
解决方案:
(1)先使用nvidia-smi命令查看服务器GPU数量

nvidia-smi

比如我这里看了一下,只有两张1080 Ti的卡
CUDA error: invalid device ordinal_第1张图片
(2)根据GPU的数量改以下代码里的进程数量
CUDA error: invalid device ordinal_第2张图片
(3)运行成功

#这里是调用cuda设备(GPU)
device = torch.device("cuda:{}".format(rank))

CUDA error: invalid device ordinal_第3张图片

你可能感兴趣的:(炼丹之DL,分布式,pytorch)