前言
訓練時使用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加速;
完