引言
- 场景:如下图所示一般一个服务器上有多个GPU的时候可能每个GPU都有人在用,而默认GPU使用是编号0那一块儿,那么要使用的时候就要指定属于自己的GPU来运算。
- 下图为展示图(V100),与下面的另一个展示图不一致,这个主要是展示使用
nvidia-smi指令后的一个结果(Memory-Usage为使用占比,后面要用于比对设置指定GPU是否成功,默认为第0块儿,就是那个左边第一列N/A上面的编号0)

那么使用单个GPU运算的时候,如何指定某个GPU呢?
Paddle设置指定GPU(已验证有效)
- 下图为需要传参的方式指定,那么直接命令行执行该py文件的时候指定参数
--device即可,如下图所示(我指定的是第四块)




- 当然如果不是传参方式,也可以在代码中设置(未验证)
- 根据device关键字找到
paddle.set_device()所在行,改写成 paddle.set_device('gpu:3')即可
- 貌似paddle2.3版本后不能这样用了,需要
paddle.device.set_device('gpu:3'),这个仅供参考啦
Pytorch设置指定GPU(未验证)
- 首先pytorch设置device有三种方式(单卡的情况,多卡需要添加其他设置的)
- 1
.to(device),可以指定使用CPU或GPU
device = torch.device("cuda:0" if torch.cuda.is_available() else "cpu")
device = torch.device("GPU/CPU")
model.to(device)
- 2
.cuda(),只能指定GPU(官方建议方式)
import os
os.environ['CUDA_VISIBLE_DEVICES']='2'
model.cuda()
CUDA_VISIBLE_DEVICES=1 python xxx.py
import torch
torch.cuda.set_device(1)
- 上述未验证的部分待后续验证后会进行补充和更新,当前仅供参考(因为学习的时候顺便看了下torch如何设置,为了方便以后查找故将指定GPU部分合并到一篇文章中)