当前位置: 主页 > 学术动态 >

通过高效的重计算最小化物联网设备推理的峰值内存占用

点击数:   更新日期: 2023-09-01

中文题目:通过高效重计算最小化物联网设备推理的峰值内存占用

论文题目Minimizing Peak Memory Footprint of Inference on IoTs Devices by Efficient Recomputation

录用期刊/会议International Conference on Intelligent Computing 2023 (CCF C)

原文链接:https://link.springer.com/chapter/10.1007/978-981-99-4761-4_2

录用/见刊时间:2023年7月31日

封面图片:



封面摘要:

本文中所设计的算法总览对于一个神经网络模型的计算图,我们通过四个步骤基于基础调度序列获得峰值内存占用更低的重计算调度序列。

作者列表

1) 孙啸峰 中国石油大学(北京)信息科学与工程学院 计算机科学与技术专业 21

2) 徐朝农 中国石油大学(北京)信息科学与工程学院 计算机系教师

3 李超 之江实验室

文章简介:

近些年来,基于微控制器的边缘设备数量已经从19年的1150亿到现在高达2500亿。如此巨量的边缘设备体现出其在我们日常生活中的不可替代性。同时边缘智能有着实时性、安全性、成本较低等优势。可见边缘智能的需求日益增加。当前主流的在边缘设备上进行神经网络推理分为两个步骤:首先在搭配高算力的设备上进行神经网络模型的训练,比如服务器集群等。然后将训练好的模型部署到边缘设备上运行。不幸的是,模型运行时的内存需求与边缘设备上较少的内存使得此运行过程变得困难。本文选择不会影响模型性能的算子调度方法来降低模型推理时的内存需求。由于对一个模型不同的算子调度策略会使一个时刻在内存中的中间计算结果不同,不同的算子调度策略会产生不同的峰值内存。因此,我们可以选择峰值内存最低的算子调度策略。本文通过结合重计算思想,对某些算子进行重复计算来避免中间结果的长时间保存进而降低峰值内存。

摘要:

在物联网设备上部署深度神经网络模型给日常生活带来了极大的便利。如今,基于微控制器物联网设备内存容量小,给模型推理带来了巨大的挑战。如果内存容量小于推理模型的峰值内存需求,模型就无法部署在设备上。文中将重计算方法引入到模型推理中,以减少内存占用。该算法通过保存部分非分支节点的中间结果来代替分支节点中间结果,并通过重新计算来恢复必要的中间结果,从而减少峰值内存占用,进而解决上述内存不足的问题我们提出了一种基于重计算思想的推理调度算法,相对于广泛应用的TensorFlow Lite Micro框架,该算法实现了1.07x1.25x的峰值内存占用降低,比目前最先进的算法提高了0.01x0.23x。

设计与实现:



1 本文算法的总览

本文中所设计的算法总览,对于一个神经网络模型的计算图,我们首先使用已有的调度算法得到基础调度序列。然后,寻找所有单元重计算策略URSs, 对其进行幂集得到所有的组合。在已获得的基础调度序列上结合每个组合生成新的重计算调度序列,并计算该序列的峰值内存占用。最后,通过比较选择峰值内存占用最低的重计算调度序列。

实验结果及分析:



2 本文方法相较Tensorflow lite micro (TFLM) SERENITY的峰值内存占用减少

我们将所提出的重计算方法与TFLM和SERENITY进行了比较。在构建的20个神经网络模型中,我们将TFLM的峰值内存占用作为基准。可以看到我们的方法相比TFLM达到了1.07x至1.25x的峰值内存降低,相较SERENITY提升0.07x至0.23x的峰值内存降低。同时我们观测到对于某些模型我们的方法与SERENITY达到同样的效果,这是因为导致峰值内存出现时刻在重计算调度序列与单元重计算策略的计算路径没有交叉。



3 本文方法的计算量增加

由于重计算,我们的算法会产生额外的成本。我们通过计算不同调度序列的FLOPs来说明计算量的增加。对于20个网络模型,重计算调度序列的计算量为基础调度序列的1.04x至1.17x。

结论:

本文中,我们引入重计算想法到神经网络模型推理中,其通过扩展推理调度的空间可达到降低峰值内存占用的目的实验说明相比目前最先进的算法,我们所提的方法能达到更低的峰值内存占用,用较少的计算代价换取运行更多神经网络模型的能力是十分值得的。然而,该方法受限于神经网络模型的结构,如果没有有效的单元重计算策略,该方法无法提供相较最先进算法的提升。

通讯作者简介:

徐朝农,博士,中国石油大学(北京)信息科学与工程学院博士生导师,主要研究方向为智慧物联网、边缘智能、嵌入式系统。