为什么80%的码农都做不了架构师?>>>   不只有CPU,细数移动GPU的那些事-编程知识网

移动计算时代大潮袭来,手持设备的应用范围也被大大拓宽。从早期手机只能打电话、发短信、看图片,到今天手机能够看高清视频、玩3D游戏,拥有各种 酷炫的操作界面,除了SOC芯片中CPU部分的进步外,其GPU部分也非常重要。和PC相同的是,移动SOC的CPU和GPU两个部分也可以互相搭配、替 换,很多厂商往往会给相同的CPU核心搭配不同的GPU以区分SOC芯片的档次;和PC不同的是,目前移动计算的GPU厂商很多,除了人们熟知的高通、 ARM外,还有NVIDIA、Imagination Technologies等厂商参与其中。那么各个厂商的移动GPU都有哪些特色和主流型号呢?今天本文就和大家一起来梳理这些问题。

  Imagination PowerVR—授权巨头

  发展历史:

  Imagination Technologies(下简称IT)这个公司说起来很有特色:要说历史久远,当年IT的产品可是和Voodoo一争高下,后来在与ATI和 NVIDIA的争斗中败下阵来才退出了桌面市场;要说产品丰富,2010年整个IT销售了2.15亿颗包含了IT技术授权的GPU产品,到2013年估计 这个数据超过了4亿。

  早期的IT图形产品还是非常有优势的。最初IT为康柏电脑生产了PowerVR 1系列产品,后来这款独立显卡产品也有零售,商品名为VideoLogic Apocalypse 3D。由于反响不错,随后IT也为世嘉的土星游戏机定制过GPU芯片。接下来IT又推出了PowerVR 2,支持DirectX 6.0,性能表现尚可,不过由于不支持T&L,PowerVR后续产品没有在桌面市场继续发展下去。反倒是由于PowerVR独特的Tile Based Deferred Rendering基于延迟渲染的分块架构在性能功耗比的表现上优势明显,因此在PowerVR 3、PowerVR 4失败后,iPhone/iPhone 3G使用的PowerVRM B X在移动市场取得了巨大的成功(出货量超过2亿片),这也为今天Powe r V R在移动市场呼风唤雨的地位打下了基础。今天,PowerVR SGX 5和SGX 5XT成为市场的主流产品,为无数玩家带去了极为优秀的移动计算体验。

  PowerVR本身不生产芯片,而是设计芯片并销售授权。购买PowerVR授权的厂商既有英特尔、苹果、三星等业界巨头,也有LG、瑞萨、高通、华 为、索尼等业内大腕,还有一些不太出名的小厂商。其中最需要注意的是苹果,PowerVR由于受到苹果的支持,很多软件特别是3D游戏都先基于IOS平台 的PowerVR的产品研发,再移植到安卓平台其他产品上去,因此PowerVR目前在游戏兼容性上拥有“先天”优势。不仅如此,苹果和英特尔还积极入股 了IT,成为PowerVR的大股东。

  当前主流产品:

  PowerVR目前在市场上的主流产品是PowerVR5系列。根据IT的分类,PowerVR5系列分为PowerVR5和PowerVR5XT两 种核心,都是统一渲染架构产品。前者最早发布于2005年7月,包含了SGX520、SGX530、SGX531、SGX535、SGX540和 SGX545六款核心,这些产品初始制程全部采用了65nm工艺,在200MHz下的性能从0.8GFLOPS一路攀升到3.2GFLOPS(不过也有部 分厂商采用新工艺后继续提高频率以获取更强性能)。目前PowerVR5系列在主流市场上已经不太容易看到。比较著名的是其中的PowerVRSGX 535和SGX 545。其中前者被苹果用于自家的A4处理器中,成就了iPhone 4一代经典的地位,也曾经是首代iPad所使用的处理器;后者曾经被英特尔选中用于搭配自己的移动Atom,用于手机和平板等产品,被命名为GMA 500系列。不过由于早期Atom受到的支持很少,再加上英特尔当时无法很好地控制产品的功耗,因此没有太大的成绩。

  不只有CPU,细数移动GPU的那些事-编程知识网

  iPhone4以视网膜屏幕和强悍的性能著称于世,谁又知道其背后PowerVR SGX 535的默默奉献呢?

  不只有CPU,细数移动GPU的那些事-编程知识网

  iPad 4中使用的PowerVR SGX 554MP4是目前已上市开卖的移动GPU中规模最大、规格最高、性能最强的产品。

  不只有CPU,细数移动GPU的那些事-编程知识网

  图为PowerVR的发展路线

  不只有CPU,细数移动GPU的那些事-编程知识网

  表1:目前比较常见的PowerVR 5XT系列产品的规格

  PowerVR真正的火爆在于苹果的A5处理器上市后。由于经典的iPad2大获成功,PowerVR也开始成为很多玩家眼中的“正统”产品。在 PowerVR5之后,IT推出了PowerVRSGX5XT系列。这个系列的特点在于可以完全支持多核心扩展。IT推出基础的 PowerVRSGX5XT 芯片,厂商可以根据自己的需要使用一个、两个、三个、四个直至最多16个内核,获得不同等级和档次的性能搭配。虽然在官方的列表中,之前Power VRSGX 520到SGX545都出现在Power VR5XT系列的列表中,但实际上这一代PowerVR5XT在市场中大量出现的只有SGX543、SGX544和SGX554三款核心,远比上代的6款 核心要少,不过由于不同的核心搭配策略,各个厂商都能获得自己需要的产品。在图形规格方面,PowerVR5XT继承了PowerVR5系列的优势,支持 OpenGLES 2.0/1.1,也能支持DirectX9.0L3。从PowerVRSGX 544开始,PowerVR引入了一些OpenGL ES 3.0的技术,使得产品能够在新的竞争中继续获取优势。

  从产品方面来看,如果说PowerVR处理器中目前哪一款最有名,相信很多玩家都会想到iPad4使用的PowerVRSGX54MP4内核,它包含 了四颗PowerVR SGX 554核心。也正是这颗GPU核心,让iPad 4能从容面对高达2048×1536超高分辨率的视网膜屏幕,也是iPad 4在性能上傲视群雄的关键因素。除此之外,目前市场上比较常见的处理器比如三星Exynos 5Octa(也就是GalaxyS4中使用的那颗“4+4”的处理器)也使用了PowerVRSGX544MP3以获得强大的图形性能—这也是三星继 Exynos3之后,再度在高端CPU中启用PowerVR的产品。除此之外,还有一些厂商使用了比较老的PowerVR架构,比如MTK一些面向入门级 用户的产品,使用了“新”的SGX531Ultra(实际上是PowerVR SGX531从65nm改用新工艺40nm后的高频率版本),在性能和功耗上做出了比较好的权衡。

  总的来看,依靠授权IP,收取权利金的方式,PowerVR成为目前移动GPU市场上的绝对霸主。根据一些统计资料,2012年PowerVR占据了 高达50.1%的ARM市场移动GPU的份额。“授权— 收取权利金— 投入新的资本研发新的核心—再授权”,PowerVR的这种研发方式尽可能避开了芯片生产中的工艺风险,让自己能够充分利用先进的技术来获取市场优势。 2012年,PowerVR就公布了下一代PowerVRSGX6的资料,不过目前工艺尚不成熟,预计在20 nm或者16nm时代才能看到全新的PowerVR SGX6的强大性能了。

