看了好多教程都提到了使用 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
1
2
3
4
5
6
通過調用set_gpu函數即可實現。
Attention:
一定要注意的是,CUDA_VISIBLE_DEVICES,每!一!個!字!母! 必須完全寫對,如果不小心寫成了 CUDA_VISIBLE_DIVICES 或者 CUDA_VISIABLE_DEVICES ,代碼是不會報錯的,但是GPU調用不會成功,排查問題浪費了我好幾個小時。。。切記!
---------------------
作者:aaon22357
來源:CSDN
原文:https://blog.csdn.net/aaon22357/article/details/82733218
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!