很多时候,当从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 .etccondaactivate.d
mkdir .etccondadeactivate.d
得到下图的文件夹
在activate.d中创建env_vars.bat,内容为:
@set CUDA_PATH=C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.0in
@set CUDA_NVVP=C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.0libnvvp
@set CUDA_lib=C:Program FilesNVIDIA GPU Computing ToolkitCUDAv10.0libx64
@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