用虚拟环境切换cuda版本

最近在尝试训练这个项目:facebookresearch/VisualVoice: Audio-Visual Speech Separation with Cross-Modal Consistency (github.com)

首先看项目的需要的运行环境
img

环境显然和实验室电脑的不一样,但也可以通过虚拟环境将需要的包进行安装。PythonPytorch等包的版本可以很简单的使用虚拟环境来更换,但现在我并不知道CUDA是否也可以更换

1.CUDA,CUDA Driver,CUDA Toolkit,CUDNN的关系

  • CUDA:是显卡厂商NVIDIA推出的运算平台。CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。CUDA英文全称是Compute Unified Device Architecture。
  • CUDA Driver:顾名思义,是CUDA的驱动,以下是对应关系。可以看出来主要驱动版本足够高,那么可以任意的切换CUDA的版本,也就是说在不同虚拟环境中切换CUDA版本是能够实现的
    image
  • CUDA Toolkit:CUDA工具包的主要包含了CUDA-C和CUDA-C++编译器、一些科学库和实用程序库、CUDA和library API的代码示例、和一些CUDA开发工具。(通常在安装CUDA Toolkit的时候会默认安装CUDA Driver;但是我们经常只安装CUDA Driver,没有安装CUDA Toolkit,因为有时不一定用到CUDA Toolkit;比如我们的笔记本电脑,安装个CUDA Driver就可正常看视频、办公和玩游戏了)
  • CUDNN:是用于深度神经网络的GPU加速库;它强调性能、易用性和低内存开销。可以集成到高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。

2.创建虚拟环境并安装CUDA

实际训练模型的过程,往往根据不同的程序需要依赖不同的环境,因此需要不同的深度学习环境(如不同的TensorFlow版本),在同一个机器上需要安装不同的cuda版本。

对于不同的cuda版本,由于cuda的驱动向下兼容,不同的cuda版本的区别主要在于cuda toolkit的版本不同。对于多版本cuda的安装的解决办法:利用anaconda构建虚拟环境,在虚拟环境下载利用anacoda下载相应的cudatoolkit。主环境的cuda的driver版本要高于虚拟环境的cudatoolkit需要的driver版本。

具体步骤(以cuda10.1举例)

1
2
3
4
5
6
7
8
#创建虚拟环境
conda create -n envName python=3.7.3
#激活虚拟环境
conda activate envName
#安装CUDA
conda install cudatoolkit=10.1 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/
#安装CUDNN
conda install cudnn=7.6.5 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64/

image