今天又一次安装了CUDA驱动,仔细的查询了相关博客,这一次,对一些概念有了更加清晰的认识。

1.显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn的差异

具体差异,可以参考链接中的介绍,我这里只记录自己的理解

显卡: 简单理解这个就是我们前面说的GPU,尤其指NVIDIA公司生产的GPU系列,常见的比如GTX1080TI,GTX2080TI 。因为后面介绍的cuda,cudnn都是NVIDIA公司针对自身的GPU独家设计的。

显卡驱动:很明显就是字面意思,通常指NVIDIA Driver,其实它就是一个驱动软件,而前面的显卡就是硬件。简单的讲,就是让电脑知道有一块显卡插进来了,识别到这个硬件是什么。常见的命名文件是:NVIDIA-Linux-x86_64-440.82.run。没有这个驱动安装,liux系统只能是命令行模式,有了显卡就可以进入图像界面。

nvcc:
这就是一款英伟达开发的编译器,主要用于英伟达系列显卡的驱动和库编译工作。类似与gcc。

CUDA:
CUDA英文全称是Compute Unified Device Architecture,是显卡厂商NVIDIA推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。

cuda driver:
就是显卡驱动,上面第一条。

cudatoolkit:

gpudriven是ta吗 gpu驱动是什么意思_深度学习


自己画的一张图:

gpudriven是ta吗 gpu驱动是什么意思_显卡驱动_02


这个应该是一个比较全工具箱,里面包含了显卡驱动,toolkit,samples。

显卡驱动可以选择安装,也可以单独安装。可以把显卡驱动理解为识别硬件,这个是驱动性质,偏向于硬件底层,速度更快。

其中最重要的是toolkit提供的Library,提供类似于cudart: CUDA Runtime运行时的库。运行时的显卡库,主要提供运行时的快速开发。

cudnn:

这个其实就是一个专门为深度学习计算设计的软件库,里面提供了很多专门的计算函数,如卷积等。从上图也可以看到,还有很多其他的软件库和中间件,包括实现c++ STL的thrust、实现gpu版本blas的cublas、实现快速傅里叶变换的cuFFT、实现稀疏矩阵运算操作的cuSparse以及实现深度学习网络加速的cuDNN等等,具体细节可参阅GPU-Accelerated Libraries。
这个可以把cudnn理解为一个类似与opencv,caffe一样的深度学习计算库,提供常用的函数,在硬件性能上更好一些。

查考网站:

安装显卡驱动,很细致:
https://gist.github.com/wangruohui/df039f0dc434d6486f5d4d098aa52d07

安装CUDA驱动:
https://askubuntu.com/questions/830916/how-to-install-cuda-8-0-on-ubuntu-16-04-with-nvidia-geforce-gtx-1080

CUDA 并行计算 机器学习 NVCC CUDNN CUDATOOLKIT CUDA DRIVER 显卡驱动(NVIDIA Driver) 显卡(GPU):

显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?