» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

携带领域的GPU们

本文目的非技术指导,并不保证其中数据资料的准确性,欢迎指正。

我们相对熟悉的GPU是一个高热高功耗,对于游戏PC来说已经取代CPU成为PC内最大发热单元的独立部件。
更进一步还能了解到GPU是非常依赖于显存带宽的,乃至于商家也会使用这类手法推荐给消费者性能其实未必高的高位宽的上代高端卡。

但是还有一种GPU,在功耗和带宽都受限的情况下发展形成,它们随着掌上游戏机和高端智能手机的普及正越来越变得为人熟知。

功耗如何受限呢?
目前最低端的桌面独立显卡功耗大约就有20w,顺便一提,这大约就是一台Wii的功耗,笔记本用的有更低的8w左右。
但就算是8w,对于一个只有3~6wh的电可用的设备来说,也是不切实际的高度了。
一般来说,整一个SOC,包括了CPU、GPU一干,在常见应用下的平均功耗不能超过500mw。

带宽如何受限呢?
一条普通的内存条,可以说是PC内功耗最低的部件,一般的款式不需要散热片即可工作,它的大约功耗为3W,但这个3W对携带设备来说也已经过于奢侈。
携带芯片算是最好选择的大概是16bit 533Mhz的LPDDR2,一条DDR3内存条1/12~1/8的带宽,最低端显卡(64bit 800Mhz GDDR2)的1/6带宽。跟前面的功耗份额一样,整个SOC共用。

PowerVR在携带GPU已经几乎是垄断者,除高通之外(因为收购了ATI Imageon,所以有自己的GPU,名为Adreno GPU,其实就是Imageon Z430),三星和德仪都是用PowerVR的方案。
甚至就连英特尔的Atom Z系列,所配套的GMA500,其实就是SGX535的别名。

PowerVR为什么可以做到这个地步?
因为它有绝活,在DC时代人们就听说过隐面消除一词,大约可以节省2/3的渲染工作量。
不过现在这个的名词一般称作:延迟渲染,而PowerVR自MBX起,就将其更进一步,将分块渲染和延迟渲染结合起来。
延迟渲染是先判定哪些像素是最后需要显示的再着色。
而分块渲染则是把画面分割成小块,每次渲染一小块一小块,来完成一整帧。
前者降低了GPU的工作量,后者则大大减少了需要的显存大小。
这都是非常适合低功耗低带宽低容量的携带领域的特征。

PowerVR作为先行者,在这方面留下了相当高的专利门槛,特别是延迟渲染方面,硬件上就专门为延迟渲染设计的就这么一家。
而且PowerVR推出新产品的速度也很快,可以支持16核并联的SGX543理论上可以组出性能超过9600GT的显卡,而SGX545更是在携带领域第一个实现了OpenCL的支持,可以享受通用加速。
既有专利护身,又有市场占有率带来准标准优势,研发方面也不含糊。
基本上,在携带GPU市场而言是不可战争的对手,它在携带领域GPU的领先优势不亚于桌面显卡的A、N跟其他厂商的距离。

而DMP,一个不知名的厂商,没有一只量产的手机使用了它的GPU。

但是,事实上3DS现在展出的画面远远超过iphone。

为什么?
因为DMP也不是蠢到直接把桌面GPU简化下就拿过来的企业。
PICA200的原型名为ULTRAY2000,是一个桌面领域的DX9显卡,自然是具备shader的。
但是,在把ULTRAY2000改进到PICA200后,却成了没有shader的DX7级别。
把不常用的数据类型删除减少管线数量这些是把桌面显卡改便携显卡很常见的处理方法,毕竟OpenGL ES本来就是OpenGL的简化版,而且由于分辨率的降低,性能要求也更少。类似的设计很多,Tegra的GPU来自NV40,Imageon Z430来自C1,都是简化数据支持和删减管线数量的结果,但没有从DX9改成DX7的。
但是,和其他的删减管线相反,PICA的管线保留了ULTRAY2000完整的4条,而功耗却大大的降低了。
因为和可编程的shader比起来,固定管线非常省电。
同时因为固定管线不可编程也就不需要写指令,而指令同样需要储存在显存之中需要消耗带宽和容量,换而言之,固定管线对于显存的依赖也更少,而这正是PowerVR本来的优势。

