一窥ARM的AI处理器
时间:2018-05-31 09:48来源:StarryHeavensAbove 唐杉
摘要:最近,ARM进一步公开了MLProcesor的一些信息。EETimes的文章“ArmGivesGlimpseofAICore”[1]和AnandTech的文章“ARMDetails“ProjectTrillium”MachineLearningProcessorArchitecture”分别从不同角度进行了介绍,值得我们仔细分析。
最近,ARM进一步公开了ML Procesor的一些信息。EETimes的文章“Arm Gives Glimpse of AI Core”[1] 和 AnandTech的文章“ARM Details “Project Trillium” Machine Learning Processor Architecture”分别从不同角度进行了介绍,值得我们仔细分析。
ARM公开它的ML Processor是在今年春节前夕,当时公布的信息不多,我也简单做了点分析(AI芯片开年)。
这次ARM公开了更多信息,我们一起来看看。首先是关键的Feature和一些重要信息,2018年中会Release。
顶层架构
与最初公布的基本框图相比,我们这次看到了更细化的模块框图和连接关系,如下图所示。
MLP的顶层对外来看是个比较典型的硬件加速器,它有本地的SRAM,通过一个ACE-Lite接口和外部交互数据和主要的控制信息(指令)。另外应该还有一些控制信号,估计在这里略去了(可以参考Nvidia的NVDLA)。
在上图中绿色箭头应该表示的是数据流,红色表示控制流。MLP中的CE共享一套DMA,Control Unit和Sync Unit,它的基本处理流程大概是这样的:1. 配置Control Unit和DMA Engine;2. DMA Engine从外部(如DDR)读入数据存在本地的SRAM中;3. Input Feature Map Read模块和Weight Read模块分别读入待运算的feature map和weight,处理(比如Weight的解压缩),并发送到MAC Convolution Engine(后面简称为MCE);4. MCE执行卷积等操作,并把结果传输给Programmable Layer Engine(后面简称为PLE);5. PLE执行其它处理,并将结果写回本地SRAM;6. DMA Engine把结果传输到外部存储空间(如DDR)。
在顶层标出的Broadcast接口,实现在多个Compute Engine(后面简称为CE)之间广播feature map数据的功能。因此,基本的卷积运算模式是,相同的feature map广播到多个CE,不同的CE使用不同的weight来和这些feature map进行运算。
从目前的配置来看,MLP包括16个compute engine,每个有128个MAC,即一共有16x128=2048个MAC,每个cycle可以执行4096个操作。如果要实现ARM所说的4.6TOPS的总的处理能力,则需要时钟周期达到1.12GHz左右。由于这个指标是针对7nm工艺,实现问题不大。
MCE实现高效卷积
在MLP的架构中,MCE和PLE是最重要的功能模块。MCE提供主要的运算能力(处理90%的运算),应该也是MLP中面积和功耗最大的部分。因此,MCE设计优化的一个主要目标就是实现高效的卷积操作。具体来讲,MLP的设计主要考虑了以下一些方法,这些方法大部分我们之前也都讨论过。
一个比较有趣的点是上面提到的“varied internal precision”。目前还不太清楚其具体的含义。不过对应用来说看到的应该是固定的8bit数据类型。至于对低精度Inference的支持,[1]中提供的信息是,“The team is tracking research on data types down to 1-bit precision, including a novel 8-bit proposal from Microsoft. So far, the alternatives lack support in tools to make them commercially viable, said Laudick.” 因此在第一版的MLP中,应该也不会看到低精度或者Bit-serial MAC了(参考AI芯片开年中对ISSCC2018出现的Bit-serial Processing的介绍)。
此外,数据的压缩和对工艺的优化也是提高整体效率的主要手段。特别是工艺的优化,结合ARM的工艺库,应该有比较好的效果,这也是ARM有优势的地方。
PLE实现高效的可编程性
如下图所示,PLE的结构基本是在一个ARM MCU基础上扩展了Vector处理和NN处理的指令。在讨论可编程性的时候,其出发点主要是NN算法和架构目前还在不断演进。
我们前面已经分析了整个MLP的基本工作流程,MCE在完成了运算之后把结果传输给PLE。从这里可以看出,MCE应该是把结果发送到Vector Register File(VRF),然后产生中断通知CPU。之后,CPU启动Vector Engine对数据进行处理。具体如下图所示。
对于做专用处理器的同学来说,这种scalar CPU+vector engine的架构并不陌生。这里,本地SRAM,VRF和PLE之外的Maing SRAM Unit(CE中的SRAM)之间有Load/Store单元和uDMA实现数据的传输,数据流也是比较灵活的。综合来看,在MLP中,每个CE中都有一个PLE和MCE配合,即每个MCE(128个MAC)就对应一个可编程架构。因此,ARM MLP的可编程性和灵活性是要远高于Google TPU1和Nvidia的NVDLA的。当然,灵活性也意味着更多额外的开销,如[1]中指出的,“The programmable layer engine (PLE) on each slice of the core offers “just enough programmability to perform [neural-net] manipulations””。High-efficient Programmability是MLP的一个主要卖点之一,而ARM的“just enough”是否真是最合适的选择,还有待进一步观察。
其它信息
在这次发布中信息中,ARM还强调了他们在数据压缩方面的考虑,包括对lossless compression的硬件支持。这部分内容我在之前的文章中也有比较多的讨论,就不再赘述了,贴几张比较有意思的图,大家看看。
作为一个IP核,可配置性(configurability)是一个重要的特征。目前还不知道MLP有哪些硬件参数可以支持灵活配置。Compute Engine的数量,MAC数量,SRAM大小,这些比较大的参数应该有可能是支持配置的。其它更细致的内容还要看最终发布的情况。另外,这些参数的配置和相关的软件工具有非常密切的关系,更多的可配置参数也意味着软件工具需要相应的支持,难度更大。[2]对此的说法:“In terms of scalability the MLP is meant to come with configurable compute engine setups from 1 CE up to 16 CEs and a scalable SRAM buffer up to 1MB. The current active designs however are the 16CE and 1MB configurations and smaller scaled down variants will happen later on in the product lifecycle.”
竞争态势
除了比较中规中矩的性能指标外,ARM还没有公布MLP具体的面积,功耗等参数,以及具体发布的日期(目前的说法是“production release of the RTL is on track for mid-year”)。
在这个已经比较“拥挤”的市场,ARM显然是动作比较慢的。[1]一开始就提到了,“Analysts generally praised the architecture as a flexible but late response to a market that is already crowded with dozens of rivals.”并列举了一些竞争对手的例子。
其实,从ARM在处理器IP市场和整个生态链的关键地位来看,晚一点关系也不大。如[1]所说,一方面,ARM正在和一些智能手机厂商进行深度的合作,“ In a sign of Arm’s hunger to unseat its rivals in AI, the company has “gone further than we normally would, letting [potential smartphone customers] look under the hood””。
ARM的另一个重要优势是,ARM在推出MLP之前在软件工具上还是有一些准备的,包括armnn和开源的计算库等等,如下图。
这些工具的广泛使用都可以帮助ARM积累经验,优化硬件和软件工具。正如[1]中引用来自ARM的说法,“Winning the hearts and minds of software developers is increasingly key in getting design wins for hardware sockets...This is kind of the start of software 2.0. For a processor company, that is cool. But it will be a slow shift, there’s a lot of things to be worked out, and the software and hardware will move in steps.”
我们也看到,目前大量的嵌入AI应用还是运行在ARM的各种硬件上的,很多公司在相关算法和实现的优化上投入了很大的力量,也取得了很好的效果。当然这样带来另一个有趣的问题,那就是未来引入MLP之后,ML任务到底放到哪里跑?不同特点的处理器怎么配合?文章中正好也提到这个问题,“Arm will release more data on the core’s performance when it is launched, probably in mid-June. But don’t expect detailed guidance on when to run what AI jobs on its CPU, GPU, or new machine-learning cores, a complex issue that the company, so far, is leaving to its SoC and OEM customers.” 看来这个“难题”短期之内还是丢给用户了。
另外一个值得关注细节是,[1]中提到,“Theoretically, the design scales from 20 GOPS to 150 TOPS, but the demand for inference in the Internet of Things will pull it first to the low end. Arm is still debating whether it wants to design a core for the very different workloads of the data center that includes training. “We are looking at [a data center core], but it’s a jump from here,” and its still early days for thoughts on a design specific for self-driving cars, said Laudick.”从这里可以看出,至少MLP在处理能力上还是具有比较强的伸缩性的,应该可以覆盖从Edge到Cloud的大部分的inference应用。如果是最高的150TOPS,MAC的规模应该和Google第一代Inference专用的TPU类似,不过相比Google的脉动阵列架构,MLP有更复杂的控制通道,灵活性还是要高不少。不知道未来,这会不会帮助ARM打开data center的inference市场。
参考:
1."Arm Gives Glimpse of AI Core", https://www.eetimes.com/document.asp?doc_id=1333307
2."ARM Details “Project Trullium” Machine Learning Processor Architecture", https://www.anandtech.com/show/12791/arm-details-project-trillium-mlp-architecture.
ARM公开它的ML Processor是在今年春节前夕,当时公布的信息不多,我也简单做了点分析(AI芯片开年)。
这次ARM公开了更多信息,我们一起来看看。首先是关键的Feature和一些重要信息,2018年中会Release。
顶层架构
与最初公布的基本框图相比,我们这次看到了更细化的模块框图和连接关系,如下图所示。
MLP的顶层对外来看是个比较典型的硬件加速器,它有本地的SRAM,通过一个ACE-Lite接口和外部交互数据和主要的控制信息(指令)。另外应该还有一些控制信号,估计在这里略去了(可以参考Nvidia的NVDLA)。
在上图中绿色箭头应该表示的是数据流,红色表示控制流。MLP中的CE共享一套DMA,Control Unit和Sync Unit,它的基本处理流程大概是这样的:1. 配置Control Unit和DMA Engine;2. DMA Engine从外部(如DDR)读入数据存在本地的SRAM中;3. Input Feature Map Read模块和Weight Read模块分别读入待运算的feature map和weight,处理(比如Weight的解压缩),并发送到MAC Convolution Engine(后面简称为MCE);4. MCE执行卷积等操作,并把结果传输给Programmable Layer Engine(后面简称为PLE);5. PLE执行其它处理,并将结果写回本地SRAM;6. DMA Engine把结果传输到外部存储空间(如DDR)。
从目前的配置来看,MLP包括16个compute engine,每个有128个MAC,即一共有16x128=2048个MAC,每个cycle可以执行4096个操作。如果要实现ARM所说的4.6TOPS的总的处理能力,则需要时钟周期达到1.12GHz左右。由于这个指标是针对7nm工艺,实现问题不大。
MCE实现高效卷积
在MLP的架构中,MCE和PLE是最重要的功能模块。MCE提供主要的运算能力(处理90%的运算),应该也是MLP中面积和功耗最大的部分。因此,MCE设计优化的一个主要目标就是实现高效的卷积操作。具体来讲,MLP的设计主要考虑了以下一些方法,这些方法大部分我们之前也都讨论过。
一个比较有趣的点是上面提到的“varied internal precision”。目前还不太清楚其具体的含义。不过对应用来说看到的应该是固定的8bit数据类型。至于对低精度Inference的支持,[1]中提供的信息是,“The team is tracking research on data types down to 1-bit precision, including a novel 8-bit proposal from Microsoft. So far, the alternatives lack support in tools to make them commercially viable, said Laudick.” 因此在第一版的MLP中,应该也不会看到低精度或者Bit-serial MAC了(参考AI芯片开年中对ISSCC2018出现的Bit-serial Processing的介绍)。
此外,数据的压缩和对工艺的优化也是提高整体效率的主要手段。特别是工艺的优化,结合ARM的工艺库,应该有比较好的效果,这也是ARM有优势的地方。
PLE实现高效的可编程性
如下图所示,PLE的结构基本是在一个ARM MCU基础上扩展了Vector处理和NN处理的指令。在讨论可编程性的时候,其出发点主要是NN算法和架构目前还在不断演进。
我们前面已经分析了整个MLP的基本工作流程,MCE在完成了运算之后把结果传输给PLE。从这里可以看出,MCE应该是把结果发送到Vector Register File(VRF),然后产生中断通知CPU。之后,CPU启动Vector Engine对数据进行处理。具体如下图所示。
对于做专用处理器的同学来说,这种scalar CPU+vector engine的架构并不陌生。这里,本地SRAM,VRF和PLE之外的Maing SRAM Unit(CE中的SRAM)之间有Load/Store单元和uDMA实现数据的传输,数据流也是比较灵活的。综合来看,在MLP中,每个CE中都有一个PLE和MCE配合,即每个MCE(128个MAC)就对应一个可编程架构。因此,ARM MLP的可编程性和灵活性是要远高于Google TPU1和Nvidia的NVDLA的。当然,灵活性也意味着更多额外的开销,如[1]中指出的,“The programmable layer engine (PLE) on each slice of the core offers “just enough programmability to perform [neural-net] manipulations””。High-efficient Programmability是MLP的一个主要卖点之一,而ARM的“just enough”是否真是最合适的选择,还有待进一步观察。
其它信息
在这次发布中信息中,ARM还强调了他们在数据压缩方面的考虑,包括对lossless compression的硬件支持。这部分内容我在之前的文章中也有比较多的讨论,就不再赘述了,贴几张比较有意思的图,大家看看。
作为一个IP核,可配置性(configurability)是一个重要的特征。目前还不知道MLP有哪些硬件参数可以支持灵活配置。Compute Engine的数量,MAC数量,SRAM大小,这些比较大的参数应该有可能是支持配置的。其它更细致的内容还要看最终发布的情况。另外,这些参数的配置和相关的软件工具有非常密切的关系,更多的可配置参数也意味着软件工具需要相应的支持,难度更大。[2]对此的说法:“In terms of scalability the MLP is meant to come with configurable compute engine setups from 1 CE up to 16 CEs and a scalable SRAM buffer up to 1MB. The current active designs however are the 16CE and 1MB configurations and smaller scaled down variants will happen later on in the product lifecycle.”
竞争态势
除了比较中规中矩的性能指标外,ARM还没有公布MLP具体的面积,功耗等参数,以及具体发布的日期(目前的说法是“production release of the RTL is on track for mid-year”)。
在这个已经比较“拥挤”的市场,ARM显然是动作比较慢的。[1]一开始就提到了,“Analysts generally praised the architecture as a flexible but late response to a market that is already crowded with dozens of rivals.”并列举了一些竞争对手的例子。
其实,从ARM在处理器IP市场和整个生态链的关键地位来看,晚一点关系也不大。如[1]所说,一方面,ARM正在和一些智能手机厂商进行深度的合作,“ In a sign of Arm’s hunger to unseat its rivals in AI, the company has “gone further than we normally would, letting [potential smartphone customers] look under the hood””。
ARM的另一个重要优势是,ARM在推出MLP之前在软件工具上还是有一些准备的,包括armnn和开源的计算库等等,如下图。
这些工具的广泛使用都可以帮助ARM积累经验,优化硬件和软件工具。正如[1]中引用来自ARM的说法,“Winning the hearts and minds of software developers is increasingly key in getting design wins for hardware sockets...This is kind of the start of software 2.0. For a processor company, that is cool. But it will be a slow shift, there’s a lot of things to be worked out, and the software and hardware will move in steps.”
我们也看到,目前大量的嵌入AI应用还是运行在ARM的各种硬件上的,很多公司在相关算法和实现的优化上投入了很大的力量,也取得了很好的效果。当然这样带来另一个有趣的问题,那就是未来引入MLP之后,ML任务到底放到哪里跑?不同特点的处理器怎么配合?文章中正好也提到这个问题,“Arm will release more data on the core’s performance when it is launched, probably in mid-June. But don’t expect detailed guidance on when to run what AI jobs on its CPU, GPU, or new machine-learning cores, a complex issue that the company, so far, is leaving to its SoC and OEM customers.” 看来这个“难题”短期之内还是丢给用户了。
另外一个值得关注细节是,[1]中提到,“Theoretically, the design scales from 20 GOPS to 150 TOPS, but the demand for inference in the Internet of Things will pull it first to the low end. Arm is still debating whether it wants to design a core for the very different workloads of the data center that includes training. “We are looking at [a data center core], but it’s a jump from here,” and its still early days for thoughts on a design specific for self-driving cars, said Laudick.”从这里可以看出,至少MLP在处理能力上还是具有比较强的伸缩性的,应该可以覆盖从Edge到Cloud的大部分的inference应用。如果是最高的150TOPS,MAC的规模应该和Google第一代Inference专用的TPU类似,不过相比Google的脉动阵列架构,MLP有更复杂的控制通道,灵活性还是要高不少。不知道未来,这会不会帮助ARM打开data center的inference市场。
参考:
1."Arm Gives Glimpse of AI Core", https://www.eetimes.com/document.asp?doc_id=1333307
2."ARM Details “Project Trullium” Machine Learning Processor Architecture", https://www.anandtech.com/show/12791/arm-details-project-trillium-mlp-architecture.
免责声明:本文若是转载新闻稿,转载此文目的是在于传递更多的信息,版权归原作者所有。文章所用文字、图片、视频等素材如涉及作品版权问题,请联系本网编辑予以删除。
我要投稿
近期活动
- 安森美汽车&能源基础设施白皮书下载活动时间:2024年04月01日 - 2024年10月31日[立即参与]
- 2023年安森美(onsemi)在线答题活动时间:2023年09月01日 - 2023年09月30日[查看回顾]
- 2023年安森美(onsemi)在线答题活动时间:2023年08月01日 - 2023年08月31日[查看回顾]
- 【在线答题活动】PI 智能家居热门产品,带您领略科技智慧家庭时间:2023年06月15日 - 2023年07月15日[查看回顾]
- 2023年安森美(onsemi)在线答题活动时间:2023年06月01日 - 2023年06月30日[查看回顾]
分类排行榜
- 汽车电子电源行业可靠性要求,你了解多少?
- 内置可编程模拟功能的新型 Renesas Synergy™ 低功耗 S1JA 微控制器
- Vishay 推出高集成度且符合 IrDA® 标准的红外收发器模块
- ROHM 发布全新车载升降压电源芯片组
- 艾迈斯半导体推出行业超薄的接近/颜色传感器模块,助力实现无边框智能手机设计
- 艾迈斯半导体与 Qualcomm Technologies 集中工程优势开发适用于手机 3D 应用的主动式立体视觉解决方案
- 维谛技术(Vertiv)同时亮相南北两大高端峰会,精彩亮点不容错过
- 缤特力推出全新商务系列耳机 助力解决开放式办公的噪音难题
- CISSOID 和泰科天润(GPT)达成战略合作协议,携手推动碳化硅功率器件的广泛应用
- 瑞萨电子推出 R-Car E3 SoC,为汽车大显示屏仪表盘带来高端3D 图形处理性能
编辑推荐
小型化和稳定性如何兼得?ROHM 推出超小型高输出线性 LED 驱动器 IC,为插座型 LED 驱动 IC 装上一颗强有力的 “心脏”
众所周知,LED的驱动IC担负着在输入电压不稳定的情况下,为LED提供恒定的电流,并控制恒定(可调)亮度的作用。无论是室内照明,还是车载应用,都肩负着极为重要的使命。
- 关于反激电源效率的一个疑问
时间:2022-07-12 浏览量:10138
- 面对热拔插阐述的瞬间大电流怎么解决
时间:2022-07-11 浏览量:8903
- PFC电路对N线进行电压采样的目的是什么
时间:2022-07-08 浏览量:9542
- RCD中的C对反激稳定性有何影响
时间:2022-07-07 浏览量:7165
- 36W单反激 传导7~10M 热机5分钟后超标 不知道哪里出了问题
时间:2022-07-07 浏览量:5940
- PFC电感计算
时间:2022-07-06 浏览量:4153
- 多相同步BUCK
时间:2010-10-03 浏览量:37857
- 大家来讨论 系列之二:开机浪涌电流究竟多大?
时间:2016-01-12 浏览量:43152
- 目前世界超NB的65W适配器
时间:2016-09-28 浏览量:60015
- 精讲双管正激电源
时间:2016-11-25 浏览量:128055
- 利用ANSYS Maxwell深入探究软磁体之----电感变压器
时间:2016-09-20 浏览量:107540
- 【文原创】认真的写了一篇基于SG3525的推挽,附有详细..
时间:2015-08-27 浏览量:100256