1. 查看gpu的使用详情:
(1)查看gpu使用情况
nvidia-smi.exe # windows上
nvidia-smi -l #linux服务器上
# 显示的结果中 Volatile GPU-Util:浮动的GPU利用率;
(2)linux上查看进程占用gpu的情况:
##实用技巧:
##如果你在linux终端运行深度学习python脚本文件,运行中发现占用多个GPU和内存资源,则请先查看占用资源##的进程归属方是谁:
$ps -f PID号
##然后确认该进程可以kill掉情况下建议:
$kill -9 PID号
#ctrl+Z指令只能强制结束当前流程,无法退出进程,所以发现有问题后用ctrl+Z后还需要kill进程
2. 使用指定的GPU:
# 其中参数:
CUDA_VISIBLE_DEVICES=1 Only device 1 will be seen
CUDA_VISIBLE_DEVICES=0,1 Devices 0 and 1 will be visible
CUDA_VISIBLE_DEVICES="0,1" Same as above, quotation marks are optional
CUDA_VISIBLE_DEVICES=0,2,3 Devices 0, 2, 3 will be visible; device 1 is masked
CUDA_VISIBLE_DEVICES="" No GPU will be visible
方式1. 在python中指定GPU
# 方式1. 直接在python文件最开始指定GPU
import os
# os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID" # 默认,不需要这句
os.environ["CUDA_VISIBLE_DEVICES"] = "0" # 选择ID为0的GPU
# 方式2. 通过ID选择GPU
def selectGpuById(id):
os.environ["CUDA_DEVICE_ORDER"] = "PCI_BUS_ID"
os.environ["CUDA_VISIBLE_DEVICES"] = "{}".format(id)
## 方式3. session中指定GPU
with tf.Session() as ses:
with tf.device("/gpu:1"):
# 训练model的代码
## 字符说明:
##"/cpu:0" The CPU of your machine
##"/gpu:0" The GPU of yout machine ,if you have one
方式2. 在终端shell运行程序时指定GPU
命令行输入:
# 指定采用1号GPU运行*.py
CUDA_VISIBLE_DEVICES=1 python *.py