7 GPU & Nvidia Driver & Cuda & Cudatoolkit & Cudnn & Torch & Torchvision(简洁介绍)
GPU & Nvidia Driver & Cuda & Cudatoolkit & Cudnn & Torch & Torchvision(简洁介绍)
- 先放一个比较完整的介绍:https://zhuanlan.zhihu.com/p/91334380
GPU:
就是显卡,用于深度学习计算的显卡基本都是 NVIDIA 公司的GPU系列。
Nvidia Driver:
硬件要使用,必然要驱动,Nvidia Driver 即为显卡驱动。(不管是电动还是做计算,都要安驱动)
Cuda:
CUDA 英文全称是 Compute Unified Device Architecture,是 NVIDIA 推出的运算平台。简单来说,即使用 GPU 并行计算的一个媒介。
https://blogs.nvidia.com/blog/2012/09/10/what-is-cuda-2/
Cudatoolkit:
CUDA 工具包的主要包含了 CUDA-C 和 CUDA-C++ 编译器、一些科学库和实用程序库、CUDA 和 library API 的代码示例、和一些 CUDA 开发工具。
- CUDA Toolkit (nvidia): CUDA完整的工具安装包,其中提供了 Nvidia 驱动程序、开发 CUDA 程序相关的开发工具包等可供安装的选项。包括 CUDA 程序的编译器、IDE、调试器等,CUDA 程序所对应的各式库文件以及它们的头文件。
- CUDA Toolkit (Pytorch): CUDA不完整的工具安装包,其主要包含在使用 CUDA 相关的功能时所依赖的动态链接库。不会安装驱动程序。
安装 Cuda 即安装 Cudatoolkit
注:CUDA Toolkit 完整和不完整的区别:在安装了 CUDA Toolkit (Pytorch) 后,只要系统上存在与当前的 cudatoolkit 所兼容的 Nvidia 驱动,则已经编译好的 CUDA 相关的程序就可以直接运行,不需要重新进行编译过程。如需要为 Pytorch 框架添加 CUDA 相关的拓展时(Custom C++ and CUDA Extensions),需要对编写的 CUDA 相关的程序进行编译等操作,则需安装完整的 Nvidia 官方提供的 CUDA Toolkit。
Cudnn:
这个其实就是一个专门为深度学习计算设计的软件库,里面提供了很多专门的计算函数,如卷积等,它强调性能、易用性和低内存开销。可以集成到高级别的机器学习框架中。( Torch )
CUDA 看作是一个工作台,上面配有很多工具,如锤子、螺丝刀等。cuDNN 是基于 CUDA 的深度学习 GPU 加速库,有了它才能在 GPU 上完成深度学习的计算。它就相当于工作的工具,比如它就是个扳手。但是 CUDA 这个工作台买来的时候,并没有送扳手。想要在 CUDA 上运行深度神经网络,就要安装 cuDNN ,就像你想要拧个螺帽就要把扳手买回来。
Torch:
可以理解为 Cudnn,安装时需要匹配对应的 CUDA。
最新版本一键安装:
conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch # Linux
- pytorch官网:https://pytorch.org/get-started/locally/
Torchvision:
很多基于Pytorch的工具集都非常好用,比如处理自然语言的 torchtext ,处理音频的 torchaudio ,以及处理图像视频的 torchvision
Torchvision 包含一些常用的数据集、模型、转换函数等等。当前版本 0.5.0 包括图片分类、语义切分、目标识别、实例分割、关键点检测、视频分类等工具
注意版本匹配:
torch 1.1.0/1.1.0 + torchvision 0.2.* + CUDA 9
torch 1.2.0/1.3.0 + torchvision 0.3.* + CUDA 10
torch 1.2.0/1.3.0 + torchvision 0.4.* + CUDA 10
torch 1.4.0 + torchvision 0.5.* + CUDA 10
总结:
层级由低到高:
GPU -> Nvidia Driver -> CUDA(Cudatoolkit) -> Cudnn(Torch) -> Torchvision