摘要:大多数机器学习加速器设计都专注于高效实现算法的计算部分。然而,CNN和DNN的特征在于它们的大尺寸。在这项研究中,设计了一个用于大规模CNN和DNNs的加速器,特别强调内存对加速器设计、性能和能量的影响。
一、存储器带宽测量:
高速缓存模拟器:使用一个插入虚拟计算结构的高速缓存模拟器,除了它能够在每个周期处理具有Ti突触的Tn神经元之外,我们不做任何假设。缓存层次结构受英特尔酷睿i7的启发:L1为32KB,64字节,8路;可选的L2是2MB,64字节,8路。与酷睿i7不同,我们假设缓存有足够的存储体/端口来为输入神经元提供Tn × 4字节,为突触提供Tn × Ti × 4字节。对于大型Tn、Ti,这种缓存的成本可能令人望而却步,但它仅用于我们对局部性和带宽的极限研究;在我们的实验中,我们使用Tn=Ti=16。
1、全连接层
平铺环ii和nn简单地反映了计算结构可以同时处理具有Ti突触的Tn神经元。记忆转移的总数是(加载的输入+加载的突触+写入的输出):Ni × Nn+Ni × Nn+Nn。对于示例层CLASS1,对应的内存带宽很高,为120 GB/s。
输入神经元被重新用于每个输出神经元,但是由于输入神经元的数量可以在几十到几十万之间的任何地方,它们通常不适合L1高速缓存。因此,我们用平铺因子Tii平铺环路ii(输入神经元)。平铺的典型折衷是,改进一个参考(这里是输入神经元的神经元[i])增加了另一个参考的重用距离(输出神经元的部分和的和[n]),因此我们也需要平铺第二个参考,因此循环nnn和输出神经元的部分和的平铺因子Tnn。正如预期的那样,平铺极大地降低了输入神经元的内存带宽需求,而输出神经元的内存带宽需求增加了,尽管幅度很小。层记忆行为现在由突触主导。
突触。在全连接层中,所有突触通常都是唯一的,因此层内没有重用。另一方面,突触在网络调用中被重用,即,对于呈现给神经网络的每个新输入数据(也称为“输入行”)。因此,一个足够大的L2可以存储所有的网络突触,并利用这种局部性。对于具有私有内核
版权归原作者 Pefect! 所有, 如有侵权,请联系我们删除。