浅析移动GPU厂商的发展史及其核心技术

人工智能的飞速发展,需要强大的算力作为支撑,这背后nividia可谓是当之无愧的功臣。nividia先进的gpu技术和优异的软件生态,使其在竞争中脱颖而出,成为市场霸主。目前人工智能在图像处理及语音识别领域的研究取得了很好的发展,在手机和安防领域也有很多产品落地。在落地过程中,依然会面临设备算力的问题,而移动端gpu则自然而然的进入了人们的视野。
移动端gpu厂商的发展史
在移动端gpu市场中,没有形成一家独大的竞争格局。目前主要的移动端gpu厂商有高通,arm和imaginaton。高通的adreno来自ati的imageon,ati最早被amd收购,后来高通收购了amd的移动设备资产,取得了amd的矢量绘图与3d绘图技术和相关知识产权。后来高通结合amd的手机图形技术发展为自家的adreno图形处理器。另一家移动计算的巨头arm,arm在移动cpu的市场地位可谓遥不可及,但是在gpu领域,它确是诸多厂商中的一家,他的gpu业务也并非一开始就拥有,而是后来组建的。其gpu技术来自一家名为falanx的公司,这家公司是早起从挪威大学脱离出来的一个名为mali的研究小组的成员组建的,最早定位于pc领域,失利后转向soc gpu设计。随着soc市场的不断壮大,以及移动计算的发展,arm收购了falanx,组建了自己的gpu事业部。最后一家,imagination technologies,这是一家专注于gpu技术的公司,最早在桌面级gpu的竞争中失利,后来转战移动端,intel,三星,苹果,联发科,展讯曾经都是他的客户,一度被认为是全球最大的移动gpu厂商。这家公司可谓命运多舛,曾经作为苹果的供应商,由于iphone的每代产品在图形性能方面都比arm公版的mali gpu有优势,一度让imagination风光无二,但是随着苹果宣布自研gpu,imagination的股票出现了断崖式下跌,公司濒临破产。后来将其业务进行拆分,mips业务出售给tallwood mips,而gpu业务则出售给中国背景的私募基金canyon bridge。这一收购也填补了国内在gpu领域的空白。
在市场占有率方面,由于arm以及高通的捆绑销售,imagination并无优势,但是鉴于在物联网以及人工智能领域,目前三家都还没有建立起强大的生态,因此未来谁能称雄并未可知。
在技术方面三家gpu厂商架构差异比较明显,而且对外披露都比较少,相比较来说imagination发面对于技术方面会开放一些。
imagination的gpu rogue架构浅析
在关于gpu的宣传中很容易看到一个词core,而且高端gpu也都是成千上万的core。其实宣传中的core并非cpu上“核”的概念。而真正意义上的核心,应该是amd gcn架构中的compute unit, nvidia maxwell架构中的smm以及powervr rogue架构中的usc等。对应于编程语言,应该是opencl中的compute unit(简称cu)。而宣传中所谓的core,则是opencl中的processelement(简称pe)。
目前gpu采用的是多层级的线程技术,硬件结构和软件概念的对照如下图所示:从硬件结构看,首先是gpu设备,叫做device;一个gpu包含多个cu,而每个cu又包含多个计算通道。从opencl的软件架构看,每个ndrange对应一个gpu设备,其包含多个work-group,而每个work-group必须在一个cu上执行,也就是说,每个cu可以执行多个work-group,但是每个work-group不可以拆分到多个cu上去执行;每个work-group包含多个work-item,一个计算通道执行一个work-item。
简单介绍一下计算通道,simd叫做单指令多数据流(single instruction multipledata),目前所有的gpu都术语simd,一般都是16路或者32路simd。
关于线程的调度,首先介绍一个概念,amd的wavefront或者nividia的warp,这是指线程调度的最小单位,也就是说,在gpu中每次执行一个warp,一般一个warp包含32个线程;对于amd显卡则是一个wavefront包含64个work-item。下文中对这一概念统称为warp,线程和work-item通用。在rogue架构中每个warp也是包含32个线程。
如下图所示,是rogue架构的示意图,gpu中包含有多个usc(个数与产品型号有关),每个usc包含着色器,驻留槽,执行单元,存储器,纹理单元等等等。这样每个work-item在自己的生命周期中都包含自己的片上存储在unified store中,shared local memory隐藏在common store中,这样每个usc都可以在warp之间进行零开销的上下文切换。
线程的执行过程如下图:
图中的residency slots中包含很多slot,每个slot代表一个warp,空的表示目前还没有部署warp。而部署了warp的slots一共有三个状态,绿色表示active,黄色表示ready,可以执行了,红色表示阻塞;active的warp接下来会在执行单元上执行,如图右侧所示,所有的32个work-item同时并行执行。ready的会在下一个执行周期被调度执行;阻塞的则是因为读写等原因进入该状态。
下图是usc中流水线示意图,其中包含4个warp的调度。warp0首先被执行,warp0会一直执行到它进入阻塞状态,例如读写全局存储,此时调度器会停止调度warp0,开始执行warp1;因为warp中的所有工作项执行相同的kernel代码,因此就有相同的特性,例如同时进入阻塞;在warp2进入阻塞状态时,warp0读写结束,进入read状态;最后在调度器调度完warp3后,重新开始调度warp0。这样并发执行可以实现对内存访问延迟的隐藏。因此在编程实现中一般使用较大的工作组,来实现warp切换对内存访问的延迟(当然,这不是绝对的,在实际中还要考虑寄存器等资源的消耗情况)。
下图展示了rogue架构下得powervr series7xt系列的架构图。
该系列的gpu拥有2到16个usc,因此具有100gflops到1.5tflops的可扩展性能。如下图展示了该系列gpu的usc架构。
以gt7400为例,其拥有128个fp32alu核心,256个fp16 alu核心。每个usc中包含16个pipelines,每个pipelines中含有多个alu。其中的sfu可以原生的处理fp16、fp32(上一代会全部推给fp32),因此这一代架构可以避免没有必要的高精度操作,提升了性能并降低了功耗。
目前imagenition已经发布了最新的gpu架构furian,该架构相对于多年来已成业界标杆的rogue架构有了在性能方面有了更大的提升。

韩国已向国际电信联盟ITU递交了5G国际标准最终提案
CES 2018盘点:量子计算自动驾驶和联想VR眼镜
镍镉电池怎么充电_镍镉电池充电方法
荣耀v9评测:速度与激情的诠释者,颜值与性能的创作者
合肥将打造首个量子计算创新创业平台,推广量子计算
浅析移动GPU厂商的发展史及其核心技术
PLC常见的传送指令介绍
高通将携手产业链助力5G在2019年成为现实
zookeeper的组件有哪些
安装永磁同步电机的步骤和注意事项
如何实现就地程控站PLC柜远程无线控制送料小车?
阿联酋王储参观三星半导体工厂
miui内测版来了 将比新机时更流畅
智能手表上的测血氧功能究竟是什么?其发展前景如何
为什么现在是工业界释放物联网全部潜力的时候
dfrobotHDMI高清数据线 0.75M简介
厚物科技ODM定制1U机架式双屏KVM
负氧离子监测系统具有哪些特点
Steam中国版“蒸汽平台”即将推出
小米众筹上架了一款HiPee智能健康药盒,售价119元