面向卷积神经网络的硬件加速器设计方法
卷积神经网络(Convolutional Neural Network,CNN)是一种以特征提取为主要方式的深度学习算法,被广泛应用于图像分类、对象检测和语义分割等领域。然而,CNN 的参数量过大,运算过程需要使用大量的算力。为了满足实际应用对 CNN 推理的低时延、小体积和高吞吐率等要求,设计了一个采用优化方法的加速器。
加速器设计的关键技术包括:
1. 设计空间探索:为了提高数据重用,采用设计空间探索确定循环分块因子,最大化数据重用。
2. 循环展开技术:为了充分挖掘计算并行度,采用循环展开技术,充分发挥四种计算并行度。
3. 内存池、乒乓缓存和动态数据量化等技术:为了管理片内外存储资源,采用内存池、乒乓缓存和动态数据量化等技术。
4. 加速器流程封装:将生成加速器流程封装为 CNN 加速框架,实现了 AlexNet 网络的快速部署和高效加速。
通过仿真结果表明,该设计最高可达 1 493.4 Gops 的计算峰值,是被比较工作的多达 24.2 倍,DSP 效率也超过了其他设计方法,最低为 1.2 倍,实现了 CNN 快速部署,开发效率高,加速性能优异。
此外,研究人员还在优化 CNN 模型的参数量和计算复杂度方面进行了研究。例如,Chung 等人采用了将奇异值分解与剪枝方法组合使用的方案来对模型进行压缩,从而减少网络参数。Zhang 等人提出了 Caffeine 框架,将卷积和全连接运算转换为通用矩阵相乘,实现了 100 倍性能提升。Liang 等人和 Prasanna 等人采用快速算法 Winograd 和 FFT 将卷积变换到特殊域(如频域)完成,将乘法数量减少到 n2。Alwani 等人采用 fusion 计算模式逐层推理,减少高达 90% 的片内外传输。
面向卷积神经网络的硬件加速器设计方法旨在满足实际应用对 CNN 推理的低时延、小体积和高吞吐率等要求,具有广泛的应用前景。
关键词:卷积神经网络(CNN);加速器;并行计算;设计空间探索;乒乓缓存;数据重用