[论文解读] A Simple Method to Reduce Off-chip Memory Accesses on Convolutional Neural Networks
本文提出一种简单、面向片上内存的算法,可显著减少卷积神经网络(CNN)在神经处理单元(NPUs)中的片外内存访问。通过检测多分支模块(如Inception模块)、对分支进行重排以实现最优的片上内存复用,并智能管理特征图缓冲,该方法在三星NPU上的Inception-V3模型中,将片外内存访问的数据量减少了97.59%,访问次数减少了50倍。
For convolutional neural networks, a simple algorithm to reduce off-chip memory accesses is proposed by maximally utilizing on-chip memory in a neural process unit. Especially, the algorithm provides an effective way to process a module which consists of multiple branches and a merge layer. For Inception-V3 on Samsung's NPU in Exynos, our evaluation shows that the proposed algorithm makes off-chip memory accesses reduced by 1/50, and accordingly achieves 97.59 % reduction in the amount of feature-map data to be transferred from/to off-chip memory.
研究动机与目标
- 通过最小化片外内存访问,降低NPUs中的能耗并提升实时性能。
- 解决移动NPU部署中高带宽和高能耗的片外内存瓶颈问题。
- 通过智能管理多分支卷积模块中的特征图存储,最大化有限片上SRAM的利用率。
- 开发一种轻量级、与硬件无关的算法,兼容现有NPU架构和量化网络。
提出的方法
- 通过基于图的网络解析检测CNN中的多分支模块(如Inception模块),忽略长跳跃连接。
- 根据各分支所需内存大小对分支进行重排,优先处理内存需求较大的分支,以最大化片上SRAM利用率。
- 将多个输入特征图(MIFM)和多个输出特征图(MOFM)分配为跨模块复用,减少冗余的片外传输。
- 采用两种分支处理策略:BrProcessing(I)用于片上复用,当片上空间不足时则使用BrProcessing(II)进行片外访问。
- 算法采用基于大小的判断标准:若所需内存大小(size_req)超过可用内存大小(size_avail),则触发片外访问。
- 假设权重和特征图为8位量化,专注于减少内存访问,不改变网络精度或结构。
实验结果
研究问题
- RQ1能否系统性地利用片上内存复用,以减少多分支CNN模块中的片外内存访问?
- RQ2如何通过分支排序与内存分配策略,最小化NPUs中的片外数据传输?
- RQ3在真实模型(如Inception-V3)中,跨模块的特征图复用能在多大程度上减少总片外内存带宽?
- RQ4在给定移动NPU片上内存预算下,片外内存访问的最大可减少幅度是多少?
主要发现
- 所提方法在Inception-V3上将特征图的片外内存访问量减少了97.59%。
- 片外内存访问次数平均从200次降低至4次,减少了50倍。
- 仅有两个模块——reduction-a和Inception-b1——因内存限制需保留片外访问,分别仅需3次和1次访问。
- 该算法在Inception-V3的全部11个模块中,实现了总片外内存访问量47.14%的减少。
- 该方法在保持相同权重访问模式的前提下,有效减少了特征图数据传输,仅依赖于内存管理。
- 该方法与硬件无关,兼容8位量化网络,适用于片上SRAM受限的移动NPU。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。