近年来移动平台SoC发展飞速,CPU已经发展到四核作为主流,甚至还有新式的“4+4”的架构出现。而除了CPU核心数和频率的增加,GPU的提升也不可忽视,我们也经常会见到有“12核”、“16核”的GPU宣传,那事实上我们又应该怎么判断这些GPU的核心数呢?
如果从字面上理解厂家的宣传,一般消费者很可能会认为,“16核”的GPU会强于“12核”的GPU,而“12核”的GPU肯定又要比苹果、三星的三核、四核GPU要好上许多,那实际情况真的是如此吗?
如同PC平台比拼流处理器数量,移动平台则开始流行比拼核心数量,但由于各厂商对于核心的定义不统一,所以往往会让很多人困惑,现在简单解析一下常见的几家厂商对于”核”的概念:
1.ImgTec的PowerVR SGX 5XT系列将一个相对完整的GPU单元视作一个核心。
2.英伟达的Tegra系列的GPU将一个ALU视作一个核心(ALU的数量用比较统一的MAD ALU作单位,各家对于scalar ALU的作用和定义可能有不同所以暂不计入)。
3.高通的Adreno系列相对不注重核心的宣传,所以暂忽略。
4.ARM的Mali-T6xx系列将一个统一Shader单元视作一个核心。
5.Vivante的GC系列将一条SIMD Shader流水线视作一个核心。
下面将各家目前的高端GPU做一个表格,以便对比理解:
以上深蓝色字体是引用来自百度GPU吧帖子的内容(作者:crayon嘻哈小新)
表格可理解为:在不同厂家的标准下,不同的GPU相对这个标准而言的“核心数”。
附:
ALU:算数逻辑运算器,因像素着色单元和顶点着色单元都是4个通道,所以GPU的像素着色单元和顶点着色单元都被设计成具备四次运算能力的ALU。
统一Shader单元既能进行Vertex计算,也能进行Pixel计算。
SIMD Shader(Vec4 Shader):为了提高效率,Shader被设计成Vec4的SIMD,可对四个数据进行打包,然后使用一条指令进行同样的处理。当然如果数据少于四个,计算能力就被浪费了。
这里对表格作一个小解释,我们通常理解的GPU“核心数”实际上应该是完整的GPU单元,从表格中可以看出,只有ImgTec的产品是使用这个标准的,表格中的SGX554MP4即在iPad 4上的GPU,它拥有四个完整的GPU单元,即是我们通常理解的“四核”GPU。类似的情况还有Galaxy S3的Mali-400MP4(四核)和Galaxy S4的SGX544MP3(三核)。而这个表格中,除了Mali-T678是双核之外,其他包括号称最强的Tegra4、Adreno320和GC8000其实都只是算我们常规理解中的单核产品。
从这个表我们又能看出很多非常“打脸”的问题:
相对于NVIDIA的标准来看,不要说是Tegra3的“12核”,就算是6倍ALU的Tegra4,在比拼ALU数量上还是不如SGX554MP4和Mali-T678的128个,后两者可以作为NVIDIA标准的“128核”GPU。
相对于Vivante的标准来说,GC8000的“16核”在对比中也并不抢眼,因为SGX554MP4和Mali-T678依然有遥遥领先32个的SIMD Shader(Vec4 Shader),即“32核”。
我们不能忽视GPU的参数,但是这些动辄几十的“核心”很容易误导消费者,而我们更应该注重的是GPU本身的计算性能,而不应该刻意地追求核心数。
另外还可结合下图进行理解: