我在带有多个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)
让我知道这个