conda安装cuda下载很慢_Ubuntu18.04,安装多版本CUDA和cuDNN,并进行切换

本文介绍了如何在Ubuntu18.04上使用conda快速搭建CUDA和cuDNN的多版本环境,并详细说明了安装过程、依赖管理以及版本切换的方法。通过conda创建虚拟环境,结合手动下载和安装CUDA及cuDNN,确保正确配置环境变量,以适应不同项目需求。
摘要由CSDN通过智能技术生成

==================2020/06/24 一种简单方法=================

利用conda搭建环境

  1. wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
  2. bash Miniconda3-latest-Linux-x86_64.sh
  3. 安装miniconda过程中基本都选‘yes’或者enter
  4. 退出terminal,再新开一个terminal,然后尝试运行 conda create --name pytorch14 python=3.6.9 pytorch=1.4.0
    1. 这句的意思是创建一个名为pytorch14的virtual env,要求使用python 3.6.9, pytorch 1.4.0
    2. conda会自动分析需要安装哪些依赖,以及cuda, cudnn版本等等。(这项功能在pip和virtualenv里好像是没有的)

ba9267277c34cb76e07c202dd5e7b05f.png

然后里可以选择y安装,也可以选择n不安装

  • 可以尝试一下conda create --name pytorch15 python=3.6.9 pytorch=1.5.0。在我的系统里,conda会说有conflict所以fail掉。不过,这些信息未必完全准确,conflict未必是真的conflict,换句话说就是conda的依赖管理好像有点不准确。

441610275a8299d9db042632dd4c8759.png
  • 因此,我采用先运行conda create --name pytorch15 python=3.6.9 pytorch=1.4.0,然后conda activate pytorch15,绕开conda,直接运行pip3 install torch==1.5.0

7f4240508536f458f2aaaca282550792.png

c8d6ad545314765bcf3fa4e5982d7d29.png

==================以下为比较复杂的方法====================

1. 检查一下我们要安装的Tensorflow, Pytorch等的版本-->这些版本要求的CUDA和CUDNN版本-->然后根据CUDA的版本查询出Nvidia Driver的版本。

  • 1. pytorch: 从下图中可以看出,为了使用pytorch 1.2.0和1.5,我们需要安装CUDA10.0和10.1.
  • 2. https://pytorch.org/get-started/previous-versions/
  • 3.

c8e8b02a84e66865a6a127e9b46cdc5f.png
  • 4.

7cd75c01d908aabb5d2629d29cd43f41.png
  • 5. Tensorflow: 从下图中可以看出,我们为了使用TF 1.13 - 2.1,需要安装CUDA 10.0,10.1和cuDNN 7.4,7.6。
  • 6. https://www.tensorflow.org/install/source#common_installation_problems
  • 7.

6d6ac99cd5172744eab007ae45a04438.png
  • 8. 从https://developer.nvidia.com/rdp/cudnn-archive,我们可以查看对任何一个版本的CUDA,都有哪些版本的cuDNN available。
  • 9.

b3c64938c7fb5e27e686c318dccaed7c.png
  • 10. 从https://www.jianshu.com/p/c9230101a272可以查到CUDA版本和Nvidia GPU driver版本之间的对应关系
  • 11.

a005d8f05dc9645aa2dc51ecce06e5b3.png
  • 12. 到此为止,我们知道需要安装CUDA 10.0,10.1和cuDNN 7.4,7.6,以及>=418.39的Driver。

2. 安装好Ubuntu18.04后,软件更新器-→设置-→附加驱动。可以看到我们往往已经安装了Nvidia driver.

  • 3. Driver版本为435,所以Driver是OK的,无需再装。

4. 安装多个版本的CUDA:https://blog.csdn.net/ksws0292756/article/details/80120561

  • 1. 从https://developer.nvidia.com/cuda-toolkit-archive下载CUDA 10.0和10.1的runfile。
  • 2.

7d788113741887b66345f27fe25783af.png
  • 3. #先执行下面的命令安装相关依赖,#否则会出现`Missing recommended library`错误
  • 4. sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
  • 5. 然后对其中一个CUDA版本,根据网页的说明进行安装
  • 6.

e1c4977c5620e47d4baedcdccc6b9709.png
  • 7. #..一堆协议说明...
  • 8. #可以直接按q退出协议说明.
  • 9. accept/decline/quit: accept #接受协议
  • 10. Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
  • 11. y)es/(n)o/(q)uit: n #是否显卡驱动包,由于已经安装显卡驱动,选择n
  • 12. Install the CUDA 10.1 Toolkit?
  • 13. (y)es/(n)o/(q)uit: y #是否安装工具包,选择y
  • 14. Enter Toolkit Location
  • 15. [ default is /usr/local/cuda-8.0 ]: #工具包安装地址,默认回车即可
  • 16. Do you want to install a symbolic link at /usr/local/cuda?
  • 17. (y)es/(n)o/(q)uit: y #添加链接**注意这个连接,如果你之前安装过另一个版本的cuda,除非你确定想要用这个新版本的cuda,否则这里就建议选no,因为指定该链接后会将cuda指向这个新的版本**
  • 18. Install the CUDA 10.1 Samples?
  • 19. (y)es/(n)o/(q)uit: y #安装样例
  • 20. Enter CUDA Samples Location
  • 21. [ default is /root ]: #样例安装地址默认即可
  • 22. # ***安装信息***

5. 配置CUDA相关环境变量:修改~/.bashrc文件

6. #在文件.bashrc结尾处添加

  • 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

10. 到此为止我们完成了第一个CUDA版本10.1的安装。

11. 用同样的方式去下载第二个CUDA版本10.0的runfile

12.

9b5e9722294f3caf3d3a4bc241727d59.png

13. 安装Base runfile

  • 14. Do you want to install a symbolic link at /usr/local/cuda?
  • 15. (y)es/(n)o/(q)uit: n
  • 16. 在此过程中也不要去安装Nvidia Driver.

17. 然后用sudo sh xxx.run的方法去安装patch文件

18. 安装成功后,我们会在/usr/local/下面看到cuda-10.0, cuda-10.1两个folder,以及一个指向cuda-10.1的soft link文件cuda.

19. CUDA版本切换:

cd /usr/local/
sudo rm -rf cuda
sudo ln -s cuda-10.0 cuda

20. 检测目前的CUDA版本:nvcc --version

安装cuDNN:https://blog.csdn.net/shangpapa3/article/details/79420183

21. 去官网下载需要的CUDNN(https://developer.nvidia.com/rdp/cudnn-archive),需要邮箱注册。

22.

cf9bec931c48f91f32b927d2d49b73dd.png

23. 注意:cuDNN文件是由CUDA版本号和cuDNN版本号共同决定的。我们需要下载的是CUDA10.1对应的cuDNN7.6,和CUDA10.0对应的cuDNN7.4.

24.

71792deee4cf61fdd63af4fcaa069925.png

25. 这四个文件都需要下载,但只有第一个文件是安装cuDNN所需文件。后三个文件是检测cuDNN是否安装成功用的。

26. 解压 tar zxvf cudnn-10.1-linux-x64-v7.6.0.64.tgz,我会把该目录移到/home/wangding/DW_ALL/Software/下。

27. 删除原来的CUDNN

sudo rm -rf /usr/local/cuda/include/cudnn.h
sudo rm -rf /usr/local/cuda/lib64/libcudnn*
#cd 到刚才解压的文件夹进行安装
sudo cp include/cudnn.h /usr/local/cuda/include/
sudo cp lib64/lib* /usr/local/cuda/lib64/
#cd到/usr/local/cuda/lib64/文件夹下,建立软链接(注意版本号换成你自己的)
cd /usr/local/cuda/lib64/
sudo chmod +r libcudnn.so.7.6.0
sudo ln -sf libcudnn.so.7.6.0 libcudnn.so.7
sudo ln -sf libcudnn.so.7 libcudnn.so
sudo ldconfig

检测cuDNN和CUDA是否安装正确:https://blog.csdn.net/caicaiatnbu/article/details/87626491

现在检查CUDA10.1对应的cuDNN7.6是否安装正确。首先需要把CUDA切换到10.1 (run choose_CUDA_cuDNN.py 10.1 7.6.3),然后运行

sudo dpkg -i libcudnn7_7.6.3.30-1+cuda10.1_amd64.deb 
sudo dpkg -i libcudnn7-dev_7.6.3.30-1+cuda10.1_amd64.deb 
sudo dpkg -i libcudnn7-doc_7.6.3.30-1+cuda10.1_amd64.deb
cp -r /usr/src/cudnn_samples_v7/ ~/xxxx/
cd ~/xxxx/cudnn_samples_v7/mnistCUDNN
make clean && make
./mnistCUDNN

48. 如果能够成功运行,那就说明该版本的CUDA和cuDNN已经安装成功。

安装好另外一个版本的CUDA对应的某个版本的cuDNN后

需要把上面的测试步骤全都重复一遍,一定要注意切换CUDA版本和cuDNN版本后,再进行make clean和make。

查看所用cuDNN版本:cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

附CUDA,cuDNN版本切换:

run choose_CUDA_cuDNN.py 10.0 7.4.1

run choose_CUDA_cuDNN.py 10.1 7.6.3

choose_CUDA_cuDNN.py:

import os
import sys
from glob import glob

if len(sys.argv) < 3:
    print(sys.argv)
    print('Need to run this file like this way: python choose_CUDA_cuDNN.py 10.0 7.4')
    raise(Exception())
cuda_version = sys.argv[-2]
cudnn_version = sys.argv[-1]

cuda_tmp = glob('/usr/local/cuda-*')
cuda_v_available = [ i.split('-')[-1] for i in cuda_tmp]
print('Available CUDA: %s' % cuda_v_available)

cudnn_tmp = glob('/home/wangding/DW_ALL/Software/cudnn_*')
cudnn_v_available = [ '_'.join(i.split('_')[-2:]) for i in cudnn_tmp]
print('Available cuDNN: %s' % cudnn_v_available)

#choose CUDA version
sudopwd = 'my password'
os.system('echo %s | sudo -S rm -rf /usr/local/cuda' % sudopwd)
os.system('echo %s | sudo -S ln -s /usr/local/cuda-%s /usr/local/cuda' % (sudopwd, cuda_version))

print('==========================CUDA version============================')
os.system('nvcc --version')

#choose cuDNN version
os.system('echo %s | sudo -S rm -f /usr/local/cuda/include/cudnn.h'%sudopwd)
os.system('echo %s | sudo -S rm -f /usr/local/cuda/lib64/libcudnn*'%sudopwd)
#cd 到刚才解压的文件夹进行安装
os.system('echo %s | sudo -S cp /home/wangding/DW_ALL/Software/cudnn_%s_%s/include/cudnn.h  /usr/local/cuda/include/' % (sudopwd, cuda_version, cudnn_version))
os.system('echo %s | sudo -S cp /home/wangding/DW_ALL/Software/cudnn_%s_%s/lib64/lib*   /usr/local/cuda/lib64/' % (sudopwd, cuda_version, cudnn_version))
#cd到/usr/local/cuda/lib64/文件夹下,建立软链接(注意版本号换成你自己的)
#cd /usr/local/cuda/lib64/
os.system('echo %s | sudo -S chmod +r /usr/local/cuda/lib64/libcudnn.so.%s' % (sudopwd, cudnn_version))

# os.system('echo %s | sudo -S rm /usr/local/cuda/lib64/libcudnn.so.%s'%(sudopwd, cudnn_version.split('.')[0]))
os.system('echo %s | sudo -S ln -sf /usr/local/cuda/lib64/libcudnn.so.%s /usr/local/cuda/lib64/libcudnn.so.%s'%(sudopwd, cudnn_version, cudnn_version.split('.')[0]))

# os.system('echo %s | sudo -S rm -f /usr/local/cuda/lib64/libcudnn.so'%sudopwd)
os.system('echo %s | sudo -S ln -sf /usr/local/cuda/lib64/libcudnn.so.%s /usr/local/cuda/lib64/libcudnn.so'%(sudopwd, cudnn_version.split('.')[0]))
os.system('echo %s | sudo -S ldconfig' % sudopwd)
print('==================cuDNN version================================')
os.system('cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2')

参考:

https://blog.kovalevskyi.com/multiple-version-of-cuda-libraries-on-the-same-machine-b9502d50ae77​blog.kovalevskyi.com

Tensorflow 2.1 running on GPU-Ubuntu 18.04 https://medium.com/@shravan007.c/tensorflow-2-1-running-on-gpu-ubuntu-18-04-76b0c8b0a25d

两种在Ubuntu 18.04上安装Nvidia驱动程序的方法​ywnz.com
1d63d71b92fc55ba55f16a5e3354246c.png

sudo lshw -c display

sudo ubuntu-drivers devices

sudo ubuntu-drivers autoinstall

如果要安装特定驱动程序,请运行以下命令:

sudo apt install nvidia-driver-version-number

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值