袁子昂,倪 伟,冉敬楠
(合肥工业大学 微电子学院,安徽 合肥 230601)
卷积神经网络(Convolutional Neural Networks,CNN)被广泛地应用在图像处理[1-2]、自动驾驶[3-4]等领域。卷积神经网络在人工神经网络的基础上引入了卷积层,使网络计算量激增。为了提高计算效率并提升系统响应速度,利用ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等高性能硬件来对CNN网络计算进行加速[5-7]已成为主流趋势。设计高效的卷积计算结构已成为这类硬件加速器的设计重点。
针对上述问题,文献[8]使用Winograd算法加速卷积计算,减少了卷积过程中的乘法数量,该方法的性能相对于传统卷积性能提升了2.25倍。但该方法的卷积过程需要进行连续矩阵乘,增加了中间结果存储带来的访存消耗。文献[9]设计了一种可重构的神经网络硬件加速器,加速器可根据不同的通道数和PE数量去重构PE阵列进行卷积计算,提高了资源利用率和运算效率,其图像分类效率提高了31%。但该加速器在进行其他计算时资源利用效率较低。文献[10]所涉及的可重构加速器可在不同计算任务下,重新配置运算器电路结构,对不同的计算进行加速,提升了资源利用效率。
针对上述问题,本文将Winograd计算划分成多个计算阶段。对于文献[8]中的访存周期损耗,本文将上一计算阶段的结果数据进行转换,使其可以作为下一计算阶段的输入,减少了计算过程中的访存时间,提升了计算效率。本文在各计算阶段中使用多个PE进行联合并行计算,复用已变换的输入特征图和卷积核进行多输出通道并行计算,在减少数据搬移损耗的同时提高了系统的计算效率。……