建立网站时要采用一定的链接结构可采用的基本方式有,wordpress pv,长沙百度快速优化排名,网站建设群写在前面 在使用GPU进行深度学习训练经常会遇到下面几个问题#xff0c;这里做一个解决方法的汇总。 #x1f415;Q1#x1f415;#xff1a;在一个多卡服务器上#xff0c;指定了cuda:1#xff0c;但是0号显卡显存还是会被占用一定量的显存。 这个问题很经典的出现场景就… 写在前面 在使用GPU进行深度学习训练经常会遇到下面几个问题这里做一个解决方法的汇总。 Q1在一个多卡服务器上指定了cuda:1但是0号显卡显存还是会被占用一定量的显存。 这个问题很经典的出现场景就是0号卡已经几乎要被占满了但是1号卡空的很。本想指定在1号卡上跑DL结果因为一直会占用0号卡一定量的显存但0号卡此时已经不够显存了就会反复报CUDA OUT OF MEMORY. A1这个问题是因为模型的部分初始化操作会默认在0号卡上进行后续的cuda:1没法将这个初试化操作放到1号卡上所以就占用了部分0号卡的情况。解决的方法可以直接在代码运行的时候指定模型的可见显卡环境。比如现在有一台双卡服务器现在要将代码指定在1号卡进行可通过下面代码运行
CUDA_VISIBLE_DEVICES1 python3 train.py其中CUDA_VISIBLE_DEVICES1的作用是将你的1号显卡暴露给这个代码这个代码在运行过程中只看到了这张卡这时候你代码中可以通过调用cuda:0就能够实现只占用这张卡的内存了。另外CUDA_VISIBLE_DEVICES这里指定的顺序也有讲究如果是如下这样指定
CUDA_VISIBLE_DEVICES0,1 python3 train.py那代码中如果是调用cuda:0的话对应调用的就是0号卡但如果是按照下面这样指定的话
CUDA_VISIBLE_DEVICES1,0 python3 train.py调用cuda:0的话对应调用的就是1号卡。
Q2在一个多卡服务器上想要同时利用多张卡同时训练。 这个一般就是用于模型需要较多显存但是单卡的显存不够的情况了。 A2使用如下代码即可 if torch.cuda.device_count() 1:model nn.DataParallel(model)注意在模型分布到多卡上之后输入数据直接按照下面方式存入显存即可
input input.cuda()数据会进行自适应分流到各个显卡上的。
To be continued…