一、命令行運行python程序時
首先查看哪些GPU空閒,nvidia-smi顯示當前GPU使用情況。
nvidia-smi
如下圖所示:服務器中的兩個顯卡,編號爲0、1 . 都被同一個進程 PID 3016 佔用。
GPU:GPU 編號;
Name:GPU 型號;
Persistence-M:持續模式的狀態。持續模式雖然耗能大,但是在新的GPU應用啓動時,花費的時間更少,這裏顯示的是off的狀態;
Fan:風扇轉速,從0到100%之間變動;
Temp:溫度,單位是攝氏度;
Perf:性能狀態,從P0到P12,P0表示最大性能,P12表示狀態最小性能(即 GPU 未工作時爲P0,達到最大工作限度時爲P12)。
Pwr:Usage/Cap:能耗;
Memory Usage:顯存使用率;
Bus-Id:涉及GPU總線的東西,domain🚌device.function;
Disp.A:Display Active,表示GPU的顯示是否初始化;
Volatile GPU-Util:浮動的GPU利用率;
Uncorr. ECC:Error Correcting Code,錯誤檢查與糾正;
Compute M:compute mode,計算模式。
- 指定空閒的GPU運行python程序
CUDA_VISIBLE_DEVICES=0,1 python test.py
- 在python程序中指定GPU
在 train.py 最上方,設定使用的GPU 編號, 當這兩行代碼註釋掉時,訓練會自動使用該服務器的所有資源
import os
os.environ["CUDA_VISIBLE_DEVICES"] = "1"
每 10s 顯示一次GPU使用情況, Xshell 中 CTRL + C 中止:
watch -n 10 nvidia-smi