查看原文
其他

ISSCC2017 Deep-Learning Processors文章学习 (一)

2017-02-10 T.S. StarryHeavensAbove


第一篇

“A 2.9 TOPS/W Deep Convolutional Neural Network SoC in FD-SOI 28nm for Intelligent Embedded Systems”


这个PPT来自STMicroelectronics,虽然没有看到全文,还是可以看出这个工作的完成度相当高,考虑的也很详细,反应了老牌芯片公司的实力。具体是从芯片架构,软硬件划分,DCNN功能mapping,硬件加速器设计和物理设计几个方面来讲的,也是我们做架构设计的群众最感兴趣内容。


1. 芯片架构


从架构来说是一个比较传统的DSP+硬件加速器+share memory的结构,这在多媒体和通信基带处理中非常常见(应该也是高度重用了ST熟悉的架构)。



这里比较值得参考的是具体配置,相信这些配置也是经过定量分析和优化的。从后面的软硬件划分可以看出,DSP主要完成Conv操作之外的工作。由于这些操作的处理要求不是很高,这里只用了32bit的DSP。DSP cluster中的2D-DMA很重要。



share memory和L2 cache的配置也是根据AlexNet来确定的。每块memory可以独立sleep。


最后一部分硬件加速器后面有详细介绍。


2. DCNN Mapping

这部分主要分两个内容,处理(operation)和存储(memory),基本都是根据AlexNet来说明的。



处理方面,CONV层用硬件加速(85-90%的处理),其它操作用DSP(这里使用DSP和CPU其实关系不大,比如Synopsys的EV里就是用ARC CPU+CONV硬件加速的配合)。


Memory部分也是以AlexNet为例。


在DCNN mapping中,比较遗憾的是没分析一些比较新且性能更好的网络。比如,ResNet参数达到了150 million,它的memory footprint会有很大的变化,也会对整个芯片架构有很大影响。


3. 硬件加速器


这个部分是本文的重点之一。个人感觉其核心是实现了一个基于DMA和virtual stream link的,灵活可配的数据通路。ST在这方面是有很多积累的,有非常成熟的方法学,这个结构和当年我们做多模信道编解码的硬件加速器结构也非常像。在这个基础上,可以很灵活的实现下图所示的各种数据通道的组合,因此也可以适应多种DCNN的结构。



CONV加速器的内部就没有太多可说的了,对于设计者来说,可以参考的主要具体的参数选择。


这部分还给出了一个batch处理的并行执行和链状执行的说明,还是比较有意思的。当然这些灵活性也是基于前面介绍的数据通路的可配置性的。



4.物理设计

这一部分没有太多可说的,mono supply memory应该是一个亮点。总之,片上memory那么多,有优化memory面积功耗的实力当然不能浪费。


Chip spec也可以参考一下。

5.结果

论文最后的结果就不分析了。不过也可以看出,寒武纪的DL处理器已经是大家对比的标杆之一了。

最后这个对于AlexNet的实现结构可以看看。



个人点评

如果我们单独考虑DCNN的情况,可以说这个架构是一个比较合理而平衡的架构(大的思路和Synopsys的EV处理器也比较类似)。从另一个角度来说,这也应该是ST最熟悉的架构。我猜除了CONV加速这一部分,其它的都是重用之前的设计。这篇文章的工作的完成度也是很高的,感觉是作为一个实用项目来思考的,细节上有很多地方有借鉴意义。比较遗憾的是从这个ppt来看,对其它AlexNet以外的其它网络分析很少。

还有一个比较遗憾的地方是没有介绍工具链的部分。这个架构里的可编程部分包括DSP和可配置的硬件加速器,如果在软件层面让这些部分高效、协调的工作也是一个有意思的话题。

T.S.

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存