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

  • Post author:
  • Post category:其他


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

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

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

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



1、整体逻辑架构

这款AI芯片的整体逻辑架构如下图2所示。

在这里插入图片描述

可以看出,内部采用了2个PE阵列,其实就是2个脉动阵列,与谷歌的TPU比较像。不过,这里的脉动阵列的行为比较复杂,与谷歌TPU的脉动阵列并不相同。

这里的每个PE阵列可以最多配置成四个子阵列。

整体来说,权重存储在一个buffer中,data存储在另外一个buffer中,思路与寒武纪的DianNao、英伟达的NVDLA、谷歌的TPU等主流AI芯片一致。

既然是脉动阵列,自然要重复利用数据和权重。

论文提到,同一行的PE共享数据,同一列的PE共享权重。

奇怪的是,除了有个脉动阵列外,没有其他的激活、BN、add、pooling等模块。

仔细一看,原来这些功能都放在了PE中。

下面来看看PE的结构。



2、PE

PE的结构图如下图所示。

在这里插入图片描述

PE比较复杂呀。

首先PE要分2种,一种是普通PE,一种是super PE。

普通PE,只执行卷积和全连接。

super PE,只存在于最下面,执行包括pooling,激活,以及乘法,加法等RNN中的操作。

这么多PE,每个PE又这么复杂,那如何一起工作的?

下面来看看论文给的例子。



3、配置PE,计算LRCN

在这里插入图片描述

图5给出了两种计算的数据流程图。

分别为:

(1)CNN -> FC -> RNN

(2)Conv -> pool -> FCN/RNN

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

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



4、性能比较

在这里插入图片描述

清华的这款AI芯片的实际频率是200MHz。

可以看出,在与另外2款芯片比较时,清华的吞吐量几乎是其他的6倍,能效也更好。

还是非常不错的设计。



5、总结

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

不过,可以看出,与谷歌TPU比较,这里的PE结构非常复杂,内部path走线非常多,另外一些资源的分配有欠缺,比如每个普通PE中只有relu激活,没有其他的激活函数,那么当卷积需要别的激活函数,怎么办?还能高效处理么?

特殊的激活函数,目前只有super PE中有,这也限制了PE资源的配置及效率。

假如,卷积用的激活是特殊激活函数,那么,就只有最下面的PE才能完成正确的激活,这样,岂不是又限制了计算速度?

存疑。



版权声明:本文为evolone原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。