一窥 ARM 的 AI 处理器

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

064dd684dba976b31b245195ef2a679a9b3cc597

顶层架构

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

441f7f992da09c0ea64c8e8a8cab4494f81b090a

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

8c6b36db0561dae2addb16a81c26cd8a4a85171b

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

7b65eca750829e8314a82d54ccc4e1680f21694d

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

89865bad902451e256f52320f4e8a02efc73c841

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

4159aab62134eade0096679e12c74c0a6663b3af

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

a612678ed82d7757de301f167fbff399f833b9d0

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

4920c9ed4351a233e4732dbfdc3f05fef1bf2c03

这些工具的广泛使用都可以帮助 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 市场。


原文发布时间为:2018-05-30

本文作者:唐杉

本文来自云栖社区合作伙伴新智元,了解相关信息可以关注“AI_era”。

原文链接:一窥 ARM 的 AI 处理器

相关文章
|
3月前
ARM处理器函数调用时的参数传递
ARM处理器函数调用时的参数传递
|
7月前
|
人工智能 前端开发 数据挖掘
Arm 发布 Neoverse 新品:数据分析性能提升 196%,奠定未来计算及 AI 的基石
北京时间 2 月 22 日,半导体巨头 Arm 更新了 Arm® Neoverse™ 产品路线图,宣布推出两款基于全新第三代 Neoverse IP 构建的全新计算子系统(CSS):Arm Neoverse CSS V3 和 Arm Neoverse CSS N3。
|
7月前
|
存储 机器学习/深度学习 人工智能
嵌入式中一文搞懂ARM处理器架构
嵌入式中一文搞懂ARM处理器架构
259 1
|
7月前
|
存储 缓存 物联网
DP读书:鲲鹏处理器 架构与编程(二)服务器与处理器——高性能处理器的并行组织结构、ARM处理器
DP读书:鲲鹏处理器 架构与编程(二)服务器与处理器——高性能处理器的并行组织结构、ARM处理器
334 0
|
7月前
|
存储 算法 Linux
内存系列学习(五):ARM处理器中的Cache和Write Buffer
内存系列学习(五):ARM处理器中的Cache和Write Buffer
298 0
内存系列学习(五):ARM处理器中的Cache和Write Buffer
|
7月前
|
缓存 算法
内存系列学习(七):ARM处理器的快速上下文切换技术
内存系列学习(七):ARM处理器的快速上下文切换技术
165 0
|
7月前
|
存储 缓存 Linux
内存系列学习(六):ARM处理器存储访问一致性问题
内存系列学习(六):ARM处理器存储访问一致性问题
479 0
|
7月前
|
存储 缓存 Linux
内存系列学习(三):ARM处理器地址变换过程
内存系列学习(三):ARM处理器地址变换过程
219 0
|
7月前
|
存储 缓存 算法
内存系列学习(二):ARM处理器中CP15协处理器
内存系列学习(二):ARM处理器中CP15协处理器
131 0
|
存储 NoSQL 安全
面向未来:理解ARM处理器的新一代技术(上)
面向未来:理解ARM处理器的新一代技术
面向未来:理解ARM处理器的新一代技术(上)