Nvidia和它家的Cuda和CUDNN

参考:英伟达 (NVIDIA) 创始人黄仁勋是一个什么样的人?

侵删

笔记:

  1. 主要看Techsoho的回答
  2. David Kirk博士是图形学和高性能并行计算的大神,除了做显卡,他另一大贡献就是搞出了CUDA,被誉为CUDA之父,后当选美国工程院院士。
  3. 随着显卡的发展,GPU(图形处理器)越来越强大,而且GPU为显示图像做了优化,在计算上已经超越了通用的CPU,特别擅长并行计算。图形运算的特点是大量同类型数据的密集运算。GPU的微架构就是面向适合于矩阵类型的数值计算而设计的,如此强大的芯片如果只是作为显卡就太浪费了。
  4. 但在CUDA问世之前,对GPU编程必须要编写大量的底层语言代码,是程序员不折不扣的噩梦。
  5. David Kirk慧眼识珠,在他的主导下,英伟达推出CUDA,让显卡可以用于通用并行计算等其他非图形计算。
  6. CUDA是英伟达利用GPU平台进行通用并行计算的一种架构,简单的说,就是普通程序员可以利用C语言、C++等为CUDA架构编写程序在GPU平台上进行大规模并行计算,就是让普通程序员也能用上核武器。
  7. 2007年英伟达推出专为高性能计算而设计的Tesla GPU,此后很多年,在高性能并行计算领域,无人可与英伟达匹敌,Intel和AMD都被虐成渣。
  8. CUDA和GPU计算被广泛应用于金融交易、生物医疗、地理信息系统、天气预报、国防等需要高性能计算的领域,而NVIDIA Tesla GPU也占据了70%的GPU市场。
  9. 深度学习神经网络尤其是几百上千层的神经网络需对高性能计算需求非常高,GPU对处理复杂运算拥有天然的优势:它有出色的并行矩阵计算能力,对于神经网络的训练和分类都可以提供显著的加速效果。所以搭载GPU的超级计算机已经成为训练各种深度神经网络的不二选择,比如谷歌大脑早期就是使用英伟达的GPU做深度学习。

 

参考:gpu 的驱动,cuda,cudnn的关系

笔记:

  1. CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台。 CUDA是一种由NVIDIA推出的通用并行计算架构。它包含CUDA指令集架构以及GPU内部的并行计算引擎。你只要使用一种类似于C语言的CUDA C语言,就可以开发CUDA程序,从而可以更加方便的利用GPU强大的计算能力,而不是像以前那样先将计算任务包装成图形渲染任务,再交由GPU处理。

  2. 换句话说CUDA是NVIDIA推出的用于自家GPU的并行计算框架,也就是说CUDA只能在NVIDIA的GPU上运行,而且只有当要解决的计算问题是可以大量并行计算的时候才能发挥CUDA的作用。并不是所有GPU都支持CUDA。

  3. CUDA提供了一个深度神经网络的GPU加速库cuDNN(CUDA Deep Neural Network),完成了对卷积、池化、归一化和激活函数层等标准操作的快速实现。
  4. NVIDIA cuDNN是用于深度神经网络的GPU加速库。它强调性能、易用性和低内存开销。NVIDIA cuDNN可以集成到更高级别的机器学习框架中,如谷歌的Tensorflow、加州大学伯克利分校的流行caffe软件。简单的插入式设计可以让开发人员专注于设计和实现神经网络模型,而不是简单调整性能,同时还可以在GPU上实现高性能现代并行计算。如果你要用GPU训练模型,cuDNN不是必须的,但是一般会采用这个加速库。

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

 

posted @ 2021-10-08 22:19  旷野之息  阅读(790)  评论(0编辑  收藏  举报