多个gpu训练方法以及为何运行程序只gpu0运行(CUDA out of memory. Tried to allocate) | 您所在的位置:网站首页 › 两个显卡只有一个工作 › 多个gpu训练方法以及为何运行程序只gpu0运行(CUDA out of memory. Tried to allocate) |
一,多个gpu训练方法
如果gpu还不错,不要改batchsize 一,这种方法偶尔有用,但是如果在别的地方使用了别的方法指定gpu,还是会只使用gpu0 import os os.environ['CUDA_VISIBLE_DEVICES'] = '1,2'二,这种效果最弱,最常用,方便 CUDA_VISIBLE_DEVICES=1,2 python train.py三,最好用的、绝对不会出错的device,缺点是只能指定一个,或者说用这种方法我不会指定多个gpu 一,如何查看在哪个gpu运行。 当我print(torch.cuda.device_count())输出结果甚至是8(个gpu),但是仍然报错,最靠谱的还是看进程 在你的文件路径下,命令行输入 nvidia-smi 只用方法三可以,但是方法三只能指定在一个gpu上训练,当然其中我也试过用多个gpu训练 net = torch.nn.DataParallel(model, device_ids=[0, 1, 2])但是会报错似乎是在多个gpu梯度无法求导的错误,请指教。 参考连接 |
CopyRight 2018-2019 实验室设备网 版权所有 |