一文带你看懂显卡,显卡驱动,CUDA,CUDNN(内含举例)
显卡
显卡是硬件设备。(花钱购买的)
(注:显卡不是GPU,显卡的核心组件包含显卡内存(简称显存)和GPU(Graphics Processing Unit,图像处理器),GPU含有DRAM,Control,Cache,ALU)
(注:显存和DRAM不是一个东西,显存存储GPU将要处理的信息,DRAM存放GPU要执行的指令集,和GPU直接进行数据的交换。)
显卡驱动
显卡驱动是一个软件应用,是使得操作系统可以识别你的显卡的一个软件,将用户的一些“人话”转化为GPU可以识别的“指令”,驱动程序向下直接和显卡接触。
我们想要操作显卡,就必须安装对应的显卡驱动。
CUDA
- 一个显卡可以用来玩游戏,可以用来跑机器学习。
- 要玩游戏,要在显卡驱动上修改一些配置。
- 如果要跑深度学习,就需要安装CUDA,(相当于添加库的功能,我们通过CUDA)
CUDA是一个Nvidia显卡的一个并行计算框架,显卡想要并行计算,必须有一个并行计算框架(要被该显卡的的显卡驱动所支持),
而且必须当而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。
(注:CUDA和显卡的驱动有一定对应的关系。需要安装版本相匹配的CUDA)
我们可以看到写着支持CUDA。
CUDNN
CUDNN(CUDA Deep Neural Network library)
CUDNN是CUDA的一个包。是专门用来处理深层神经网络的一个GPU加速库。(卷积操作需要用到),CUDNN是不需要安装的,只需要下载后将其放入CUDA的指定路径就可以调用了。
举一个生动形象的例子
就拿我们运行一台机器来说。我们人是操作工,对机器,我们有2个操作。
我们将显卡比喻成螺丝,我们手拧螺丝没有办法拧螺丝,所以我们需要螺丝刀,显卡驱动就是这里的螺丝刀,
有了螺丝刀和螺丝,作为操作员,我们需要有一个工作室来进行操作,这个工作室就是CUDA(框架),工作室里面有很多的隔间(调用的库)
我们现在就可以完成拧螺丝的操作了,但是如果我们需要一些特殊的操作(卷积操作),那么我们就需要进入到工作室里面的特定的隔间(CUDNN)来进行操作。
将例子理解透彻之后,相信你就可以理解显卡,显卡驱动,CUDA,CUDNN的对应关系啦!接下来就开始投入机器学习的怀抱吧~