我正在尝试使用基于PyTorch框架构建的Unet3D模型进行预测,并且在此过程中使用了多个GPU。
import torch
import os
import torch.nn as nn
os.environ['CUDA_DEVICE_ORDER']='PCI_BUS_ID'
os.environ['CUDA_VISIBLE_DEVICES']='0,1,2'
model = unet3d()
model = nn.DataParallel(model)
model = model.to('cuda')
result = model.forward(torch.tensor(input).to('cuda').float())
但是该模型仍然只使用了1个GPU(第一个GPU),我会遇到内存错误。
CUDA out of memory. Tried to allocate 64.00 MiB (GPU 0; 11.00 GiB total capacity; 8.43 GiB already allocated; 52.21 MiB free; 5.17 MiB cached)
在推理阶段,我应该如何使用多个GPU?我上面的脚本中有什么错误?