本技术提出了一种基于FPGA的神经网络存算资源优化分配方法及系统,涉及人工智能技术领域,包括:分析并行因子与神经网络各层的延迟、并行因子与FPGA的计算资源消耗,建立层间计算资源关系模型;基于层间计算资源关系模型,通过计算资源分配方法,得到分配后的神经网络各层的最佳并行因子;分析神经网络层内各模块的延迟与并行度、内存资源消耗,建立层内内存资源关系模型;基于层间计算资源关系模型及层内内存资源关系模型和分配后的神经网络各层的最佳并行因子,实现层内内存资源与延迟的平衡优化。本发明通过合理分配各层并行度,在最小资源占用的前提下减少数据流阻塞,以各层内模块延迟一致与各层间延迟一致为目标,实现总延迟最小的效果。
背景技术
本部分的陈述仅仅是提供了与本发明相关的背景技术信息,不必然构成在先技术。
卷积神经网络正在被应用到各行各业中,图像分类,目标检测与跟踪,图像分割,姿态估计等绝大多数算法都需要将卷积神经网络作为特征提取器,卷积神经网络的特性使之可以获得到更深层次的特征,进而使算法达到更高的准确性,但卷积神经网络也带来了高额的算力与存储需求,进而带来了更高的能耗与资源占用。
在边缘场景下,设备的算力、存储和能耗都有限制,但同时边缘场景下对延迟也非常敏感,因此,由于卷积神经网络的高额算力与存储需求,极大的限制了卷积神经网络在边缘场景下的应用。
为了优化卷积神经网络在边缘场景下的性能表现,业内广泛使用FPGA(FieldProgrammable Gate Array,现场可编程门阵列)对神经网络进行加速,通过一系列的优化技术降低延迟与资源占用、提高吞吐量。
现有的使用FPGA对神经网络进行加速的研究,主要关注于以下几方面:网络轻量化、计算架构优化、提高计算并行度、批处理等。但FPGA的资源是有限的,各层的并行度与整体延迟、资源使用量有着极强的相关性,所以分配到神经网络各层的资源是否合理对最终的加速器的延迟与资源占用总量都会有非常大的影响。
但目前对于计算资源与存储资源这两种资源的在各层的分配方式却鲜有研究,无法解决FPGA分配到神经网络各层的资源是否合理的问题。
实现思路