版主
主题
回帖0
积分10609
阅读权限200
注册时间2008-11-22
最后登录1970-1-1
在线时间 小时
|
本帖最后由 kenson 于 2012-4-2 21:11 编辑
- K6 ~0 _' ?7 q9 [2 @! Q7 l' t1 ^. q0 Y, o3 N
GPU与DSP的区别
' t+ h( s; S" t0 u9 n
1 A0 K) c7 k; c# H4 S5 m8 f GPU在几个主要方面有别于DSP架构。其所有计算均使用浮点算法,而且目前还没有位或整数运算指令。此外,由于GPU专为图像处理设计,因此存储系统实际上是一个二维的分段存储空间,包括一个区段号(从中读取图像)和二维地址(图像中的X、Y坐标)。此外,没有任何间接写指令。输出写地址由光栅处理器确定,而且不能由程序改变。这对于自然分布在存储器之中的算法而言是极大的挑战。最后一点,不同碎片的处理过程间不允许通信。实际上,碎片处理器是一个SIMD数据并行执行单元,在所有碎片中独立执行代码。8 h! N2 K+ _8 t4 C& e( [
尽管有上述约束,但是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倍之多。
3 C$ V7 P* C0 `, O- t) z3 d 对GPU计算感兴趣的用户努力将算法映射到图形基本元素。类似Brook这样的高级编程语言的问世使编程新手也能够很容易就掌握GPU的性能优势。访问GPU计算功能的便利性也使得GPU的演变将继续下去,不仅仅作为绘制引擎,而是会成为个人电脑的主要计算引擎。& F) e# W$ F, t4 L" o- p
[编辑本段]GPU识别软件
; y2 M5 i* P" _4 {% T! l 说起处理器识别工具CPU-Z,其知名度和必备度无需赘言。硬件网站TechPowerUp.com现在又给我们提供了一个类似的工具,用于显卡识别的"GPU-Z"。这是TechPowerUp GPU-Z发布的第二个版本为0.0.2,体积仅有334KB
5 @. L0 e9 t9 ?( Q: [1 f 现在TechPowerUp GPU-Z的最新版本是09年3月25日更新的v0.3.3,体积为426 KB。新的0.3.3版本将支持许多即将上市的显卡产品,其中包括ATI Radeon HD 4700系列显卡,Radeon HD 4890,以及GeForce GTX 275等。新版本还修复了之前版本的一些Bug,最明显的改动是对GT200核心制程显示和G98流处理器数目显示进行了改进。
# \3 Q" ~2 h4 v; N[编辑本段]关于CPU和GPU的相关问题2 s4 n2 p W* N% @& K- E
第一个问题:. w8 A% I3 A8 T
GPU的竞争远比CPU的竞争来得激烈。通用PC的CPU就只有英特尔和AMD两家大厂。而在GPU方面领先的是N记和A记两家厂商,但能生产中低端产品的还有英特尔、3S等好几家厂商。它们的产品虽然不如前两家,但在很多应用方面也能满足用户的需要,所以N记和A记只有拼命往前跑才不会死掉。CPU厂商没有采用GPU的先进工艺是因为CPU厂商都有自己投资的生产线,不可能一下把原来的生产线都淘汰了上新的生产线,那样做可能连当初投入的资金都难以收回。而GPU厂商由于种种原因,一般都是自己设计由别人代工的,比如找台积电代工。代工厂商为了能接到业务,只有不停升级自己的生产设备,这样才能生存下来。所以造成以上原因。
# h1 [, z3 O! W. u* S- z 第二个问题
* z: v# i4 a8 c0 C 就如你所说的一样,CPU除了处理游戏的AI,情节等方面的数据外,对于有些图像方面也是由它完成的。当微软每次发布新的DX时,并不是每款GPU都能支持DX新的特性,所以有些图像方面的任务还得由CPU来完成。还有有些特性比如重力特性以前是由CPU来完成,现在有些GPU也能支持了,这些任务就由GPU来完成了。
! h( v/ y6 k( g U& J- g \ 第三个问题
- _+ `% ] K9 i0 g% m GPU相当于专用于图像处理的CPU,正因为它专,所以它强,在处理图像时它的工作效率远高于CPU,但是CPU是通用的数据处理器,在处理数值计算时是它的强项,它能完成的任务是GPU无法代替的,所以不能用GPU来代替CPU。
9 d. w3 ?- @9 S2 F; V" k' b, [! U7 V 最后补充 {+ G& K, Q/ @" s# c N Z- B) d
现在AMD收购了A记显卡芯片的设计厂商,AMD看到今后CPU和GPU只有走一条融合的道路才能地竞争中占得先机。CPU和GPU如何配合默契才能最大地提高工作效率是AMD现在考虑的问题,也是英特尔的问题 |
|