但是固定管线无法支持新的特效又该怎么解决呢?
靠扩展
而显卡的扩展当年是一个噩梦
早期显卡OpenGL会议上各家自说自话,D3D还没成熟,各家显卡商都有大量胡乱的扩展,游戏如果需要发挥显卡的性能开发非常困难,而且当时的3D游戏兼容性也很差。
而且扩展是固定管线的设计,它可以增加显卡的特效,不像shader可以编程实现新的特效,一旦设计完成拿去生产一切就固定下来了。如果选择的不好,要么浪费了,要么该有的没有,那都不是好结果。

MAESTRO扩展如何避免出现这种情况呢?
那就是靠后发优势,2005年,伴随ULTRAY2000一起,MAESTRO-1扩展技术问世了。当时DX9已经使用多年,基本上DX9硬件的可能性,它能实现的各种特效都已经非常清楚,其中有几种特效最为常用的,MAESTRO-1就用固定管线把他们都实现了。所以MAESTRO-1的特效每一条都是可称作DX8、9名片的代表性特效,有用了就感到这是DX9游戏,或者DX9游戏怎么可能没有用这个的级别。
而且因为都是原有的代表性特效,这也避免了兼容性问题,DMP提供的开发工具可以很简单的把原有的DX9特效转换为MAESTRO上的实现。
在PICA200投身到携带领域后,MAESTRO-2G诞生了,在MAESTRO-1的基础上加以改进,最大的变化就是加入了过程纹理和曲面细分。这两都可以有效减少对显存的需求,可以说是非常适合于携带领域的功能。

Tegra,出自老牌图形厂商Nvidia,更重要的是有传闻它就是3DS将采用的SOC。

这是怎么样的一个GPU呢?
这不是GPU而是包含了GPU的SOC,实际上Tegra比较特色的地方也不是GPU。
它是一个自称7、8核心的SOC,除了1、2个传统意义上的CPU外,包括一个音频解码核心,一个支持1080p H.264硬件加速的视频解码核心,一个高清视频编码核心,一个最高支持1200万像素摄像头的图片/照片处理核心,一个GeForce 2D/3D图形核心以及一个用于芯片内部数据/功耗管理的ARM 7处理器核心。
最大的区别就是音频、视频的解码都是硬件实现,而且,没有一般SOC中担任这个任务的DSP核心。
DSP是可编程的运算单元,通过编程可以实现很多功能,但是功耗也比较大,硬件实现的不灵活,功耗就低多了。
同时,Tegra塞了ARM7来管理芯片内通讯,一般情况下这是主CPU的任务。
以播放MP3为例,一般SOC的主CPU需要工作虽然运行在比较低负载的情况下,同时DSP也在忙;而Tegra的主CPU可以完全进入休眠,只有ARM7+硬件音频解码单元在工作。
于是,可以大大降低功耗。

GPU呢?NV作为GPU大厂,难道卖点不是GPU么?
Tegra里面塞有一枚基于GF6100集成显卡,加入了CUDA支持的GPU核心,规模是1VS、2PS,频率是120MHz,应该说,比我最初想象的要弱……
这个GPU的性能应该说是不怎么值得一提的,实际上NV除了拿Tegra用小屏幕跑过TNT2都能跑顺的雷神3也没有对自己的3D性能多说什么。
而且实际采用Tegra的产品也没有拿来主打3D游戏的,Zune HD、KIN手机,反而无一例外,都拿MP3和视频播放当作卖点。
应该说,Tegra的3D性能强劲很大程度上是因为其出自NV带来的一种错觉。

那么Tegra2呢?
首先我要说2010年1月才发布的Tegra2不可能用于一个2010年内上市的游戏机,因为设计产品、制作开发套件、制作首发游戏这个过程来不及。
Tegra2带来性能提升的主要改动,大概有3处,一个是内存控制器从支持LPDDR1扩展到支持DDR2,带宽大概翻了4倍;然后CPU从800Mhz的ARM11升级到了1Ghz双核的Cortex-A9,这也是4倍;还有GPU,因为没有太多蛋疼的人拿到Tegra2来做测试,官方又没有公布具体设计,具体性能还是未知,但是官方有一个说法“2x 3D graphics performance of previous generation Tegra”,就是说2倍,是Tegra2主要提升中提升幅度最小的。

要去如何评论呢?
PowerVR无疑是携带领域GPU的正统
而Tegra继承自桌面正统GPU
而PICA200只是邪门歪道的取巧设计

