多核的误区 手机GPU各指标参数揭秘

2014-04-12 13:05:37来源: 驱动之家
    高级图形处理器在进行推广时通常比较多个低级别性能指标。例如,Imagination PowerVR GPU比较常用的比较指标为GFLOPS (测量计算吞吐量) ,每秒三角形生成数量(测量几何吞吐量),每秒像素数填充和每秒纹理数(测量填充率) 。

  除了这些较为传统的指标,企业开始按照产品中所包含的内核数量来说明架构已经较为常见。尽管按照既定状况来说,内核数量的含义已经被GPU市场曲解。也就是说,这个词语具有延展性,经过一段时间这个词语在反映常见功能方面已经有所更新。我来说明内核数量的常见意义。

  什么是内核?

  这要依据实际情况而定。内核数量的意义在以前是表示处理器前端的数量。内核并不复杂,前端的作用是调度执行线程。几乎所有高级GPU都已经简化设计,在计算资源前端设置多个调度器和相关调度逻辑,执行预订的任务。

  每个调度器跟踪数个需要执行的线程,在单个时钟周期中运行单个程序的单一指令。单个指令指标的作用是在一组算资源上运行程序,不考虑线程数量或者计算资源的共享方式,这是内核的通常定义。

  但是,我们也用这个内核来说明Series5 SGX GPU的整个状况。例如在SGX544MP3中,共有SGX544MP3的3个完整例程—可以复用所有GPU资源,我们称之为MP3配置,或者叫3核 GPU。

  多核的误区

  因此,随着高级移动系统中CPU内核数量迅速增加, GPU厂商要表达的信息是GPU也是多核设计,我们的许多竞争对手将独立的ALU流水线视作内核以强调其优势。但这些ALU流水线不能实现完全独立的相互 调度,这些流水线与SIMD模式中的流水线一样每个时钟周期运行同一指令。并未出现我们所指的独立前端或独立指令指针,但尽管如此市场依然称其为一个内 核。

  我们按照同样的方式从基本的构建模块---统一着色器集群(Unified Shading Cluster,USC)到独立流水线来说明PowerVR Rogue,来看一下如何计算内核数量。

  PowerVR Rogue USC

  Rogue的架构是由多个模块构建而成,这些模块称为统一着色器集群,简称USC。我们扩展这个架构来满足客户对GPU的需求,以支持系统级芯片及专门的细分市场,我们将数个USC以及其他相关资源连接在一起后集成在整个GPU IP上。

  打开USC,您会发现用于分析数据并得出结果的是数个ALU流水线。我们并行设置这些流水线,每个USC设置16个流水线。这样设置的原因是,图像 呈并行处理,其中多个相关的数据,通常是矢量或像素同时运行。事实上,高级像素着色的属性驱动相关像素是并行的,因此有必要同时运行这些高级像素。

  标量SIMD执行和矢量低效

  USC的关键属性是按照标量模式处理数据。也就是说对于给定的工作项目,例如一个象素,USC不是在同一时钟周期内的同一独立管道上同时执行红、 绿、蓝和透明度的矢量。相反, USC在一个时钟周期内执行一个红色组件,接下来执行蓝色组件,以此类推,直到执行完所有组件。为实现矢量基准单位的峰值吞吐量,标量SIMD单元并行处 理多个工作项目。例如,每个时钟周期内处理一个像素的4-wide矢量的峰值吞吐量相当于4-wide 标量SIMD单元,可在每个时钟周期内处理四个像素。



  表面上看这两种方法的吞吐量相同。但是,高级GPU负载通常由使用许多不同数据宽度的数据组成。例如,通常颜色数据宽度为4 ( ARGB ),而纹理坐标的数据宽度通常为2 ( UV),还有许多标量实例( 1个组件)处理,如典型的光照计算一样。

  在光照计算中,如果数据处理没有填满整个矢量宽度时,就会浪费矢量处理器宝贵的计算资源。在标量架构中,正执行的运算采用一种运算类型,在同一时间 运行一个组件,并行处理同一任务。例如着色处理中完全由标量处理组成,在4-wide矢量架构中执行25%的任务,而在标量SIMD架构中本应执行 100%的任务。

  多个低功耗ALU!

  我们再来说说USC并行任务中的独立流水线。共有16个流水线,每个流水线内部实际上存在数个执行任务的ALU。即2个FP32 ALU,2个FP16 ALU,以及1个专用函数ALU 。

  为什么使用专用FP16 ALU?主要是为了节省功耗同时也是为了提高性能。与FP32 ALU相比,简化ALU逻辑复杂度可以较低功耗执行FP16指令组,同时可执行更多的运算,在每个时钟周期实现更高的吞吐量。稍后您就会明白。

  在高级图像渲染中以较低精度计算可能需要耗费较多时间,而APIs Rogue力求在所有通用图形中支持混合精度运算,其中包括Direct3D 11,以及更常见的OpenGL ES2和ES3 APIs。在嵌入式图形运算中没有构建混合精度计算流水线是个错误,原因是执行混合精度工作量会造成功率放大。

  性能和功能

  各个ALU的功能并不一样,我们来看一下每个ALU的作用,以便了解其性能:

  PowerVR Series6, Series6XT和Series6XE中的FP32 ALU能够在每个时钟周期执行2浮点运算。每个USC即每个时钟周期的64 FLOP峰值。



  PowerVR Series6 GPU内共有最多8个统一着色集群( USC )

  PowerVR Series6 GPU中的FP16 ALU能够在能够在每个时钟周期执行最高3浮点运算,我们在Series6XE和Series6XT 改进了FP16 ALU可在每个时钟周期执行最高4浮点运算。按照不同的产品和系列,每个USC在每个时钟周期执行高达128浮点运算。升级型Series6XE和 Series6XT更为灵活,执行流水线部分运算的编译器更为容易。



  PowerVR Series6XT GPU内共有最多8个Unified Shading Clusters( USC )

  最后来说一下具有专用功能的ALU,ALU可处理更复杂的算法和三角运算,如正弦、余弦、对数、倒数和亲和数、标量运算。按照这些运算的性质,设置了ALU输出精度和性能。

  增强ALU内核配置

  现在,我已经说明从构建USC块到利用16个并行管道执行任务来说明Rogue计算架构,各个管道有较大的专用计算资源,我们按照竞争对手的方式来 说明内核。每个USC包括:32 FP32 ALU内核,高达64个FP16 ALU内核、16 个USC专用函数ALU内核。

  按照同样的方式将Rogue与市场竞争产品比对,ALU内核这个术语很重要,我们希望大家尽可能按这条思路来解释内核。

  最后,请记住,Imagination根据不同的产品Series6, Series6XT和Series6XE设置1对多的USC。以下为两个实例:

  PowerVR G6230: 两个Series6 USC-64 FP32 ALU内核,每个时钟周期执行高达128 FLOP – 64 FP16 ALU 内核,每个时钟周期执行高达192 FLOP。也就是按照600MHz的频率执行高达115.2 FP16 GFLOPS及高达76.8 FP32 GFLOPS。



  PowerVR GX6650: 六个Series6XT USC-192 FP32 ALU内核,每个时钟周期执行高达384 FLOP –384FP16 ALU 内核,每个时钟周期执行高达786 FLOP。也就是按照600MHz的频率执行高达460.8FP16 GFLOPS及高达230.4 FP32 GFLOPS。





关键字:多核  GPU  指标参数  揭秘

编辑:北极风 引用地址:http://www.eeworld.com.cn/xfdz/2014/0412/article_32294.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
多核
GPU
指标参数
揭秘

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved