cuda、cudnn、tensorlfow、pytorch的安装及常见问题解答

一、 cuda是什么

CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。 开发人员可以使用C语言来为CUDA™架构编写程序,C语言是应用最广泛的一种高级编程语言。所编写出的程序可以在支持CUDA™的处理器上以超高性能运行。CUDA3.0已经开始支持C++和FORTRAN。

二、cudnn是什么

NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。

三、cuda和cudnn之间的关系

CUDA看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN是基于CUDA的深度学习GPU加速库,有了它才能在GPU上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是CUDA这个工作台买来的时候,并没有送扳手。想要在CUDA上运行深度神经网络,就要安装cuDNN,就像你想要拧个螺帽就要把扳手买回来。这样才能使GPU进行深度神经网络的工作,工作速度相较CPU快很多。
来自于:https://www.jianshu.com/p/622f47f94784

四、版本对应关系

(一)cuda/cudnn/tensorflow_gpu之间的对应关系

版本对应请查看以下链接:
https://www.tensorflow.org/install/source#common_installation_problems
cuda、cudnn、tensorlfow、pytorch的安装及常见问题解答_第1张图片

五、cuda安装包下载

(一)下载链接

https://developer.nvidia.com/cuda-toolkit-archive
cuda、cudnn、tensorlfow、pytorch的安装及常见问题解答_第2张图片

(二)选择与系统相对应的cuda安装包

cuda、cudnn、tensorlfow、pytorch的安装及常见问题解答_第3张图片
下载runfile文件

六、cuda安装步骤

(一)sh cuda_10.0.130_410.48_linux.run

按enter到最后一行,分别输入以下的选择:
cuda、cudnn、tensorlfow、pytorch的安装及常见问题解答_第4张图片

(二)修改~/.bashrc文件

  • 在.bashrc文件最后面添加
export CUDA_HOME=/usr/local/cuda
export PATH="/usr/local/cuda/bin:$PATH"
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64"
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/cuda/lib64"

cuda、cudnn、tensorlfow、pytorch的安装及常见问题解答_第5张图片

  • 刷新
    source ~/.bashrc

(三)查看cuda是否安装完成

cat /usr/local/cuda/version.txt

在这里插入图片描述

七、cudnn安装包

(一)下载链接

https://developer.nvidia.com/rdp/cudnn-archive

(二)选择与cuda对应的cudnn

cuda、cudnn、tensorlfow、pytorch的安装及常见问题解答_第6张图片

八、安装cudnn

(一)Cudnn压缩与解压

  • 压缩
mv cudnn-10.0-linux-x64-v7.6.4.38.solitairetheme8 cudnn-10.0-linux-x64-v7.6.4.38.tgz
  • 解压
tar -zxvf cudnn-10.0-linux-x64-v7.6.4.38.tgz

(二)安装

  • 进入cuda目录
    cuda、cudnn、tensorlfow、pytorch的安装及常见问题解答_第7张图片
  • 执行
cp ./include/cudnn.h /usr/local/cuda/include
cp ./lib64/libcudnn* /usr/local/cuda/lib64
chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
  • 查看cudnn版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

cuda、cudnn、tensorlfow、pytorch的安装及常见问题解答_第8张图片

九、重新安装tensroflow和torch

需要重新安装tensorflow和torch,因为tensorflow和torch会根据系统重新编译

十、常见问题

场景:在原有的docker内部离线安装cuda、cudnn,使项目将gpu使用起来

(一)问题一

Could not dlopen library ‘libcudart.so.10.0’; dlerror: libcudart.so.10.0: cannot open shared object file: No such file or directory

1.原因

1、cuda/cudnn/tensorflow_gpu版本没有对应上
2、环境没有加载进来

2.解决方法

1、文件拷贝
https://www.it610.com/article/1290427172426686464.htm
2、降低cuda版本(特别为cuda是10.1的版本)
https://blog.csdn.net/qq_28193019/article/details/103146116
3、conda直接安装cuda
https://www.codeleading.com/article/98663142910/
4、设置环境变量,新增文件(我最后的解决是增加了cuda.sh等文件)
https://www.it610.com/article/1290184912674037760.htm
5、配置环境变量
https://eveture.blog.csdn.net/article/details/110453680

(二)问题二

AssertionError: CUDA unavailable, invalid device 0 requested

1.原因

Cuda安装好了,tensorflow的版本是1.13.1,torch的版本是1.6.0,torchvision是版本是0.7.0,版本对应也没有问题

2.解决方法

https://github.com/ultralytics/yolov5/issues/474
pip install torch1.5.1+cu101 torchvision0.6.1+cu101 -f https://download.pytorch.org/whl/torch_stable.html
用这个解决的(不存在版本的问题):
https://github.com/NVIDIA/nvidia-docker/issues/904
cuda、cudnn、tensorlfow、pytorch的安装及常见问题解答_第9张图片
cuda、cudnn、tensorlfow、pytorch的安装及常见问题解答_第10张图片

你可能感兴趣的:(cuda,cudnn,tensorflow,pytorch,深度学习)