前言
训练时使用GPU可以加速程序运行,本文介绍如何使用GPU加速。
前提条件
1. 机子有GPU显卡,并安装GPU显卡驱动;
2. 安装GPU的使用环境,CUDA等;
3. 打开nvidia-smi中的PM属性;
4. 程序中指定使用的GPU设备;
本文主要讲解如何指定GPU设备开启GPU进行加速。
操作过程
方法一:
看了好多教程都提到了使用 os.environ["CUDA_VISIBLE_DEVICES"] = "1" 或者export CUDA_VISIBLE_DEVICES=1,但是我加进代码里面速度并没有提高,查了很久才找到问题所在,当你的电脑有两块以上GPU时,上面这两句代码才起作用!如果电脑只有一块GPU,需要将参数的“1”改成“0”才可以,否则找不到“1”号设备,它就会默认使用CPU,速度不会提高。
方法二:
如果是在终端中运行python程序,使用命令:CUDA_VISIBLE_DEVICES=0 python filename.py即可
方法三:
如果有多块卡,想要指定多个gpu训练,可以这样设置:
def set_gpus(gpu_index): if type(gpu_index) == list: gpu_index = ','.join(str(_) for _ in gpu_index) if type(gpu_index) ==int: gpu_index = str(gpu_index) os.environ["CUDA_VISIBLE_DEVICES"] = gpu_index
通过调用set_gpu函数即可实现。
将set_gpu函数加在程序入口文件很前面的位置,保证程序能执行这句;另外,第一块GPU如果利用率低,可以通过设置tf.Session()的config参数来指定gpu显存利用率,第二块卡没有用的原因有可能是代码本身是不支持多GPU的,需要修改代码。
另外, 打开nvidia-smi中的PM属性,可以使用命令
nvidia-smi -pm 1
参考
1. python开启GPU加速;
完