服务器是8卡的,说好了我用后4张,具体怎么用呢,现google吧。
为啥要用呢,因为报错:
RuntimeError: CUDA out of memory. Tried to allocate 20.00 MiB (GPU 0; 10.73 GiB total capacity; 1.03 GiB already allocated; 17.69 MiB free; 19.50 MiB cached)
pytorch在GPU并行方面还算很方便。在定义好model之后只需要使用一行:
model = torch.nn.DataParallel(model)
即可实现在所有GPU上并行运算。
但是有时候直接占用所的GPU是没有必要的,如果要指定GPU,可以在DataParallel中增加一个参数:
model = torch.nn.DataParallel(model, device_ids=[0,1])
比如下面就实现了只使用0,1编号的两块GPU。
这时候如果想使用2,3两块GPU,使用相同的代码:
model = torch.nn.DataParallel(model, device_ids=[2,3])