gpgpu编程技术
Ⅰ GPU, GPGPU ,CPU 有什么区别
GPGPU,带CPU处理能力的GPU。主要是GPU的工作,GPU的能力,可以有协助CPU的运算的能力,(通用图形处理)超出GPU的能力范围,甚至完全具备通用的数据处理。能否成为CPU看是否放在主板上。
GPU,用于图形处理的芯片。(GPU也是一种CPU,,相对于显卡)早期显卡是没有专门用做图形处理的GPU的,不支持3D。
CPU,用于数据处理的芯片(图形也可以认为是数据)。中央处理器,一种相对的概念。潜移默化被认定是放在主板上的那颗东西,通过向GPU传送指令,控制GPU。其实也就是一种微处理器。
AMD-APU,加速处理器。集成GPU核心的CPU,并且融合。不同于Intel I系智能(GPU CPU独立工作)。
Ⅱ 什么是 GPU(图形处理器)计算
GPU计算也就是GPU加速计算,由Nvidia提出来的概念,是利用一颗图形处理器 (GPU) 以及一颗 CPU 来加速科学、工程以及企业级应用程序。 NVIDIA® 于 2007 年在这方面率先迈出了第一步,GPU 现已成就了世界各地政府实验室、大学、企业以及中小企业内的节能数据中心。
GPU也就是图形处理器,又称显示核心、视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上图像运算工作的微处理器。
Ⅲ 近年来,异构超算已经是大势所趋,什么是异构超算
1.先谈谈同构计算和异构计算。同构计算是使用相同类型指令集和体系架构的计算单元组成系统的计算方式。同构超算只单纯使用一种处理器,日本超算“京”只采用的处理器是富士通制造的SPARC64 VIIIfx,神威蓝光只采用了8704片申威1600,Mira和Sequoia(Sequoia采用了约160万个A2处理核心),就只采用了PowerPC A2处理器,这些都没有采用GPU或众核芯片等加速器。日本的京,IBM 的Mira和Sequoia和中国的神威蓝光都是同构超算的代表。
异构计算主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式。常见的计算单元类别包括CPU、GPU等协处理器、DSP、ASIC、FPGA等。异构计算是一种并行和分布式计算,它或是用能同时支持simd方式和mimd方式的单个独立计算机,或是用由高速网络互连的一组独立计算机来完成计算任务。具体来说,异构计算是在运算中既使用处理器,又使用GPU或众核芯片等加速器。以美国泰坦和中国天河2号为例,泰坦有18688个运算节点,每个运算节点由1个16核心AMD Opteron 6274处理器和1个NVIDIA Tesla K20加速器组成,共计299008个运算核心;
天河2号有16000个计算节点,每个节点由2片Intel的E5 2692和3片Xeon PHI组成,共使用了32000片Intel的E5 2692和48000片Xeon PHI;天河1A使用了14336片Intel Xeon X5670处理器和7168片NVIDIA Tesla M2050高性能计算卡。除了泰坦和天河2号和天河1A之外,曙光6000也是采用了异构计算架构。
(曙光6000)
2.超算的用途
要说异构计算的优势,那就要从超算的用途说起了。
PC在日常使用中,除玩游戏、3D渲染等之外,大多是程序都倚重整数运算性能。
但超算则不同,超算大多应用于科研和军事领域。例如弹道计算、核物理研究、气候气象、海洋环境、数值风洞、碰撞仿真、蛋白质折叠、基因研究、新药研发、分子动力学模拟、量子化学计算、材料科学、动漫设计、工业设计等方面,在运算中更加倚重双精浮点性能,对整数运算性能要求相对较低。这就产生了用加速器提升浮点运算性能的需求。
3.同构超算的高效率
同构超算虽然理论双精浮点性能不如异构超算,但可以获得较高的运行效率。异构超算虽然理论双精浮点性能非常强悍,但运行效率不如同构超算。
(Sequoia,采用PowerPC A2处理器)
举例来说,IBM Mira和Sequoia使用PowerPC A2处理器,效率达85.3%和85.6%。日本的京效率更是高达92.9%。
而异构超算效率普遍不高,采用E5和XeonPHI的天河2号和Stampede效率为61.7%、60.7%。采用AMD Opteron 6274和NVIDIA Tesla K20的Titan效率为64.9%。
天河2号和Stampede效率不高的一个重要因素就是Xeon PHI的浮点运算效率较低。在谈这个问题前,先释下linpack测试。
(Stampede)
衡量芯片性能的一个重要指标就是计算峰值,例如浮点计算峰值,它是指计算机每秒钟能完成的浮点计算最大次数。包括理论浮点峰值和实测浮点峰值:
理论浮点峰值是该计算机理论上能达到的每秒钟能完成浮点计算最大次数。
理论浮点峰值=CPU主频×CPU每个时钟周期执行浮点运算的次数×系统中CPU核心数目。
实测浮点峰值是指Linpack测试值,也就是说在这台机器上运行Linpack测试程序,通过各种调优方法得到的最优的测试结果。
在实际程序运行过程中,几乎不可能长时间维持在实测浮点峰值,理论浮点峰值更是仅仅存在于纸面上的数据。理论浮点峰值和实测浮点峰值只是作为衡量机器性能的一个指标,用来表明机器处理能力的一个标尺和潜能的度量。
回归正题,Xeon PHI在运行linpack测试时,实际性能仅仅相当于理论最大运算性能的百分之六十几,相比之下,申威1600的linpack测试效率远高于Xeon PHI。
但因Xeon PHI的理论浮点性能较高达1T Flop,大大超过申威1600的双精浮点运算的理论峰值,因此即使仅仅只有百分之六十几的效率,实测双精浮点运算性能还是大幅超越申威1600。因而使Xeon PHI得到了国防科大等单位或公司的青睐。
因此,同构超算的效率相对高于异构超算,而天河2号效率偏低的原因更多的是Xeon PHI本身效率较低,不是国防科大的技术问题。
4.同构超算编程更方便
cpu适合做串行,逻辑复杂度高的任务,gpu适合做简单,并行度高的任务,cpu和gpu的编程模型是不一致的;所以异构超算在编程方面就不太容易,比如使用amd的apu和nvidia的cpu+gpgpu在编程上就不如同构超算方便。另外,gpgpu作为加速卡和cpu是不共享内存的,需要程序员显式拷贝而导致性能损失。
另外,因软件方面的原因,异构超算的通用性相对于同构超算有所不如,举例来说,GPGPU只能跑OPEN CL、OPEN ACC代码,不能跑OPENMP代码。
5.异构计算的优势
以天河2号的一个计算节点为例:
Xeon E5的满载功耗达145W,双精浮点为0.21T Flops,而Xeon PHI功耗300W,双精浮点达1T Flops。
天河2号一个计算节点由2片Xeon E5和3片Xeon PHI,理论双精浮点性能为3.2T Flops,功耗为1190W,理论双精浮点性能与功耗的比值为2.87GFlops/W。相同功耗下使用8片Xeon E5只能获得1696Gflops的理论双精浮点性能,理论双精浮点性能与功耗的比值为1.42GFlops/W。从数据可以看出,在同等功耗下,在使用Xeon PHI加速后,理论双精浮点性能与是只使用Xeon E5的2倍。
因此,相同功耗的情况下,异构超算能获得非常高的理论双精浮点性能。
综上所述,同构超算的编程方便,效率高,通用性强。异构超算编程麻烦,效率不如同构超算,通用性差,性能功耗比高。异构超算虽然在通用性和效率方面相比同构超算处于劣势,但更加好的性能功耗比使其成为更受偏爱的原因。
Ⅳ GPGPU编程技术(仇德元 编着)中第四章一个实例 “第一个CUDA程序”我是在VS2008+CUDA5.0下运行的老出错
因为cuda5.0 把cutil.h等一堆头文件删除并重写了其中的函数,cuda4.x到5.x变化很大,给跪。。。
Ⅳ GPU的浮点运算能力为什么会如此恐怖
要知道GPU本身就是从CPU演变而来的分支。原本奔腾4以前的时代,浮点运算一直都是CPU在执行,而今的系统和软件发展,使得需求的硬件配置越来越高,将浮点运算从CPU中分离出来,单独作为一个单元管理,所谓GPU就是这么来的。
由于CPU的任务繁多,除了3D显示之外,还要做内存管理、输入响应等非3D图形处理工作,因此在实际运算的时候性能会大打折扣,常常出现显卡等待CPU数据的情况,其运算速度远跟不上今天复杂三维游戏的要求。
GPU相当于专用于图像处理的CPU,在处理图像时它的工作效率远高于CPU,但是CPU是通用的数据处理器,在处理数值计算时是它的强项,它能完成的任务是GPU无法代替的,所以不能用GPU来代替CPU。
将3D显示部分的计算交给GPU去处理,让CPU和GPU各司其职,可以大大提高整机运行效率。
Ⅵ GPU和GPGPU是什么它们和CPU有什么区别
GPU概念 GPU英文全称Graphic Processing Unit,中文翻译为“图形处理器”。GPU是相对于CPU的一个概念,由于在现代的计算机中(特别是家用系统,游戏的发烧友)图形的处理变得越来越重要,需要一个专门的图形的核心处理器。 GPU的作用 GPU是显示卡的“心脏”,也就相当于CPU在电脑中的作用,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。2D显示芯片在处理3D图像和特效时主要依赖CPU的处理能力,称为“软加速”。3D显示芯片是将三维图像和特效处.
GPGPU是用于通用目的计算的图形处理器,可以帮助CPU进行非图形相关程序的运算。这项技术被NVIDIA称为CUDA(统一计算设备构架),目前NVIDIA采用以GeForce 8上庞大的流处理器作为硬件基础,利用c语言为释放可编程GPU的能力,实现全新类别的应用程序和新的计算性能水平。
GPGPU,也有人形象地称为GP2U(GP的两次方U)。这两个GP代表拉不同的含义,后一个GP表示图形处理器(Graphic Process),和U加在一起正是我们熟知的GPU(图形处理器);前一个GP则表示通用目的(General Purpose),所以GPGPU一般也被称为通用图形处理器或通用GPU。
在3D领域,GPU的用途很简单,就是为拉更好的渲染3D场景,减轻CPU在图形运算方面的负担。而时下刚刚出台的GPGPU,则是将应用范围扩展到拉图形之外,无论是科研教育,财务计算,还是在工业领域,GPGPU都得到拉广泛的使用,关于它的科研成果和新应用模式也层出不穷
Ⅶ c语言 gpu
U越来越强大,GPU为显示图像做了优化之外,在计算上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVidia推出CUDA,让显卡可以用于图像计算以外的目的,也就是超于游戏,使得GPU能够发挥其强大的运算能力。
一年前NVIDIA发布CUDA,这是一种专门针对GPU的C语言开发工具。与以往采用图形API接口指挥GPU完成各种运算处理功能不同,CUDA的出现使研究人员和工程师可以在熟悉的C语言环境下,自由地输入代码调用GPU的并行处理架构。这使得原先需要花费数天数周才能出结果的运算大大缩短到数几小时,甚至几分钟之内。
CUDA是用于GPU计算的开发环境,它是一个全新的软硬件架构,可以将GPU视为一个并行数据计算的设备,对所进行的计算进行分配和管理。在CUDA的架构中,这些计算不再像过去所谓的GPGPU架构那样必须将计算映射到图形API(OpenGL和Direct 3D)中,因此对于开发者来说,CUDA的开发门槛大大降低了。CUDA的GPU编程语言基于标准的C语言,因此任何有C语言基础的用户都很容易地开发CUDA的应用程序。
那么,如何使得CPU与GPU之间很好的进行程序之间的衔接呢?以GPGPU的概念来看,显卡仍然需要以传统的DirectX和OpenGL这样的API来实现,对于编程人员来说,这样的方法非常繁琐,而CUDA正是以GPGPU这个概念衍生而来的新的应用程序接口,不过CUDA则提供了一个更加简便的方案——C语言。我们回顾一下CUDA的发展历史。
Ⅷ 有关OpenCL编程的书有哪些注意不是OpenGL
OpenGL Programing Guide(OpenGL红宝书)
Ⅸ GPU编程常识求助:cg、opencv、opengl、cuda、glsl等
你好,
首先,cg,opengl,glsl都是跟计算机图形有关的。cg基本是做渲染的,opengl是一个开源图形库,和微软的direct3D是一样的。glsl是shading language ,专门用来写shader的,在GPGPU( general purpose GPU)概念出来之前,好多人用glsl来做并行计算。
其次,CUDA和OpenCL是两个专门做GPU运算的库。CUDA非常好用,它有自己的NVCC编译器,和各个系统都兼容很好,但是仅限于用于NVIDIA自己的显卡。OpenCL虽然任何显卡都可以使用,但是它的GPU的代码要放到单独的一个文本文件中编译,操作上要比CUDA要复杂。
最后,其实CUDA和OpenCL学那个多一样,因为并行运算的思想是一样的。推荐你两本书:
Programming Massively Parallel Processors 2nd(入门)
CUDA Programming A Developer-'s Guide to Parallel Computing with GPUs (高级一点)
谢谢,望采纳