右侧原位(RiP)卷积:一种简单、通用且近乎最优的内存高效 CNN 推理策略
Right In-Place (RiP) Convolution: A Simple, General, and Near-Optimal Strategy for Memory-Efficient CNN Inference
精选理由
提出通用近最优的原地卷积,降低内存占用并避免推理数据破坏
AI 摘要
arXiv:2610.00586v1 公告类型:新增 摘要:激活内存而非计算量限制了微控制器等受限硬件上的 CNN 推理。直接原位卷积可以消除双缓冲开销,但 Gural 和 Murmann 提出的内存最优形式假设使用有效填充、单位步幅、单位膨胀率和奇数方形卷积核,并且需要非顺序遍历,转置操作会使推理时间增加至 $2\times$。我们发现了两种其已发表的闭式形式不成立的情形:(1)少分配了恰好 $(k-1)C_{in} \bmod (C_{out}-C_{in})$ 个标量;这一问题存在于其实际部署网络的每一层卷积中,并表现为对仍处于生命周期内的输入造成静默破坏;(2)当关键路径离开输出网格后,会出现无界的高估,最高可达 $2{,}432\times$。我们修正了这两个问题,并将方法推广到任意步幅、膨胀率、填充方式和矩形卷积核。随后,我们提出 Right In-Place(RiP)卷积:一种逐位相同的操作,其中每一层都在共享工作区中读取右对齐的输入,并从索引零开始写入左对齐的输出。该内存间隔需求关于输出像素索引呈分段仿射形式,因此只需在 $O(1)$ 时间内计算其断点,即可在不枚举输出网格的情况下得到最小安全间隔,同时保持行优先访问。在 $10{,}000$ 个随机层上,RiP 未产生任何数据破坏;在来自 25 种架构的 84 个卷积层上,它在其中 58 层与 herringbone 工作区完全匹配,在 81 层的差异不超过 5%;与双缓冲相比,平均内存占用减少了 24.8%。将其写入 TinyEngine 的内核并部署到 Raspberry Pi Pico 1 和 Pico 2 后,在周期数不变且输出逐位相同的情况下,11 个 MCUNet 模型的峰值激活内存降低了 12.5% 至 33.3%,使能够装入 Pico 1 的 256 KB SRAM 的模型数量从 6 个增加到 9 个。