同時安裝CUDA8.0和CUDA9.0


http://geyao1995.com/CUDA8_CUDA9/

 

tensorflow1.5版本竟然不支持CUDA8.0了

卸載是不可能卸載的

1.原料准備

  1. CUDA9.0下載:https://developer.nvidia.com/cuda-90-download-archive

    建議選擇使用 .run 文件安裝,因為使用 .deb可能會將已經安裝的較新的顯卡驅動替換。

  2. cuDNN7.0下載(需要注冊賬號,注意選擇對應CUDA9.0的版本):https://developer.nvidia.com/cudnn

    對於cuDNN7.0的安裝方式選項,我選擇的是cuDNN v7.0.5 Library for Linux,對應於cudnn-9.0-linux-x64-v7.tgz文件,解壓之后放到cuda-9.0文件夾中就可以。

  3. 本機已經安裝的版本是CUDA8.0和cuDNN5.1

2.打開菜譜

不去網上瞎找教程,參考官方文檔

CUDA(看左上角是不是CUDA9.0版本的文檔,如果顯示最新版本,需要去找舊的9.0版本):https://docs.nvidia.com/cuda/archive/9.0/cuda-installation-guide-linux/index.html

cuDNN:https://docs.nvidia.com/deeplearning/sdk/cudnn-install/index.html#install-linux

3.下鍋

1.安裝新版本的CUDA和cuDNN

除了安裝顯卡選擇no,還有一步要選擇no(因為之前第一次安裝cuda8.0,已經創建了/usr/local/cuda這個symbolic link,所以這里就沒必要再創建一次了):

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

(y)es/(n)o/(q)uit: n

最后一步,安裝CUDA 9.0 Samples也可以選no。

提醒:在第一次安裝CUDA中,官方文檔中重要的一步,在~/.bashrc文件中添加(對於64位系統):

1
2
3
> export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
> export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
>

如果是9.0版本CUDA,將8.0換為9.0。

安裝好后,/usr/local/下面有三個文件夾:cuda-8.0、cuda-9.0、cuda(這個是軟鏈接)

接下來加入cuDNN,注意這里cuDNN官方教程中給的是:

1
2
3
$ 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 /usr/local/cuda/lib64/libcudnn*

多版本情況下需要將cuda文件夾替換成cuda-9.0文件夾:

1
2
3
$ sudo cp cuda/include/cudnn.h /usr/local/cuda-9.0/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda-9.0/lib64
$ sudo chmod a+r /usr/local/cuda-9.0/include/cudnn.h /usr/local/cuda-9.0/lib64/libcudnn*

2.版本切換

~/.bashrc下與cuda相關的路徑都改為/usr/local/cuda/而不使用/usr/local/cuda-8.0//usr/local/cuda-9.0/

所以,此時~/.bashrc中應該是:

1
2
export PATH=/usr/local/cuda/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

記住,cuda是symbolic link,所以想切換CUDA版本的時候只需要將cuda-8.0或cuda-9.0指向cuda就可以了。

刷新:

1
source ~/.bashrc

 

1.切換到CUDA9.0

1
2
3
4
5
6
7
8
9
10
rm -rf /usr/local/cuda #刪除之前創建的軟鏈接
sudo ln -s /usr/local/cuda-9.0/ /usr/local/cuda
nvcc --version #查看當前 cuda 版本

# 成功的話 應該顯示如下關於9.0版本的信息

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

2.切換到CUDA8.0

1
2
3
4
5
6
7
8
9
10
rm -rf /usr/local/cuda #刪除之前創建的軟鏈接
sudo ln -s /usr/local/cuda-8.0/ /usr/local/cuda
nvcc --version #查看當前 cuda 版本

# 成功的話 應該顯示如下關於8.0版本的信息

nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jan_10_13:22:03_CST_2017
Cuda compilation tools, release 8.0, V8.0.61

4.總結

  1. 本機安裝好CUDA8.0+cuDNN5.1和CUDA9.0+cuDNN7.0。在/usr/local目錄下兩個文件夾cuda-8.0和cuda-9.0。
  2. 添加軟鏈接cuda到PATH。
  3. 想用哪個版本的CUDA,就將哪個版本的CUDA鏈接到cuda。

5.其他方法

可以使用conda安裝(未驗證):

1
2
conda install -c anaconda cudatoolkit
conda install -c anaconda cudnn

或者用別的channel:

1
2
conda install -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/linux-64/ cudatoolkit=8.0 
conda install -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/linux-64 cudnn=7.0.5

致謝

感謝維天大神提供的思路,要不然就買一台新電腦了!

參考

《安裝多版本 cuda ,多版本之間切換》:https://blog.csdn.net/maple2014/article/details/78574275


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM