GPU计算和GPU通用计算的区别

“GPU计算是通过并行编程语言和API使用GPU,而不是用传统的图形API和图形流水线模型,进行计算而产生的术语。这是为了与早前使用图形API和图形流水线进行非图形任务的GPU上的通用运算方法进行区别。”——计算机组成与设计-硬件/软件接口,原书第四版。

GPU通用计算,我的理解是运用GPU强大的并行计算能力来计算规则性强,简单而量大的非图形任务,如上文中所写的那样(①但是具体是什么任务呢?视频制作与压制属于这类吗?能否举例说明?),但是对于“GPU计算”,我是第一次听说这个词,而且还是跟“GPU通用运算”是不同意义的词。GPU计算和GPU通用运算,从文中看来GPU通用运算是出现在GPU计算之前,②那么GPU计算是一种新计算方法吗?③GPU计算和GPU通用运算有什么区别?。。。问的有点乱,见谅

...想了想,问题分类还是选择在软件开发类比较靠谱...

GPU的并行能力十分强大,这和它先天的结构体系有关。我们觉得,这么强大并行计算能力,只用在图形领域,实在太浪费了。所以,GPU通用计算就将GPU的性能引向任何需要高密度计算的领域。
传统的图形API包括OpenGL和DirectX,这类API是用GPU来处理图形的,其并行计算也是为了图形计算的。而专用的并行计算API,就是OpenCL这样的,我们可以让GPU计算流体,模拟爆炸——这些计算都不是图形计算。用OpenGL也可以做这些计算,但最终表现为一幅“图片”,只不过这图片不是美丽的图片,而是一组计算结果映射为图形矢量形成的杂乱无章的图——这就是早先的GPU通用计算。
GPU计算可以用在很多方面,在异构超级计算机中用得最为广泛。GPU计算也可以用来为视频转码……用处很多。追问

模拟爆炸和流体这种物理运算应该是CPU的工作吧?老黄也说了往往顶级显卡在GPU性能足够的前提下掉帧是受到CPU的限制,是不是可以说实际上,一般情况下GPU通用计算没有用在辅助CPU进行物理计算上呢?

追答

爆炸模拟,流体计算方面,因为公式十分复杂,所以,就采用多级近似的方式,将公式转换为线性公式,拆为多个并行计算,放进GPU运算。这样,GPU通过并行优势就可以快速求解了。CPU更擅长串行处理,也就是一步步去求解方程。所以,配合线性变换,GPU能更快完成工作。
顶级显卡受CPU影响掉帧……这个和GPU通用计算无关。不过,目前GPU的任务调度仍然是靠CPU完成的,因为GPU内部是没有指令集的,无法识别命令,只能由CPU安排任务。
由于异构计算的复杂性,编程同样困难,所以,目前GPU对CPU的辅助仍然有限,这主要受限于GPU通用计算编程的难度。

追问

3DMARK里有一项测试是对CPU进行的,是物理计算测试,这里为什么测的是CPU呢?表现在画面上的是一个个球体进行自由落体运动,以及柱子,墙体等物体受球体下落的作用而被破坏。这样的计算是如何进行的呢?是CPU和GPU一起参与(CPU拆公式,然后交给GPU)吗?...我已经有点晕了,问的有点乱..见谅

追答

一般这样的任务都是CPU完成的,比如Havok物理引擎,优先使用CPU执行。但实际上,GPU对这类物理模拟,尤其是一些非线性的模拟,更有优势,比如Nvidia的PhysX物理引擎组件。只是编程的困难程度限制了其应用。所以,目前GPU通用计算在家用领域还不多,主要用在超级计算机方面。

追问

那么GPU通用计算是通过对CUDA和OPENCL等API编程来把串行任务转化为并行任务咯?这是我对你的解答的理解,不知道对不对...如果是这样...我还有一个问题.....我还是没搞清楚GPU运算跟GPU通用运算是不是同一个东西...

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-20
GPU越来越强大,GPU为显示图像做了优化之外,在计算上已经超越了通用的CPU。如此强大的芯片如果只是作为显卡就太浪费了,因此NVidia推出CUDA,让显卡可以用于图像计算以外的目的,也就是超于游戏,使得GPU能够发挥其强大的运算能力。
1、虽然我们看到CPU和GPU在运算能力上面的巨大差距,但是我们要看看他们设计之初所负责的工作。CPU设计之初所负责的是如何把一条一条的数据处理玩,CPU的内部结构可以分为控制单元、逻辑单元和存储单元三大部分,三个部分相互协调,便可以进行分析,判断、运算并控制计算机各部分协调工作。其中运算器主要完成各种算术运算(如加、减、乘、除)和逻辑运算( 如逻辑加、逻辑乘和非运算); 而控制器不具有运算功能,它只是读取各种指令,并对指令进行分析,作出相应的控制。
2、通常,在CPU中还有若干个寄存器,它们可直接参与运算并存放运算的中间结果。CPU的工作原理就像一个工厂对产品的加工过程:进入工厂的原料(程序指令),经过物资分配部门(控制单元)的调度分配,被送往生产线(逻辑运算单元),生产出成品(处理后的数据)后,再存储在仓库(存储单元)中,最后等着拿到市场上去卖(交由应用程序使用)。在这个过程中,从控制单元开始,CPU就开始了正式的工作,中间的过程是通过逻辑运算单元来进行运算处理,交到存储单元代表工作的结束。数据从输入设备流经内存,等待CPU的处理。
3、而GPU却从最初的设计就能够执行并行指令,从一个GPU核心收到一组多边形数据,到完成所有处理并输出图像可以做到完全独立。由于最初GPU就采用了大量的执行单元,这些执行单元可以轻松的加载并行处理,而不像CPU那样的单线程处理。另外,现代的GPU也可以在每个指令周期执行更多的单一指令。例如,在某些特定环境下,Tesla架构可以同时执行MAD+MUL or MAD+SFU。本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网