Ubuntu16.04安装多版本CUDA

由于做项目需要用到不同版本的 Tensorflow,因此 CUDA 版本也需做相应的切换。

首先明确 Tensorflow 与 CUDA 的版本对应关系,参考网友已整理好的表格:https://www.jianshu.com/p/464fefb5c5d8

亲测 Nvidia driver 418.56,CUDA 10 & cuDNN 7.5.0 和 CUDA 8 & cuDNN 6.0 安装成功。

STEP 1. 下载 CUDA 与 CUDNN 安装包

https://developer.nvidia.com/cuda-toolkit-archive

https://developer.nvidia.com/cudnn 注意与 CUDA 版本对应

建议最好将两个版本的 CUDA 与 cuDNN 存放路径整理如下,以方便区分

- cuda8

    - cuda # 解压后的 cudnn 6.0

    - cuda_8.0.61_375.26_linux.run

    - cudnn-8.0-linux-x64-v6.0.tgz

- cuda10

    - cuda # 解压后的 cudnn 7.5

    - cuda_10.0.130_410.48_linux.run

    - cudnn-10.0-linux-x64-v7.5.0.56.tgz

STEP 2. 安装 CUDA

CUDA 10 与 CUDA 8 安装顺序无差别,安装过程如大多数单一版本安装教程一致,在建立软链接时输入 y/n 均可,后面会解释原因。

Do you want to install a symbolic link at /usr/local/cuda?

(y)es/(n)o/(q)uit: # 建立软链接时,输入y(yes)表示启用当前安装的cuda版本,反之代表暂时不启用该版本。

STEP 3. 安装CUDNN

分别在 cuda8 与 cuda10 文件夹路径下执行以下命令,cuda-* 表示 cuda-8.0 和 cuda-10.0

sudo cp cuda/include/cudnn.h /usr/local/cuda-*/include/

sudo cp cuda/lib64/libcudnn* /usr/local/cuda-*/lib64/

sudo chmod a+r /usr/local/cuda-*/include/cudnn.h

sudo chmod a+r /usr/local/cuda-*/lib64/libcudnn*

STEP 4. 配置环境变量

修改~/.bashrc文件,sudo nano ~/.bashrc 

在文件末尾添加环境变量,Tensorflow 官方安装历程要求:配置 PATH,LD_LIBRARY_PATH 和 CUDA_HOME 环境变量。

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda/lib64

export PATH=$PATH:/usr/local/cuda/bin

export CUDA_HOME=$CUDA_HOME:/usr/local/cuda

STEP 5. CUDA 版本切换

在安装了多个 cuda 版本后,可以在 /usr/local/ 目录下查看自己安装的 cuda 版本。

查看已安装的 CUDA 版本

其中,cuda 是一个软链接,它指向我们指定的 cuda 版本。注意上面在设置环境变量时,使用的是cuda,而不是cuda-10.0和cuda-8.0,这是为了方便切换 cuda 版本,而不用每次都去改环境变量的值。可以使用 stat 命令查看当前 cuda 软链接指向的哪个 cuda 版本,如下所示:

查看当前 CUDA 版本

当我们想使用任一cuda版本时,只需要删除该 cuda 软链接,然后重新建立指向cuda版本的软链接即可。

sudo rm -rf cuda

sudo ln -s /usr/local/cuda-10.0 /usr/local/cuda

或者 sudo ln -s /usr/local/cuda-8.0 /usr/local/cuda

STEP 6. 查看 CUDA 相关版本

查看GPU版本(N卡)

lspci | grep -i nvidia

查看nvidia驱动版本

cat /proc/driver/nvidia/version

查看CUDA版本

cat /usr/local/cuda/version.txt

nvcc -V # nvidia 编译器版本

查看cuDNN版本

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容