您的位置 首页 编程

谈GPU的效果、原理及与CPU、DSP的差异

GPU是显示卡的“心脏”,也就相当于CPU在电脑中的作用,它决定了该显卡的档次和大部分性能,同时也是2D显示卡和3D显示卡的区别依据。2D显示芯片在处理3D图像和特效时主要

  GPU是显现卡的“心脏”,也就相当于CPU在电脑中的作用,它决议了该显卡的层次和大部分功用,一起也是2D显现卡和3D显现卡的差异根据。2D显现芯片在处理3D图画和特效时首要依靠CPU的处理才能,称为“软加快”。3D显现芯片是将三维图画和特效处理功用会集在显现芯片内,也即所谓的“硬件加快”功用。显现芯片通常是显现卡上最大的芯片(也是引脚最多的)。GPU使显卡减少了对CPU的依靠,并进行部分本来CPU的作业,尤其是在3D图形处理时。GPU所选用的中心技术有硬体T

  GPU可以从硬件上支撑T&L(TransformandLighting,多边形转化与光源处理)的显现芯片,由于T&L是3D烘托中的一个重要部分,其作用是核算多边形的3D方位和处理动态光线作用,也可以称为“几许处理”。一个好的T&L单元,可以供给详尽的3D物体和高档的光线特效;只不过大多数PC中,T&L的大部分运算是交由CPU处理的(这就也便是所谓的软件T&L),由于CPU的使命繁复,除了T&L之外,还要做内存办理、输入呼应等非3D图形处理作业,因而在实践运算的时分功用会大打折扣,常常呈现显卡等候CPU数据的状况,其运算速度远跟不上今日杂乱三维游戏的要求。即便CPU的作业频率超越1GHz或更高,对它的协助也不大,由于这是PC自身规划形成的问题,与CPU的速度无太大联系。

  首要作用

  今日,GPU现已不再局限于3D图形处理了,GPU通用核算技术发展现已引起业界不少的重视,现实也证明在浮点运算、并行核算等部分核算方面,GPU可以供给数十倍乃至于上百倍于CPU的功用,如此强悍的“新星”难免会让CPU厂商老迈英特尔为未来而严重,NVIDIA和英特尔也常常为CPU和GPU谁更重要而打开口水战。GPU通用核算方面的规范现在有OPEN CL、CUDA、ATI STREAM.其间,OpenCL(全称Open Computing Language,敞开运算言语)是第一个面向异构体系通用意图并行编程的敞开式、免费规范,也是一个一致的编程环境,便于软件开发人员为高功用核算服务器、桌面核算体系、手持设备编写高效简便的代码,并且广泛适用于多中心处理器(CPU)、图形处理器(GPU)、Cell类型架构以及数字信号处理器(DSP)等其他并行处理器,在游戏、文娱、科研、医疗等各种范畴都有宽广的发展前景,AMD-ATI、NVIDIA现在的产品都支撑OPEN CL.NVIDIA公司在1999年发布GeForce 256图形处理芯片时首要提出GPU的概念。从此NV显卡的芯就用这个新姓名GPU来称号。GPU使显卡减少了对CPU的依靠,并进行部分本来CPU的作业,尤其是在3D图形处理时。GPU所选用的中心技术有硬体T

  作业原理

  简略说GPU便是可以从硬件上支撑T&L(Transform and Lighting,多边形转化与光源处理)的显现芯片,由于T&L是3D烘托中的一个重要部分,其作用是核算多边形的3D方位和处理动态光线作用,也可以称为“几许处理”。一个好的T&L单元,可以供给详尽的3D物体和高档的光线特效;只不过大多数PC中,T&L的大部分运算是交由CPU处理的(这就也便是所谓的软件T&L),由于CPU的使命繁复,除了T&L之外,还要做内存办理、输入呼应等非3D图形处理作业,因而在实践运算的时分功用会大打折扣,常常呈现显卡等候CPU数据的状况,其运算速度远跟不上今日杂乱三维游戏的要求。即便CPU的作业频率超越1GHz或更高,对它的协助也不大,由于这是PC自身规划形成的问题,与CPU的速度无太大联系。

  GPU与DSP差异

  GPU在几个首要方面有别于DSP(Digital Signal Processing,简称DSP(数字信号处理)架构。其一切核算均运用浮点算法,并且现在还没有位或整数运算指令。此外,由于GPU专为图画处理规划,因而存储体系实践上是一个二维的分段存储空间,包含一个区段号(从中读取图画)和二维地址(图画中的X、Y坐标)。此外,没有任何直接写指令。输出写地址由光栅处理器确认,并且不能由程序改动。这关于天然散布在存储器之中的算法而言是极大的应战。最终一点,不同碎片的处理进程间不允许通讯。实践上,碎片处理器是一个SIMD数据并行履行单元,在一切碎片中独立履行代码。

  尽管有上述束缚,可是GPU仍是可以有效地履行多种运算,从线性代数和信号处理到数值仿真。尽管概念简略,但新用户在运用GPU核算时仍是会感到利诱,由于GPU需求专有的图形常识。这种状况下,一些软件东西可以供给协助。两种高档描影言语CG和HLSL可以让用户编写相似C的代码,随后编译成碎片程序汇编言语。Brook是专为GPU核算规划,且不需求图形常识的高档言语。因而对第一次运用GPU进行开发的作业人员而言,它可以算是一个很好的起点。Brook是C言语的延伸,整合了可以直接映射到GPU的简略数据并行编程结构。经GPU存储和操作的数据被形象地比方成“流”(stream),相似于规范C中的数组。中心(Kernel)是在流上操作的函数。在一系列输入流上调用一个中心函数意味着在流元素上施行了隐含的循环,即对每一个流元素调用中心体。Brook还供给了约简机制,例如对一个流中一切的元素进行和、最大值或乘积核算。Brook还彻底躲藏了图形API的一切细节,并把GPU中相似二维存储器体系这样许多用户不熟悉的部分进行了虚拟化处理。用Brook编写的使用程序包含线性代数子程序、快速傅立叶转化、光线追寻和图画处理。使用ATI的X800XT和Nvidia的GeForce 6800 Ultra型GPU,在相同高速缓存、SSE汇编优化Pentium 4履行条件下,许多此类使用的速度提高高达7倍之多。

  对GPU核算感兴趣的用户尽力将算法映射到图形根本元素。相似Brook这样的高档编程言语的面世使编程新手也可以很简单就把握GPU的功用优势。拜访GPU核算功用的便利性也使得GPU的演化将继续下去,不仅仅作为制作引擎,而是会成为个人电脑的首要核算引擎。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/biancheng/116299.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部