关于ARM的机器学习,更多浮出水面的细节

虽然Arm慢慢推出了其机器学习硬件架构,但Nvidia凭借开源的NVDLA硬件加入了这场争斗。

Arm确实针对深度神经网络(DNN)机器学习(ML)应用及其提出的硬件设计,但其最初的ML硬件描述有点模糊(图1)。虽然最终的细节还没有准备好,但ARM已经暴露了更多的架构。

1. Arm对其机器学习硬件的原始描述有些模糊。

Arm ML处理器由该公司的神经网络(NN)软件开发套件支持,该套件桥接ML软件和底层硬件之间的接口。这使开发人员能够瞄准Arm的CPU,GPU和ML处理器。理论上,等待ML硬件将允许在真正的硬件最终到达时提供临界质量的软件。底层硬件之间的大部分差异被运行时和编译器隐藏起来。

从某种意义上说,这与Nvidia针对其一系列GPU的CUDA平台所采用的方法是一样的。这些GPU是相似的,但每个都有CUDA支持隐藏的细微差别。拥有自己的框架使开发人员难以迁移到不同的平台。 CUDA处理的不仅仅是人工智能(AI)和ML应用程序。针对TensorFlow等高端ML工具的开发人员通常可以从平台转向包括Arm的ML处理器在内的平台。

Nvidia的NVDLA

Nvidia还发布了NVIDIA深度学习加速器(NVDLA)作为开源硬件。 NVDLA用于该公司的Xavier片上系统(SoC),专为汽车和自驾车应用而设计。

2. Arm开发的机器学习处理器由一系列带有MAC卷积和可编程层引擎的计算引擎组成。

ML处理器集成了多达16个复杂的计算引擎(图2)。每个引擎都有自己的本地内存,模块使用它来处理DNN模型。该流程对于DNN实施是典型的,首先将权重应用于传入数据,通过MAC卷积引擎处理,然后由可编程层引擎(PLE)处理结果。 MAC卷积引擎具有128个多重累加(MAC)单元。

PLE(图3)是一个处理卷积结果的矢量化微控制器。它更像是一个RISC平台,针对包含多层的DNN模型的一部分来完成层的处理。处理过程需要通过系统进行很多迭代,这些迭代将并行处理部分。 PLE处理诸如汇集和激活等杂事。

3. Arm可编程图层引擎本质上是一个矢量化微控制器,用于处理神经网络层操作。

最高速度

Arm最初的实施旨在提供4.6 tera操作/秒(顶级)。专为高端移动设备设计的版本旨在使用7-nm芯片技术提供3 TOPS / W。该设计具有可扩展性,可用于Arm的微控制器和微处理器设计。该系统旨在从物联网(IoT)的20千兆操作/秒(GOPS)扩展到高端企业应用的150 TOPS。当然,低端平台不会那么强大,但会使用更少的电力。

确定最终设计的一部分挑战是如何解决诸如DNN中涉及的权重的类型和大小等细节。数据类型可能只有一位,ML研究中正在使用一些微小的浮点格式。

预计今年晚些时候会有更多细节。但与此同时,开发人员已经在ML任务中使用Arm CPU和GPU平台。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180625A0TVUE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券