只分配了第一个gpu(尽管我在pytorch-cuda框架中使其他gpu可见)



我在带有多个cuda设备的linux服务器中的pytorch framwework中使用cuda。

问题是尽管我指定了可以显示的某些gpu,程序只在第一个gpu中使用

(但其他程序运行良好,其他指定的GPU分配良好。正因为如此,我认为这不是nvidia或系统问题。nvidiasmi显示所有gpu都很好,没有问题。我以前用以下代码分配gpu没有问题(除非系统不工作()

os.environ["CUDA_DEVICE_ORDER"]="PCI_BUS_ID"
os.environ["CUDA_VISIBILE_DEVICES"] = str(args.gpu)

我是在运行main函数之前写的。它对同一系统中的其他程序也能很好地工作。

我打印了args.gpu变量,可以看到该值不是";0〃;。

你试过这样的东西吗?

device = torch.device("cuda:0,1" if torch.cuda.is_available() else "cpu") ## specify the GPU id's, GPU id's start from 0.
model = CreateModel()
model= nn.DataParallel(model,device_ids = [0, 1])
model.to(device)  

让我知道这个

最新更新