高通Adreno—霸业基石

  发展历史:

  如果说PowerVR算是“亲儿子”的话,那么Adreno就是不折不扣的“螟蛉子”了。Adreno原本并非高通旗下的部门,它的“亲生父母”实际 上是ATI 。在2005年AMD收购了ATI后,负责设计移动图形核心的、当时被称为“Imageon”的部门被AMD剥离后以6500万美元卖给了高通(像不像卖 了阿拉斯加给美国的俄罗斯?)。随后高通拥有了自己的移动图形部门,并改名为Adreno—只要将这个名字中的前三个字母调换一下顺序,你就会发现 “Radeon”的单词出现,是不是很熟悉?没错,这也许是Adreno立志要做移动计算中的“Radeon”,从而在名称上刻印了标记,也正是在高通旗 下,Adreno实现了这个愿望。

  从历史来看,在被高通收购之前,Imageon也推出过很多款产品,其中有专门的2D加速、影音解码芯片,也有专门支持视频播放的芯片,当然主要的还 是以图形性能为核心,综合多样功能的产品。Imageon从型号上来看至少有过20款独立的芯片推出,随后它就被高通收购,成立了全新的Adreno产品 部门。

  在被高通收购后,Adreno开始转型研发移动3D芯片。Adreno 130是其推出的首款产品,它的实际产品有HTC Dream(G1)和后来大卖的HTCHero(G3)。从HTC的G1和G3的销量来说,Adreno 130不可谓不成功。随后的Adreno 200芯片,又被HTC看中,用在Nexus One和HTC Desire(G7)中,又成为一款大卖的产品。之后的Adreno 205,成为索尼爱立信推出的专注于游戏的Xperia Play手机的的图形核心,这也是对Adreno性能的肯定。在初代几款产品成功后,Adreno开始随着高通的SOC芯片一路狂飙,最终斩获了30%的 SOC移动GPU市场份额。

  当前主流产品:

  目前Adreno主流型号从低到高分为Adreno 203、Adreno 205、Adreno 220、Adreno 225、Adreno230、Adreno 302、Adreno320和Adreno 330。其中Adreno 200系列是面向主流和入门级用户的,Adreno300系列搭配的多是中高端产品。在架构上,整个Adreno都采用统一渲染架构,不再区分顶点和像素 处理器。

  从高通官网的介绍来看,Adreno 200系列主要支持OpenGLES2.0/1.1,没有明确说明支持Direct 3D,不支持OpenGL ES 3.0。这系列产品都比较老,因此主要出现在搭配高通Scorpion架构CPU的SOC中。Scorpion架构是高通基于Cortex-A8架构修改 的架构,性能不算强,高通将其归入Snapdragon S1、S2和S3系列处理器。和PowerVR不同的是,Adreno 200系列很少公布它的GFLOPS性能指标,转而公布填充率等信息。不过一些资料还是提及了Adreno 200系列的性能参数(非官方参数,仅供参考,不过应该不会有太大差距),比如Adreno 130在133MHz下拥有1.2GFLOPS的性能,Adreno200在266MHz下性能为8.5GFLOPS,Adreno 225在200MHz、300MHz和400MHz下的性能分别为12. 8GFLOPS、19.2GFLOPS和25.6G FLOPS 。参考之前的PowerVR的性能,Adreno 200系列最高性能和PowerVRSGX 554基本处于同一性能档次。

  不只有CPU,细数移动GPU的那些事-编程知识网

  小米2S估计是所有国内消费者最熟悉的、使用Adreno 320的手机了。

  接下来的Adreno 300系列则主要搭配新的Snapdragon200、400、600和800系列SOC,这系列SOC的CPU核心从低到高分别为Cortex-A5、 Cortex-A7以及目前大红大紫的Krait300和Krait400,层次相当分明。规格上,Adreon 300系列都开始支持OpenGL ES 3.0,DirectX 9.3、Open CL等,也属于相当主流的规格支持。从低到高来看,Snapdragon 200还可以选用Adreon 203,不过只有入门级机型才使用类似的低配置,一般会考虑使用Adreon 302这样的产品,基准性能未知,但不会过10GFLOPS 。Snapdragon 400则会推荐使用Adreno305GPU,在400MHz下它的基准性能为19.2GFLOPS。再向上一些的Snapdragon600则开始推荐 Adreno320产品,500MHz下基准性能达到了51.2GFLOPS。最后则是最强大的Snapdragon 800,最高可搭配Adreno330,可惜的是目前尚未有它的性能参数,但至少这颗GPU能达到70~80GFLOPS是没有太大问题的。

  目前高通的Adreno系列占据了超过1/3的移动GPU市场份额,除了借助了高通在基带和ARM CPU上的优势外,Adreno GPU本身性能和功耗表现都很不错,支持规格也很全面。由于有如此庞大的市场占有率,因此无论哪一家开发商都不会轻视高通的存在,各大游戏除了为 PowerVR优化外,也必须为Adreno系列做出优化,所以高通的产品在游戏运行的图形效果稳定性上还是相当出色的,玩家几乎无需担心新游戏在 Adreno上的运行问题,值得玩家信任。

