Pytorch CUDA Cudnn python nvidiam 对应关系

微信公众号: “ 目标检测与跟踪基础前沿 “

” 目标跟踪基础与智能前沿 “

1.这里pytorch和cudatoolkit版本对应关系:

https://pytorch.org/get-started/previous-versions/

Pytorch CUDA Cudnn python nvidiam 对应关系_第1张图片
如图,pytorch 1.2.0 对应的 cuda 版本 分别可以 9.2 10.0 .还有CPU版本

2.cudatoolkit版本和系统cuda对应关系:

调用哪个 cuda 库要看生成 tensorflow / pytorch 库的时候,设置的链接库寻找目录,以 pytorch 为例,项目根目录下的 setup.py 中指定链接库的搜索目录,其中 cuda 的根目录 CUDA_HOME在 tool.setup_helpers.cuda 中有获取逻辑,大概过程是:先取默认 cuda 安装目录 /usr/local/cuda如默认目录不存在(例如安装原生 cuda 到其他自定义位置),那么搜索 nvcc 所在的目录如果 nvcc 不存在,那么直接寻找 cudart 库文件目录(此时可能是通过 conda 安装的 cudatoolkit,一般直接用 conda install cudatoolkit,就是在这里搜索到 cuda 库的),库文件目录的上级目录就作为 CUDA_HOME。如果最终未能得到 CUDA_HOME,那么生成的 pytorch 将不使用 CUDA。 (以上过程的 pytorch 源码版本 ‘1.3.0’)详细的可去看 pytorch 源码。tensorflow 源码我没看过,不过思路应该差不多。然后,通过 conda 安装 cudatoolkit 包含的库文件均在 miniconda3/lib 中可以找到(或者直接在 miniconda3 / pkgs / cudatoolkit-10.x.xxx /lib 中查看),ls -al libcu*
ls -al libnpp*
ls -al libnv*原生安装的cuda肯定是 conda-cudatoolkit 的超集,可以自己尝试这两种安装,然后肉眼比对,差别一目了然。再有不懂的,去 nvidia 官网看文档,慢慢的,就懂了。最后,可以通过 ldd xx.so 直接查看依赖哪些库以及库的详细路径

3.系统cuda和nvidia对应关系:

Pytorch CUDA Cudnn python nvidiam 对应关系_第2张图片

4.cuda和cuDNN的关系和对应关系:

1、什么是CUDA

    CUDA(ComputeUnified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。

2、什么是CUDNN

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

3、CUDA与CUDNN的关系

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

4、CUDNN不会对CUDA造成影响

官方Linux安装指南表述:

    从官方安装指南可以看出,只要把cuDNN文件复制到CUDA的对应文件夹里就可以,即是所谓插入式设计,把cuDNN数据库添加CUDA里,cuDNN是CUDA的扩展计算库,不会对CUDA造成其他影响。

cuDNN的安装文件有两个文件夹,共五个文件,如下
cudnn.h是调用加速库的文件,*.os是

CUDA平台里对应文件夹的文件,如下

可以看到,CUDA已有的文件与cuDNN没有相同的文件,复制CUDNN的文件后,CUDA里的文件并不会被覆盖,CUDA其他文件并不会受影响。

你可能感兴趣的:(Ubuntu配置,Ubuntu使用技巧)