看了好多教學都提到了使用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函數即可實現。
一定要注意的是,CUDA_VISIBLE_DEVICES,每!一!個!字!母!必須完全寫對,如果不小心寫成了CUDA_VISIBLE_DIVICES或CUDA_VISIABLE_DEVICES ,程式碼是不會報錯的,但是GPU呼叫不會成功,
以上是python怎麼利用gpu加速的詳細內容。更多資訊請關注PHP中文網其他相關文章!