ARM Mali—“亲儿子”

  发展历史:

  ARM作为整个ARM生态圈的核心,在移动SOC的CPU发展上具有决定性的地位。不过在移动GPU的发展上ARM就没这么重要了。早期的ARM甚至 没有GPU部分,直到2006年,ARM收购了挪威移动GPU厂商Falanx后,才推出了自己的亲儿子—Mali移动GPU。

  首款MaliGPU目前可查的信息为Mali-200系列,最多只能支持1个显示核心,频率有230MHz和380MHz两种,在275MHz下的三 角形输出率为16M/s、像素填充率为275M/s。Mali-200做为Mali系列的开山之作,也由于经验不足存在很多问题,不过这个系列的产品前已 经几乎看不到了,只有一些低端的机型或者是在嵌入式设备中可能还能看到它的身影。

  从市场角度来说,ARM拥有Mali GPU的优势在于可以向厂商推出整体化的一条龙解决方案。厂商可以向ARM同时购买CPU和GPU的授权,组建自己的原生SOC芯片。不过早期的Mali 芯片在性能特别是兼容性上存在一定问题—移动GPU目前标准比较多,各家GPU厂商的规格都不一样,因此如果不专门为某些芯片做出优化而只是用标准规格的 话,要么某些G PU性能很差,要么会无法运行。Mali刚推出时,由于市场占有率不足,产品较少,因此很多软件都没有来得及支持Mali,不过在经过长时间发展特别是 ARM的一体化推广后,Mali得到了三星这样的巨头支持,随着三星手机和Exynos产品的大卖,Mali无论在兼容性还是性能上优化都有了长足的发 展,目前已经很少有严重的兼容性问题出现。2012年,ARM的Mali占据了2.6%的市场份额,算是小有成就吧。

  不只有CPU,细数移动GPU的那些事-编程知识网

  HTC Desire和Google NexusOne都采用的是Adreno 200芯片,奠定了高通在移动GPU界的领先地位。

  不只有CPU,细数移动GPU的那些事-编程知识网

  搭配Adreno 330的Snapdragon 800是目前最强悍的SOC芯片,三星GalaxyS4 LTE-A使用了这颗处理器。

  不只有CPU,细数移动GPU的那些事-编程知识网

  三星目前是Mali系列产品最坚定的支持者,从Galaxy S2到Galaxy Note,Mali帮助三星征服了无数消费者。

  不只有CPU,细数移动GPU的那些事-编程知识网

  Nexus 10采用了目前最新的Mali-T604 GPU,可惜这款平板销量看起来不那么喜人。

  当前主流产品:

  如果说Mali-400MP系列的成功谁功劳最大的话,除了ARM本身不懈的推广外,三星肯定是最大的功臣。三星在自家Exynos 4系列产品,比如Exynos 4210、Exynos 4212以及四核的Exynos4412都使用了Mali-400MP系列的GPU产品,随着三星GalaxyS 、Galaxy Note系列手机的大卖,Mali-400MP系列成为市场上最火爆的明星。

  Mali-400MP规格上依旧主要支持OpenGL ES 2.0/1.1,采用统一渲染架构。相比前代产品,Mali-400MP的最大特点在于可以进行多核心配置—最少单核心,最多四核心。每个核心的 Mali-400MP在65nm工艺下只有4.7mm²面积,缓存可选8KB到266KB,性能在275MHz时达到三角形输出率为30M/s、像素填充 率1100M/s,相比前代产品,像素填充率的大幅度提升让Mali-400MP可以轻松面对高清分辨率下的3 D游戏需求。由于面积很小,Mali-400MP每平方毫米性能非常出色,厂商往往使用多个Mali-400MP核心来加强性能。比如 Exynos4412,就使用了四颗Mali-400MP组成Mali-400MP4,性能在一时可谓是傲视群雄。

  在Mali-400后,ARM还推出了简化版的Mali-400,被称作Mali-300。Mali-300拥有8KB缓存,性能在275MHz时达 到三角形输出率为30M/s,但是其像素填充率大幅度降低至275M/s,且只支持单核心配置,专门面向入门级用户,目前在移动计算市场中几乎看不到。

  随后ARM又推出了Mali-400MP的加强版被称为Mail-450MP,最大可扩展到八核心,单核心Mali-450MP在带256KB缓存的 情况下核心面积为8.7mm²,性能相比Mali- 400MP进一步提升,在275MHz时达到三角形输出率为60M/s、像素填充率2100M/s,不过这一代产品也是罕有厂商使用,因此在市场上也很少 看到。

  目前ARM已经将精力几乎都放在全新的Mali-T600系列上,在官方宣传中,Mali-450MP以及以前的产品被称为“图形硬件”,而 Mali-T600系列则被称为拥有GPU通用计算能力的图形核心。Mali-T600系列的研发代号是“Midgard”,这是北欧神话中人类国度的名 称,可以看出ARM官方对新的Mali-T600系列寄予厚望。Mali-T600全系列支持OpenGL ES 2.0/1.1,OpenCL 1.1,DirectX 11,其中Mali-T622、Mali-T624、Mali-T628、Mali-T678还能够支持OpenGLES3.0。性能方面目前尚没有特别 详细的参数出现,不过一些资料表明,Mali-604在四核心配置下最高可达68GFLOPS的浮点性能,Mali-T658八核心配置最高可达 272GFLOPS。不过Mali-T600系列目前的问题在于尚没有太多产品使用,只有三星Exynos 5系列的Exynos 5250和Exynos5450使用了Mali-T604和Mali-T658,前者被使用在Chromebook和Nexus 10中,后者还没有具体产品出现。

