CUDA error: invalid device ordinal

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

RuntimeError: CUDA error: invalid device ordinal

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

nvidia-smi

比如我这里看了一下,只有两张1080 Ti的卡
在这里插入图片描述
(2)根据GPU的数量改以下代码里的进程数量
在这里插入图片描述
(3)运行成功

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

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Dartao/article/details/124150851