INTRO

NPU中的全局缓存通常组织为multi-bank的架构,本文针对减少片外访存和隐藏DRAM访问延迟的目标,提出了一种片上内存管理技术。

将权重缓存和输入输出缓存区分开来可以简化设计,权重缓存只需要使用double buffer设计就可以隐藏DRAM访问延迟;特征图像缓存则需要仔细的规划预取下一个输入段、读取当前输入段和写入输出段的顺序。

DRAM访问延迟的评估通过使用 Ramulator对 DRAM 仿真结果进行回归得到。

MOMM

MOMM的控制体系如图3所示:给出当前Bank状态和NN的信息,MOM manager 给出数据tile的映射方案、NPU处理顺序和新的Bank 状态。

MOMM考虑不同的MEM Banks使用策略对DRAM访问量和DRAM访问延迟的影响(2个目标函数):

DRAM-first Store

当片上缓存不足以存储整个输出特征图像时,优先将溢出的部分加载到DRAM中,减少存储OutFMAP的Bank数量。

如图4所示,使用简单的DRAM最低优先级方式会在步骤5时等待$ I_4$加载;使用DFS策略时,对DRAM来说输入读取和输出写入有访问竞争,如果下一次计算不访问预取数据,则可以延迟预取,不会降低性能。

※DRAM Access Minimization Policy

通过预设OFM可以占用的最大Bank数目决定Bank的使用顺序,如图5所示,当WMEM能够一次性缓存所有WGT时,a的DRAM访问次数更少,反之b更少。

MIN Access framework

确定使用的策略和存储OFM的bank数目→确定需要load input的bank数目→确定需要参与处理的banks数目→更新bank状态

※DRAM Access Hiding Policy

HIDE策略的目的是通过预取数据来隐藏DRAM的访问延迟,如果存在未加载的输入Tile,HIDE策略会在每一个控制步骤中至少保留一个可用的存储库用于预取。

MIN 策略处理所有可能的输入Tile,以最大限度地重复使用滤波器权值。HIDE 策略通过估算决策后的 PE 延迟来确定需要处理的输入瓦片数量。两者的对比如下图所示

图7

Multi-path NN

面对具有多个分支的网络时,可能的方案选择非常复杂。假设 FMEM 库的数量为 N,网络并行路径的数量为B,那么可能的方案选择有$B!*(N-1)^{B-1}$种,$B!$是所有可能的处理顺序数,$(N-1)^{B-1}$是每条路径中可以留下输入Tile数目的总情况数。总情况数目非常庞大,本文提出了一种贪婪启发式来减少需要比较的案例数量,对于给定的路径排序,我们确定从第一条路径依次离开的输入Tile的数量,对所有选定的案例进行比较,以找到关于路径处理顺序和从每条路径离开的输入Tile数量的最佳决策。

Hybrid Fusion

本文提出了一种介于完全融合和按顺序处理之间的混合融合方案,实质上就是需要在片上存储的图像大于FMEM但是比整张图像小。感觉这个点比较水。