在多卡的GPU服务器,当我们在上面跑程序的时候,当迭代次数或者epoch足够大的时候,我们通常会使用nn.DataParallel函数来用多个GPU来加速训练。
在服务器上面用双卡训练不了的原因通常是代码当时并不支持双卡,只能占用单卡的显存,所以才会显示out of memory。需要在代码上加上一行。(train和test都要加,不然会报错)
GPU占用双卡的命令
CUDA_VISIBLE_DEVICES=0,1 nohup python train.py &
py文件里有以下代码也会导致只占用一个卡,删掉即可
os.environ["CUDA_VISIBLE_DEVICES"] = "0"