显卡,驱动和CUDA的认识

之乎(https://www.zhihu.com/question/59184480/answer/162623008)

显卡:(GPU)主流是Nvidia的GPU,深度学习本身需要大量计算。GPU的并行计算能力,在过去几年里恰当地满足了深度学习的需求。AMD的GPU基本没有什么支持,可以不用考虑。

驱动:没有显卡驱动,就不能识别GPU硬件,不能调用其计算资源。但是呢,Nvidia在Linux上的驱动安装特别麻烦,尤其对于新手简直就是噩梦。得屏蔽第三方显卡驱动。下面会给出教程。

CUDA:是Nvidia推出的只能用于自家GPU的并行计算框架。只有安装这个框架才能够进行复杂的并行计算。主流的深度学习框架也都是基于CUDA进行GPU并行加速的,几乎无一例外。还有一个叫做cudnn,是针对深度卷积神经网络的加速库。

cuda的其他理解(https://blog.csdn.net/pjh23/article/details/83418736

CUDA呢简单来说就是GPU通用运算的一种编程框架。我这么说一定是不好理解了。

GPU通用运算的含义简单地说就是让显卡的GPU去帮助cpu去干事儿。通用,是相对于专用而言,GPU用于游戏加速,那就是专用处理器,在普通软件的运用中,GPU的计算资源一般是闲置的,而承担运算工作的是CPU,CPU就是典型的通用计算处理器。所以在游戏的时候cpu也要工作。这就是为什么一般游戏都有个cpu的要求。用gpu通用运算是有好处的。一般来说衡量运算能力使用浮点运算速度。(浮点运算简单地说就是 加减乘除)cpu要远远低于gpu 就拿I7 来说 i7 950的浮点运算能力基本上才相当于GTX580gpu的四十分之一。这么强的能力不用 那就浪费了。所以大家就开使动脑子打gpu的主意。 最开始ATI提出了stream框架 来调用GPU协助cpu工作 但是没有之后Nvida、推出的CUDA有名。当然除了这俩还有其它的框架。 stream和 CUDA只适用于 各自的品牌 还不能完全称得上通用。
**OpenCL 和 DirectCompute 就是两个大家全能用的通用框架。**前者时apple所倡导的 后者是微软所开发的。这就是为什么 iso6系统的safari要比之前的都要快很多 这就是为什么ie10要比ie9快很多的原因 因为它们都可以调用了gpu来帮助运算。加快速度。前者被苹果低调的使用 后者被微软写入到DirectX11中 成为了标准。
再说回CUDA,CUDA是Compute Unified Device Architecture的缩写。我也不大会翻译 就叫cuda好了 这东西 用他的好处就是能调用GPU的平行运算能力 和强大的浮点运算能力。在视频解码。或者处理游戏中物理特效的时候有非常好的效果(如果用cpu 去算现在游戏所运用的物理特效 那cpu就会累死)其实日常用处很少。也就游戏和视频编码用得上。
cuda的用处还有很多 其实用在消费级的地方cuda很少大部分用在了特殊领域了。 很多超级计算中心 比如计算天气预告需要进行海量的数据计算 就应用得到gpu的运算能力了.

cuda的其他定义(https://product.pconline.com.cn/itbk/diy/graphics/1109/2521869.html

CUDA(Compute Unified Device Architecture),显卡厂商NVidia推出的运算平台。 CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。

  计算行业正在从只使用CPU的“中央处理”向CPU与GPU并用的“协同处理”发展。为打造这一全新的计算典范,NVIDIA®(英伟达™)发明了CUDA(Compute Unified Device Architecturem,统一计算设备架构)这一编程模型,是想在应用程序中充分利用CPU和GPU各自的优点。现在,该架构现已应用于GeForce®(精视™)、ION™(翼扬™)、Quadro以及Tesla GPU(图形处理器)上,对应用程序开发人员来说,这是一个巨大的市场。

  在消费级市场上,几乎每一款重要的消费级视频应用程序都已经使用CUDA加速或很快将会利用CUDA来加速,其中不乏Elemental Technologies公司、MotionDSP公司以及LoiLo公司的产品。在科研界,CUDA一直受到热捧。例如,CUDA现已能够对AMBER进行加速。AMBER是一款分子动力学模拟程序,全世界在学术界与制药企业中有超过60,000名研究人员使用该程序来加速新药的探索工作。在金融市场,Numerix以及CompatibL针对一款全新的对手风险应用程序发布了CUDA支持并取得了18倍速度提升。Numerix为近400家金融机构所广泛使用。

  CUDA的广泛应用造就了GPU计算专用Tesla GPU的崛起。全球财富五百强企业现在已经安装了700多个GPU集群,这些企业涉及各个领域,例如能源领域的斯伦贝谢与雪佛龙以及银行业的法国巴黎银行。随着微软Windows 7与苹果Snow Leopard操作系统的问世,GPU计算必将成为主流。在这些全新的操作系统中,GPU将不仅仅是图形处理器,它还将成为所有应用程序均可使用的通用并行处理器。

 

CUDA的应用

  计算行业正在从只使用CPU的“中央处理”向CPU与GPU并用的“协同处理”发展。为打造这一全新的计算典范,NVIDIA(英伟达)发明了CUDA(Compute Unified Device Architecturem,统一计算设备架构)这一编程模型,是想在应用程序中充分利用CPU和GPU各自的优点。现在,该架构现已应用于GeForce(精视)、ION(翼扬)、Quadro以及Tesla GPU(图形处理器)上,对应用程序开发人员来说,这是一个巨大的市场。 

CUDA产生的原因

  随着显卡的发展,GPU越来越强大,而且GPU为显示图像做了优化。在计算上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVidia推出CUDA,让显卡可以用于图像计算以外的目的。

CUDA体系结构的组成

  开发库:开发库是基于CUDA技术所提供的应用开发库。

  运行期环境:运行期环境提供了应用开发接口和运行期组件,包括基本数据类型的定义和各类计算、类型转换、内存管理、设备访问和执行调度等函数。

  驱动:CUDA-enable的GPU的设备抽象层,提供硬件设备的抽象访问接口。也就是需要安装有nVIDIA硬件的电脑上安装相应的驱动来实现CUDA通用运算。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章