[原创] 站在巨人肩上,Arm第一代AI处理器究竟如何?

2018-08-24 14:00:13 来源: 半导体行业观察

在过去的几年中,多家芯片初创公司一直致力于寻找新的方法来有效地训练和执行神经网络,但是否值得为每一个创意而重造轮子,这是值得商榷的。

在本周举行的、一年一度的Hot Chips会议上,移动芯片IP供应商Arm也展示了他们的第一代机器学习处理器,在今年晚些时候,合作伙伴也则可以用上这些IP。

这个最先被名为“Trillium”的架构由一些熟悉的元素与Arm逻辑核心捆绑在一起,对于那些对Nvidia Volta GPU提供的TensorCore、深鉴提供的压缩技术、拥有可编程特性的FPGA和低功耗的DSP感兴趣的人来说,这可能意味着很多。换句话说,Arm可能刚刚“拼凑”出了世界上最好的AI处理器,对于那些芯片制造商来说,这可能会是很大的麻烦。

正如Arm的技术总监兼杰出工程师Ian Bratt本周在Hot Chips上告诉我们的那样,作为首次涉足AI处理器初哥,Arm的设计目的是尽可能拓宽产品的应用范围,以便能够满足服务器端AI的市场需求,同时也可以为汽车和物联网这些小型设备提供服务。

“在第一代机器学习处理器的开发过程中,我们走了一些弯路,那就是我们将旧框架带入了一个新问题。我们可以看到GPU,CPU和DSP如何被用于机器学习,但我们开始看到我们如何能够更明显地利用每一项技术。”

如下所示,Arm的机器学习架构并没有什么特别之处,但值得注意的是他们从硬件,压缩和编译器中最成功的创新中汲取的东西。

构建块是计算引擎,每个(总共16个)是64 KB的SRAM片。MAC引擎(与Nvidia的TensorCore不同)是执行卷积的地方,可编程层引擎处理层之间的大部分必要的混排(shuffling)。该架构具有DMA引擎,用于与外部存储器接口通信。Arm自己的Cortex技术则充当控制引擎。

Bratt通过对神经网络处理器芯片中最重要的内容的理解来打破各种架构特征。保持这些设备包括静态调度功能,高效卷积,带宽减少机制以及可编程性和灵活性在内的的多个“面向未来”的关键特性。

我们可能很容易忽略第一个元素——静态调度的价值 - 但正如Bratt所解释的那样,这是芯片整体性能和效率的关键部分。

在推理期间,存储器访问模式是完全静态可分析的,并且可以容易地理解和映射,但是许多设备没有利用这一点。CPU具有复杂的高速缓存层次结构,用于围绕非确定性存储器访问进行优化。但对于确定性神经网络,它可以提前将所有内容放在内存中,然后编译器可以获取神经元并为不同的组件创建命令流(由Arm控制处理器编排)并命中(hit)寄存器以控制这些组件。这个问题的简短答案是不需要缓存。另一个隐藏的效率是流量控制被大大简化,意味着更少的能量消耗和更可预测的性能。

处理卷积的效率更高。下图的SRAM突出显示了编译器为输入要素图和压缩模型权重分配一部分资源的方式。每个计算引擎都将使用跨计算引擎交叉的不同特征映射。

Arm的MAC引擎可以做8个16×16点(dot )的产品。我们之前已经讨论了为什么这很重要,但是在这些操作中有很多zeroes可以在MAC引擎中检测和调整以避免消耗功耗。

Arm还具有所谓的可编程层引擎,它使用Cortex CPU技术来支持非卷积运算符以及向量和神经网络扩展。

使用机器学习处理器特征映射压缩技术可以获得更高的效率,这些技术听起来类似于DeePhi为CNN压缩所做的工作。

Bratt表示,Arm的机器学习业务部门拥有150名员工,随着机器学习需求的不断增长,这一数字也在不断增长,而他们也正在将其整合到现有的工作流程和设置中。他说,这样做的目标是让这项工作跨越一系列细分市场。他表示,为用户提供一个拥有所有所需功能的通用平台并不简单。

消除高速缓存,改善压缩,使用混合精度算法,并将精简的SRAM片上的计算结合在一起并将其移植到密集点(dot)产品引擎上,这些操作都使得Arm的IP在市场上引人侧目,并且可以针对关键工作负载进一步细化。

与某些AI特定处理器相比,增加高带宽内存(或HMC)可能使其更容易被识别( recognizable ),但是被授权者可以更好地了解它在系统中如何协同工作。Arm工程师真正从生态系统中汲取了最佳的AI处理器技术,并与开源软件挂钩,吸引客户的兴趣。

上面的直方图显示了Inception V3上的8X8块,突出了无损压缩结果。采用零/非零滤波方法,显著减少了神经网络的大小。weight compression结果保留在内部SRAM中,并且修剪技术也保持在那里直到被需要。

Arm正在人家智能市场露出其獠牙。

责任编辑:Sophie

相关文章

半导体行业观察
摩尔芯闻

热门评论