AI芯片:清华大学可重构混合神经网络处理器结构分析

清华大学微纳电子系的尹首一等人于2018年发表论文《A 1.06-to-5.09 TOPS/W Reconfigurable Hybrid-Neural-Network Processor for Deep Learning Applications 》,介绍了他们的面向深度学习人工智能算法的AI芯片架构及性能参数。

这是大学的AI芯片,代表了学术界的一种想法。

下面分析一下其内部结构。当然,主要还是看其内部乘加逻辑的设计。

(所有图片来自论文截图)

1、整体逻辑架构

这款AI芯片的整体逻辑架构如下图2所示。
AI芯片:清华大学可重构混合神经网络处理器结构分析
可以看出,内部采用了2个PE阵列,其实就是2个脉动阵列,与谷歌的TPU比较像。不过,这里的脉动阵列的行为比较复杂,与谷歌TPU的脉动阵列并不相同。
这里的每个PE阵列可以最多配置成四个子阵列。

整体来说,权重存储在一个buffer中,data存储在另外一个buffer中,思路与寒武纪的DianNao、英伟达的NVDLA、谷歌的TPU等主流AI芯片一致。
既然是脉动阵列,自然要重复利用数据和权重。
论文提到,同一行的PE共享数据,同一列的PE共享权重。

奇怪的是,除了有个脉动阵列外,没有其他的**、BN、add、pooling等模块。
仔细一看,原来这些功能都放在了PE中。
下面来看看PE的结构。

2、PE

PE的结构图如下图所示。
AI芯片:清华大学可重构混合神经网络处理器结构分析
PE比较复杂呀。
首先PE要分2种,一种是普通PE,一种是super PE。
普通PE,只执行卷积和全连接。
super PE,只存在于最下面,执行包括pooling,**,以及乘法,加法等RNN中的操作。

这么多PE,每个PE又这么复杂,那如何一起工作的?
下面来看看论文给的例子。

3、配置PE,计算LRCN

AI芯片:清华大学可重构混合神经网络处理器结构分析
图5给出了两种计算的数据流程图。
分别为:
(1)CNN -> FC -> RNN
(2)Conv -> pool -> FCN/RNN

可以看出,计算卷积,全连接,pooling,RNN的特殊操作等,可以配置不同数量的PE,灵活处理,最大化提升效率。

下面再看看这样设计带来的性能提升。

4、性能比较

AI芯片:清华大学可重构混合神经网络处理器结构分析
清华的这款AI芯片的实际频率是200MHz。
可以看出,在与另外2款芯片比较时,清华的吞吐量几乎是其他的6倍,能效也更好。
还是非常不错的设计。

5、总结

整体来看,这个AI芯片的结构,利用了脉动阵列的优点,大量复用数据和权重,又结合了可重构的思路,使得PE资源灵活配置,最大限度提升效率。

不过,可以看出,与谷歌TPU比较,这里的PE结构非常复杂,内部path走线非常多,另外一些资源的分配有欠缺,比如每个普通PE中只有relu**,没有其他的**函数,那么当卷积需要别的**函数,怎么办?还能高效处理么?
特殊的**函数,目前只有super PE中有,这也限制了PE资源的配置及效率。
假如,卷积用的**是特殊**函数,那么,就只有最下面的PE才能完成正确的**,这样,岂不是又限制了计算速度?

存疑。