很多時候,當從git上拿來一個項目,有需要基於的環境,比如基於:python3.7 cuda10.0。而本地環境python=3.6 cuda=0.8。而計算機同時需要支持多個版本的訓練任務。下面給出一種解法。
先看一下效果:(base[py3.6]環境基於cuda8.0,open-mmlab[py3.7]基於cuda10.0)
這里的系統環境變量已經將cuda設置為8.0相關的內容。
1 環境安裝
安裝cuda8.0和cuda10.0到計算機,這里不再詳述。
2 虛擬環境創建
2.1 打開Anaconda Prompt創建第二個虛擬環境
conda create -n open-mmlab python=3.7 -y
2.2將Prompt窗口定位到虛擬環境主目錄下(參考這里)
執行以下命令:
mkdir .\etc\conda\activate.d
mkdir .\etc\conda\deactivate.d
得到下圖的文件夾
在activate.d中創建env_vars.bat,內容為:
@set CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
@set CUDA_NVVP=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp
@set CUDA_lib=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64
@set OLD_PATH=%PATH%
@set PATH=%CUDA_PATH%;%CUDA_NVVP%;%CUDA_lib%;%PATH%;
就將cuda10.0對應的庫添加到了臨時系統環境變量中。
在deactivate.d中創建同名文件env_vars.bat,內容為:
@set PATH=%OLD_PATH%
將環境變量重置為原始的內容。
下面開始測試
base環境下
激活虛擬環境
這樣就能在不同虛擬環境下使用不同的cuda進行訓練和測試任務。
cuda版本切換的坑
搭建tensorflowgpu-1.5和pytorch-gpu=1.5虛擬環境,並根據相應環境安裝不同版本的CUDA和cudnn,安裝完成后針對不同虛擬環境切換不同的cuda版本,網上說修改相應環境變量就可以了利用nvcc –V查詢切換成功,但pytorch-gpu的cuda不可用,tensorflow-gpu顯示gpu被占用,發現本質上並沒有改變顯卡驅動對應的cuda版本,nvidia-smi查詢當前顯卡狀態發現cuda版本沒變。
https://blog.csdn.net/flying_ant2018/article/details/105054453