但是在机缘巧合之下。
比方说DX9流行的非常久,2002年有了9700,而到现在高清家用机是DX9的GPU,还有大量使用XP的电脑,DX9还生命旺盛。这使得PICA200有4年的时候可以总结DX9的主要特效,而且这些特效到现在还一点都不过时。
比方说游戏机是一个硬件规格稳定的平台,游戏商本来就是针对你来开发,不标准的设计也没有什么问题,换成跑安卓的手机就不一样了。
比方说开发3DS的是对续航非常在意的任天堂。

在机缘巧合之下,DMP的PICA200相对PowerVR、Tegra,确实是合适的多得多的选择。

其实,NV在Tegra之前也有过一款携带GPU的设计,
实际上那款要比NV40的缩水版要有意思多了。

那就是2004年随着GoForce 3000/4000一起问世的GoForce 3D,或者说它的代号AR10,这是一款和前面的GPU截然不同的设计。

前面那些PowerVR很正统,PICA200是把shader取消掉只留固定管线来节省功耗,Tegra是把NV40缩减规模降低频率。
而这款GoForce 3D呢?它把一些现在GPU都不敢丢掉的固定部分也给除掉了,只使用可编程的shader来实现。
一般的固定管线GPU是很长一条流水线,一个像素从头走到尾就算完成了输出。
而GoForce之中,要反复在在shader上跑,每一次处理一个功能。
GoForce是很极端的设计,它确实做到了比固定管线更少的晶体管和更低的功耗(我前面说了,固定管线比shader更省晶体管和功耗,但是做事做绝就又反过来了),而且理论性能还差不多。

看起来很好。
但就结果而言这款设计称不上成功,NV搞Tegra时也没有去延续它。

为什么呢?
一是就我的理解,GoForce 3D架构的实际性能不怎么样,它的理论性能我怀疑只有渲染那种一张贴图搞定的天空一类,单次贴图,不考虑前后景遮蔽关系,没有半透明的部分时才能实现。
实际上真有这种画面,也是支持OpenVG的2D卡就可搞定的。
而复杂画面的时候,一次渲染都需要要反复执行,性能表现就比用长固定管线一次搞定的就要悲剧很多了。
当然现代显卡的shader也是类似的流程,不过在结构上早就做了对应的改进,比方说SP的数量要比Tex多得多,更细化的分支,更大的并行度,线程管理等等,同时像TA、Z一类的实在是必然用到的单元,还是保持固定设计。
二就是实在是生不逢时,支持shader的OpenGL ES 2.0是2007年才发布的,GoForce 3D虽然内含shader但还是只能跑OpenGL ES 1.0、1.1的API,根本没有机会发挥自己的特长。
三是因为NV没有延迟渲染啥的专利优势,为了弥补显存过慢的问题,采用了edram,而且集成的很大,640KB甚至2.5MB,这部分的缺陷使得面积优势并不存在;还有除了GoForce6100(其实我不确定这个用的还是Goforce 3D核心)是个集成了ARM11的SOC外,GoForce系列是独立显卡,相比PowerVR一贯的SOC方案,那外部总线的功耗消耗,更难协调的电源管理使得功耗优势很可能也不复存在。
结果就是成了各方面都显示不出优点,还用起来比较慢的玩意,失败也在情理之中了。

这款东西非常独特甚至可以说是超前,现在精神上的继承者可能是PS3最初计划采用的Cell GPU或者英特尔的LRB一类使用全可编程的管线的设计,这显然是属于未来的。
尤为有趣的是为了降低功耗,GoForce 3D走了和PICA200完全相反的路线。

[ 本帖最后由 卖哥 于 2010-8-8 02:26 编辑 ]


本帖最近评分记录

TOP


其实我想了想
里面有自己内容的也就是后面的评论段
其他都是罗列一些自己都不知道是否可靠的资料。

如果不是DX9生命力那么强的话
2002年到2006年整理出DX9游戏使用的主要特效,把它们做成固定管线后,DX9的那些特效也马上要淘汰了。
而现在的情况是到了2010年,这些特效还是非常好用,非常主流。

如果早几年,晚几年可能PICA200什么都不是。
如果不是用在游戏机上它也可能非常不好用。
但是现在的情况而言,它还真是不错的选择,以至于从PowerVR和Tegra手里拿下了这个授权数量很可能上亿的订单。



TOP

引用:
原帖由 tdk01 于 2010-8-5 11:14 发表
posted by wap, platform: dopod

一些封闭系统的手机为什么不用这个用powervr系列呢
哪个系统封闭的手机需要这种级别的GPU呢?

iphone?
iphone2G是2007年6月发售,用的是2002年发布的Power MBX-Lite作为GPU,这也是固定管线的。
后来的升级款考虑兼容性,3GS也就继续PowerVR了,升级到了SGX 535。
至于为什么初代iphone不考虑PICA200。
因为ip核发布到具体产品发布也要经过大量的研发,中间要隔相当长的时间。
举例而言
Cortex A8和PowerVR SGX都是2005年发布的,比PICA200还早。
使用它们的具体产品,iphone3GS,2009年6月19日。

换句话说,iphone初代根本来不及使用PICA200,PICA200根本不可能再选择之内。


TOP

引用:
原帖由 NintendoWii 于 2010-8-5 13:37 发表
也就是说,PICA200其实只是一款性能不是很强大的显卡,但是靠扩展使用的技术而让人觉得画面非常牛……?
基本没有这个意思。

别的公司把桌面显卡改成携带显卡,一般就是删减管线降低频率,精简下支持的数据类型什么的,换而言之,牺牲大量的性能和少量的灵活度来降低功耗。
DMP则是把DX9卡给删成了DX7卡,然后管线规模不变,频率也只降低一半,换而言之,牺牲大量的灵活度和少量的性能来降低功耗。

TOP

引用:
原帖由 yak 于 2010-8-5 14:57 发表
意思说,DMP的PICA200,就是3DS用的GPU?
这个是本来就知道的事情吧

TOP

引用:
原帖由 yak 于 2010-8-5 15:24 发表
我没有了解过这方面的资料呢,之前似乎很多人猜测是TEGRA。
http://www.dmprof.com/release/20100621_3DS.html

DMP自己曝的光

TOP

频率还不知道,200Mhz的话
相比PSP只是略高
以渲染两幅400*240来看,每像素分到的填充率的还更低一些。

TOP

我再说一下吧
PICA200有很多缺点
比方说不灵活
比方说不标准
但是由于DX9的长寿,使得扩展提供的最常用的DX8、9特效,到现在还并不过时。
而且由于游戏机作为封闭系统对于标准也不是必选项。
所以用在2010年底发售的3DS上,缺点还是可以稍稍无视的。

而且最新的PSP,PSPgo和PSP3000还是只有4小时左右的续航
3DS屏幕的总面积超过了PSP的4.3寸,而且其中有一个面板需要一般面板的2倍的亮度(每个眼睛只能看到一半,要感受到和原来相同的亮度其实需要2倍的光强),换句话说屏幕系统是要比PSP的单个4.3寸更为费电的。
而且续航说法是不亚于DSi,我理解就是中等亮度6~9小时。
这基本上就要求3DS的SOC比PSP最新工艺型号的SOC更小,更高的性能是可能做到的,但是比更高还高的性能还是没什么办法的。
实际上3DS画面对于PSP的进步,主要还是在更大的内存、更宽裕的纹理大小限制、还有新的特效。
如果把PSP的游戏移植过来,保持画面一致,然后同样好的优化(也就是无法应用大内存、大纹理、新特效优势的时候),3DS的帧数很可能更低。

TOP

补一段
引用:
Tegra,出自老牌图形厂商Nvidia,更重要的是有传闻它就是3DS将采用的SOC。

这是怎么样的一个GPU呢?
这不是GPU而是包含了GPU的SOC,实际上Tegra比较特色的地方也不是GPU。
它是一个自称7、8核心的SOC,除了1、2个传统意义上的CPU外,包括一个音频解码核心,一个支持1080p H.264硬件加速的视频解码核心,一个高清视频编码核心,一个最高支持1200万像素摄像头的图片/照片处理核心,一个GeForce 2D/3D图形核心以及一个用于芯片内部数据/功耗管理的ARM 7处理器核心。
最大的区别就是音频、视频的解码都是硬件实现,而且,没有一般SOC中担任这个任务的DSP核心。
DSP是可编程的运算单元,通过编程可以实现很多功能,但是功耗也比较大,硬件实现的不灵活,功耗就低多了。
同时,Tegra塞了ARM7来管理芯片内通讯,一般情况下这是主CPU的任务。
以播放MP3为例,一般SOC的主CPU需要工作虽然运行在比较低负载的情况下,同时DSP也在忙;而Tegra的主CPU可以完全进入休眠,只有ARM7+硬件音频解码单元在工作。
于是,可以大大降低功耗。

GPU呢?NV作为GPU大厂,难道卖点不是GPU么?
Tegra里面塞有一枚基于GF6100集成显卡,加入了CUDA支持的GPU核心,规模是1VS、2PS,频率是120MHz,应该说,比我最初想象的要弱……
这个GPU的性能应该说是不怎么值得一提的,实际上NV除了拿Tegra用小屏幕跑过TNT2都能跑顺的雷神3也没有对自己的3D性能多说什么。
而且实际采用Tegra的产品也没有拿来主打3D游戏的,Zune HD、KIN手机,反而无一例外,都拿MP3和视频播放当作卖点。
应该说,Tegra的3D性能强劲很大程度上是因为其出自NV带来的一种错觉。

那么Tegra2呢?
首先我要说2010年1月才发布的Tegra2不可能用于一个2010年内上市的游戏机,因为设计产品、制作开发套件、制作首发游戏这个过程来不及。
Tegra2带来性能提升的主要改动,大概有3处,一个是内存控制器从支持LPDDR1扩展到支持DDR2,带宽大概翻了4倍;然后CPU从800Mhz的ARM11升级到了1Ghz双核的Cortex-A9,这也是4倍;还有GPU,因为没有太多蛋疼的人拿到Tegra2来做测试,官方又没有公布具体设计,具体性能还是未知,但是官方有一个说法“2x 3D graphics performance of previous generation Tegra”,就是说2倍,是Tegra2主要提升中提升幅度最小的。

TOP

又补一段,这个设计很有意思
但是可靠性更低了,一半是靠其他信息脑补推导出来的。
引用:
NV在Tegra之前也有过一款携带GPU的设计
实际上那款要比NV40的缩水版要有意思多了

那就是2004年随着GoForce 3000/4000一起问世的GoForce 3D,或者说它的代号AR10,这是一款和前面的GPU截然不同的设计。

前面那些PowerVR很正统,PICA200是把shader取消掉只留固定管线来节省功耗,Tegra是把NV40缩减规模降低频率。
而这款GoForce 3D呢?它把一些现在GPU都不敢丢掉的固定部分也给除掉了,只使用可编程的shader来实现。
一般的固定管线GPU是很长一条流水线,一个像素从头走到尾就算完成了输出。
而GoForce之中,要反复在在shader上跑,每一次处理一个功能。
GoForce是很极端的设计,它确实做到了比固定管线更少的晶体管和更低的功耗(我前面说了,固定管线比shader更省晶体管和功耗,但是做事做绝就又反过来了),而且理论性能还差不多。

看起来很好。
但就结果而言这款设计称不上成功,NV搞Tegra时也没有去延续它。

为什么呢?
一是就我的理解,GoForce 3D架构的实际性能不怎么样,它的理论性能我怀疑只有渲染那种一张贴图搞定的天空一类,单次贴图,不考虑前后景遮蔽关系,没有半透明的部分时才能实现。
实际上真有这种画面,也是支持OpenVG的2D卡就可搞定的。
而复杂画面的时候,一次渲染都需要要反复执行,性能表现就比用长固定管线一次搞定的就要悲剧很多了。
当然现代显卡的shader也是类似的流程,不过在结构上早就做了对应的改进,比方说SP的数量要比Tex多得多,更细化的分支,更大的并行度,线程管理等等,同时像TA、Z一类的实在是必然用到的单元,还是保持固定设计。
二就是实在是生不逢时,支持shader的OpenGL ES 2.0是2007年才发布的,GoForce 3D虽然内含shader但还是只能跑OpenGL ES 1.0、1.1的API,根本没有机会发挥自己的特长。
三是因为NV没有延迟渲染啥的专利优势,为了弥补显存过慢的问题,采用了edram,而且集成的很大,640KB甚至2.5MB,这部分的缺陷使得面积优势并不存在;还有除了GoForce6100(其实我不确定这个用的还是Goforce 3D核心)是个集成了ARM11的SOC外,GoForce系列是独立显卡,相比PowerVR一贯的SOC方案,那外部总线的功耗消耗,更难协调的电源管理使得功耗优势很可能也不复存在。
结果就是成了各方面都显示不出优点,还比较慢的玩意,失败也在情理之中了。

这款东西非常独特甚至可以说是超前,现在精神上的继承者可能是PS3最初计划采用的Cell GPU或者英特尔的LRB一类使用全可编程的管线的设计,这显然是属于未来的。
尤为有趣的是为了降低功耗,GoForce走了和PICA200完全相反的路线。

TOP

发新话题
     
官方公众号及微博