0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

不同角度进行介绍ML Procesor的一些信息,值得我们仔细分析

DPVg_AI_era 来源:未知 作者:李倩 2018-05-31 16:40 次阅读

最近,ARM 进一步公开了ML Procesor 的一些信息。本文从不同角度进行了介绍,值得我们仔细分析。

最近,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。

pIYBAFsPtbyAa8C6AAFEx1cH5xU799.png

pIYBAFsPtbyAcX-1AAEnI1T3RBY941.png

顶层架构

与最初公布的基本框图相比,我们这次看到了更细化的模块框图和连接关系,如下图所示。

pIYBAFsPtbyAW3huAAFAhEAOYeQ508.png

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)。

pIYBAFsPtbyAe1pNAAEeQAuvJfY325.png

在顶层标出的 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 的设计主要考虑了以下一些方法,这些方法大部分我们之前也都讨论过。

pIYBAFsPtb2AZORrAAEhc-wzlmU255.png

一个比较有趣的点是上面提到的 “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 算法和架构目前还在不断演进。

pIYBAFsPtb2AH_NfAAE9FSNj6j0268.png

我们前面已经分析了整个 MLP 的基本工作流程,MCE 在完成了运算之后把结果传输给 PLE。从这里可以看出,MCE 应该是把结果发送到 Vector Register File(VRF),然后产生中断通知 CPU。之后,CPU 启动 Vector Engine 对数据进行处理。具体如下图所示。

pIYBAFsPtb6AO3DSAAD70t2MxfY204.png

对于做专用处理器的同学来说,这种 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 的硬件支持。这部分内容我在之前的文章中也有比较多的讨论,就不再赘述了,贴几张比较有意思的图,大家看看。

pIYBAFsPtb6ADowXAAGHz5IRtHw690.png

pIYBAFsPtb6AfO-kAAEJE-CXX0Y078.png

pIYBAFsPtb-ATCnZAAEWHgmH3M8828.png

作为一个 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 designshoweverare 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 和开源的计算库等等,如下图。

pIYBAFsPtb-AfnDbAADUJBPrc9w382.png

这些工具的广泛使用都可以帮助 ARM 积累经验,优化硬件和软件工具。正如 [1] 中引用来自 ARM 的说法,“Winningthe 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 onwhen 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.Armis still debating whether it wants to design a core for the very different workloads of the datacenterthat includes training. “We are looking at [a datacentercore], 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 市场。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19138

    浏览量

    228989
  • ARM
    ARM
    +关注

    关注

    134

    文章

    9036

    浏览量

    366663
  • AI
    AI
    +关注

    关注

    87

    文章

    29963

    浏览量

    268274

原文标题:一窥 ARM 的 AI 处理器

文章出处:【微信号:AI_era,微信公众号:新智元】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    【AWorks试用体验】+硬件篇之开膛破腹分析

    :对应我们来说 差别不大;外设多少稍有差别。再来看看功能框图:周立功好就好在总能想到你没想到的,服务于工程师:这么丰富的外接功能开发,覆盖了大部分领域开发;下面针对我们这块板子,仔细分析电路吧.首先
    发表于 08-17 15:51

    介绍一些SVA基本的概念和常用的语法

    ;#036;countones(gnt) == 0)));表面上看,二者似乎样。仔细分析下,在clock 8的phase,由于gnt=0,整个assertion直接被disable,我们也就没法检测出上
    发表于 10-27 16:37

    仔细分析下RSS的逻辑实现

    在网卡领域,多队列技术已经是项很常用的技术,而网络报文的负载分流,常见的就是RSS。本文就索性仔细分析下RSS的逻辑实现,同时以SpinalHDL给出RSS中最为关键的Toeplitz Hash
    发表于 11-09 14:57

    ARM指令集体系结构(ISA)的一些功能介绍

    本指南介绍了特定于每个ARM指令集体系结构(ISA)的一些功能,并考虑了哪些应用程序最好地利用了这些功能。该指南的重点是Cortex-R。然而,我们也考虑Cortex-A和Cortex-M,在帮
    发表于 08-02 07:39

    基于HTML 标记的信息隐藏方法

    本文通过仔细分析 HTML 中标记的各种性质,提出了几种新的基于标记的隐藏信息的方法。这些方法的隐蔽性较好;综合运用这些方法可以获得较大的信息隐藏容量,具有较高的隐
    发表于 08-24 11:18 21次下载

    关于PID一些常用知识

    本文档详细介绍分析了关于PID的一些常用知识
    发表于 08-29 14:22 2次下载

    关于信息治理与云的一些事实

    关于信息治理与云的一些事实
    发表于 12-28 11:07 0次下载

    窥ARM的AI处理器

    EETimes的文章“Arm Gives Glimpse of AI Core”[1] 和 AnandTech的文章“ARM Details “Project Trillium” Machine Learning Processor Architecture”分别从不同角度进行
    的头像 发表于 05-31 11:44 3709次阅读
    <b class='flag-5'>一</b>窥ARM的AI处理器

    AI芯片大战后,ARM的“just enough”是否真是最合适的选择?

    “Project Trillium” Machine Learning Processor Architecture”分别从不同角度进行介绍值得
    发表于 08-29 08:55 1064次阅读

    一些开关电源的拓扑结构详细分析

    本文档的主要内容详细介绍的是一些开关电源的拓扑结构详细分析
    发表于 01-06 00:16 20次下载
    <b class='flag-5'>一些</b>开关电源的拓扑结构详<b class='flag-5'>细分析</b>

    恒大造车值得我们多给其一些耐心与期待

    砺石导言:对恒大汽车这样投入巨大,业务复杂,需要心无旁骛发展的初创企业,我们建议公众多一些善意,少一些臆测与干扰,只要其是踏踏实实地在做业务,而没有做任何危害社会,危害用户的事情,就值得
    的头像 发表于 12-15 15:41 1202次阅读

    介绍一些大功率IGBT模块应用中的一些技术

    PPT主要介绍了大功率IGBT模块应用中的一些技术,包括参数解读、器件选型、驱动技术、保护方法以及失效分析等。
    发表于 09-05 11:36 780次阅读

    一些对OpenMP进行优化的方法

    本文调研了一些对OpenMP进行优化的方法。
    的头像 发表于 10-18 09:44 1691次阅读

    我们的微服务中为什么需要网关?

    Cloud Gateway,不过在之前的介绍中,我可能更加侧重于跟小伙伴们介绍 Spring Cloud Gateway 的用法,对于我们在微服务中为什么要使用 Spring Cloud Gateway 可能没有和大家
    的头像 发表于 05-04 17:38 1240次阅读
    <b class='flag-5'>我们</b>的微服务中为什么需要网关?

    我们为什么需要了解一些先进封装?

    我们为什么需要了解一些先进封装?
    的头像 发表于 11-23 16:32 544次阅读
    <b class='flag-5'>我们</b>为什么需要了解<b class='flag-5'>一些</b>先进封装?