GeForceULP—来自NVIDIA的“杀器”?

  发展历史:

  NVIDIA做显卡、关注移动图形计算也不是一天两天了。2004年10月,NVIDIA就发布了自己旗下首款专为移动计算设计的产品— GoForce 2150,这是NVIDIA收购了专门针对移动技术进行研发和投资的公司MediaQ后首款产品。随后NVIDIA还发布了GoForce 3000、GoForce 4000、GoForce5300、GoForce 6100等一系列产品。不过事实证明,在移动计算产品中,独立的GPU芯片几乎没有立足之地。因此NVIDIA转而开发SOC芯片,开始将ARM CPU集成进入SOC芯片中。

  首款NVIDIAARMSOC芯片是TegraAPX,集成基于GeForce6GPU的图形芯片,也就是目前GeForceULP的鼻祖。实际上更 可靠的消息是NVIDIA之前也收购一家专门关注移动GPU的厂商Hybrid Graphics,GeForceULP架构实际上和GeForce6系列差异性颇大,反而更为接近Hybrid Graphics的设计。在NV IDIA正式推出Tegra系列产品后,第一代应用于Windows Mobile设备中,实际上几乎没有太多产品使用,最终沉沙折戟,第二代产品Tegra 600和Tegra 650,前者用于微软Zune HD中,随着这款产品的失败也消失在历史长河,后者始终没有实际产品面试,也不太成功。

  不只有CPU,细数移动GPU的那些事-编程知识网

  THD游戏目前是NVIDIA推广的重头戏

  不只有CPU,细数移动GPU的那些事-编程知识网

  NVIDIA的游戏掌机Shield,使用了最高规格的Tegra 4芯片,跑分比在平板和手机上使用的Tegra 4芯片强很多。

  Tegra和GeForceULP首次成功是Tegra 2产品,Tegra 2中的GeForce ULP集成了8个计算核心,支持OpenGL2.0/1.1以及OpenVG 1.1EGL1.4。性能方面GeForce ULP在200MHz下性能为3.2GFLOPS,而实际产品最高可达40 0MHz,性能为6.4GFLOPS—这个数据仅能勉强赶上同期的PowerVR SGX 543(200MHz下拥有的6.4 GFLOPS),面对随后上市的iPad 2和iPhone 4S中使用的PowerVR SGX543MP2在200MHz下拥有的12.8GFLOPS性能完全不够看。后来Tegra 3上市后,NVIDIA将GeForce ULP核心升级到12个,性能在500MHz下也只达到了12GFLOPS,不但在当时不算出色,在今天更是远远落后。

  做为图形技术大厂,NVIDIA在图形性能上的弱势似乎有些说不过去。好在NVIDIA将桌面游戏的“NVIDIA游戏之道”那一套搬到了移动市场 来,扶持帮助游戏厂商开发基于NVIDIA Tegra系列芯片的THD游戏,THD游戏一般专门为NVIDIA芯片优化,在图形呈现上往往有比普通版本游戏更为优秀的效果,比如最早的《水果忍者》 的水果是圆形而不是明显多边形、《暗影枪神》中更为优秀的光影效果等,这也从一个侧面说明了理论参数只是理论,更好的图形效果还是需要厂商更为精心的优化 才能得到。

  当前主流产品:

  由于Tegra 4和Tegra 4i还没上市,因此目前NVIDIA的主流产品依旧是Tegra 3。不过Tegra 3发布时间已接近2年,无论是性能还是实际的新品已经没有太多意义,下面内容还是主要针对即将上市的Tegra 4系列。

  从架构来看,在其实无论是Tegra 3还是Tegra 4,其图形模块也就是GeForce ULP部分都只是在Tegra 2甚至更老的Tegra 600上直接扩大而来,基本规格没有任何变化。GeForce ULP家族和之前介绍所有产品都不同的是,GeForce ULP依旧是分离式渲染架构的产物,顶点和像素渲染引擎分别处理顶点数据和像素数据。这种处理方式不够灵活但相对来说每瓦特性能和每平方毫米性能都会比较 出色。因此在新的Tegra 4上,NVIDIA在保持核心面积在80~100平方毫米的同时,将之前Tegra3的12个GeForce ULP计算核心扩大到了72个,整整是前代的6倍之多,Tegra 4的图形部分性能也一跃达到了最高(在672MHz下)74.8GFLOPS,相比目前最强大的图形核心iPad 4上使用的PowerVRSGX554 MP4的71.6GFLOPS理论性能还要更高一些,而Tegra4i则集成了60个GeForce ULP图形核心,理论性能也达到了至少60GFLOPS,达到了目前中高端水平。

  不只有CPU,细数移动GPU的那些事-编程知识网

  微软的Zune HD堪称一代悲剧,不过Tegra在这款产品上积蓄了一定实力。

  不只有CPU,细数移动GPU的那些事-编程知识网

  图为Tegra的发展路线

  从规格来看,Tegra4中的GeForceULP虽然只能支持OpenGLES2.0,但是具体到规格上,又可以支持除了FP32外 OpenGLES3.0的大部分功能。换句话来说一般只要不使用FP32(双精度32位浮点桌面还没玩顺呢),大部分OpenGL ES 3.0的应用都可以轻松转移至Tegra 4的GeForceULP上运行。

  总的来说,作为图形大厂的NVI DIA,目前在移动GPU的发展上目的性比较明确,新一代的Tegra 4无论在性能还是规格上还是比较令人满意的。更令人惊喜的是,有消息称Tegra 5上NVIDIA将启用来自Kepler的全新架构,支持CUDA和DirectX 11等新规格,希望NVIDIA能够带来新的技术,在移动计算市场上开拓出全新的计算时代。

  移动计算,精彩才刚刚开始

  移动计算的GPU市场其实还有很多厂商,比如华为的海思处理器使用来自Vivante授权的GC400系列,算是不常见的品牌。目前移动计算GPU的 市场情况相比CPU和GPU市场双寡头来说,厂商更多,竞争更为激烈。一方面厂商多,发展快,谁都不敢跑慢了;另一方面厂商多也证明了规格多样,兼容性就 成为需要注意的一件事情。未来在进一步竞争中,肯定会有厂商由于竞争失败而逐渐退出移动计算GPU市场,而移动GPU最后也有很大可能会呈现双寡头或者三 寡头的局面。

  激烈的竞争对消费者来说是最有利的,移动GPU的性能在工艺的帮助下,从几年前1G FLOPS飞速发展到接近100GFLOPS,在16nm时代还要继续进步到1000GFLOPS,这都是之前完全不敢想象的事情。玩家有希望在移动设备 上玩到画面更逼真、内容更丰富的游戏,也将带来全新的市场运作模式和市场机会。移动计算,好戏还在后面!

转载于:https://my.oschina.net/amtf/blog/158221