AI处理器的内存分配方法、计算机装置及计算机可读存储介质制造方法及图纸

技术编号:29419269 阅读:18 留言:0更新日期:2021-07-23 23:13
本发明专利技术涉及内存管理的技术领域,并且提供一种AI处理器的内存分配方法、计算机装置及计算机可读存储介质,该方法包括获取神经网络的多个算子,分析输入与输出占用的内存空间可重叠的算子;判断神经网络的输入的尺寸是否为固定尺寸,如是,采用静态内存池式分配算法确定多个内存块的存储地址:计算神经网络模型推理过程中每一内存块的大小,确认每一内存块的生命周期;并判断内存块是否为可被重叠的内存块,如是,修正内存块的大小和生命周期,根据内存块修正后的大小和生命周期分配各内存块的存储地址,否则,则采用动态内存池式分配算法为多个内存块申请内存空间。本发明专利技术还提供实现上述方法的计算机装置及计算机可读存储介质。

【技术实现步骤摘要】
【国外来华专利技术】AI处理器的内存分配方法、计算机装置及计算机可读存储介质
本专利技术涉及内存管理的
,具体地,是一种AI处理器的内存分配方法以及实现这种方法的计算机装置、计算机可读存储介质。
技术介绍
目前,深度神经网络技术在计算机视觉和自然语言处理等领域取得了巨大的成功。近年来,随着AIoT(ArtificialIntelligence&InternetofThings,人工智能与物联网)技术的兴起,人工智能技术与物联网技术在实际应用中不断融合,越来越多的深度学习算法需要部署到资源受限的嵌入式端设备上。然而,由于嵌入式端设备的计算能力和内存资源受限,因此需要研究高性能和高效能的边缘推理方法便于神经网络模型的部署。近年来,一部分研究人员聚焦于神经网络的模型推理性能,设计出高效的神经网络结构,如SqueezeNet、MobileNets和EfficientNet等,这些神经网络模型能够以较小的计算量获取较好的性能。此外,还有一部分研究人员侧重研究提高神经网络模型的效率,对神经网络模型进行压缩、裁剪和量化,在不明显降低神经网络模型性能的前提下,大幅减少计算量和内存消耗。由于深度神经网络前向推理过程中涉及到大量矩阵乘法和加法的运算,而这些运算又可以高度并行化执行,因此研究人员开始研究具有并行计算能力的人工智能处理器,即AI处理器。AI处理器通过将整个神经网络的计算部分映射到硬件逻辑上,从而完成对神经网络模型计算部分的硬件加速,在一定程度上缓解了嵌入式端设备的计算能力受限问题。然而,深度神经网络在前向推理过程中仍需要储存大量的权重和激活,例如在Caffe框架下ResNet50模型在进行推理时就需要约170MB的内存空间,但是嵌入式端的储存空间通常有限,因此,亟需减少神经网络在模型推理时的内存消耗。现有的一种方案是在神经网络的模型推理过程中采用动态分配内存的方法,该方法可以减少大量内存消耗,但是需要在每一次推理过程中频繁的分配和释放内存空间,不可避免地影响到模型推理时的执行效率,增加了模型推理的时间消耗。另一种方案是结合AI处理器的特点,将神经网络中卷积、归一化和池化等算子直接以in-place(原地处理)的方式进行计算,以减少神经网络中部分算子消耗的内存。此外,现有的更多方案是考虑设计静态内存池式分配方法来减小内存消耗,在模型进行推理前统一分配内存空间,并确定推理过程中所需内存块的大小和地址偏移,在模型最后一次推理完成后,统一释放之前申请的内存空间。但是,由于上述方案都没有考虑神经网络的实际情况,要么影响神经网络的技术效率,要么仍占有大量的内存空间。为此,研发人员研究采用静态内存池分配方法与动态内存分配相结合的方式进行内存的分配,例如公开号为CN101968772A的中国专利技术专利申请公开的嵌入式系统高效内存池的实现方法。但是,该方法并未结合神经网络各算子的具体情况合理分配内存,导致内存占用量仍然很高。技术问题本专利技术的第一目的是提供一种减少神经网络进行推理过程中占用的内存空间的AI处理器的内存分配方法。本专利技术的第二目的是提供一种实现上述AI处理器的内存分配方法的计算机装置。本专利技术的第三目的是提供一种实现上述AI处理器的内存分配方法的计算机可读存储介质。技术解决方案为实现本专利技术的第一目的,本专利技术提供的AI处理器的内存分配方法包括获取神经网络的多个算子并且,计算分析多个算子中,算子的输入与输出占用的内存空间可重叠的算子;判断神经网络的输入的尺寸是否为固定尺寸,如是,采用静态内存池式分配算法确定多个内存块的存储地址,否则,则采用动态内存池式分配算法为多个内存块申请内存空间;其中,采用静态内存池式分配算法确定多个内存块的存储地址包括:计算神经网络模型推理过程中每一内存块的大小,确认每一内存块的生命周期;并判断内存块是否为可被重叠的内存块,如是,修正内存块的大小和生命周期,根据内存块修正后的大小和生命周期分配各内存块的存储地址。一个优选的方案是,计算分析多个算子中输入与输出占用的内存空间可重叠的算子包括:判断一个算子的输入与输出激活是否只参与当前层算子的计算,如是,确认该算子的输入与输出占用的内存空间可重叠,否则,确认该算子的输入与输出占用的内存空间不可重叠。优选的,被分析的算子为经过线性拆分的算子。进一步的方案是,确认每一内存块的生命周期包括:根据内存块所存储的算子第一次访问时间以及最后一次访问时间计算该内存块的生命周期。更进一步的方案是,根据内存块修正后的大小和生命周期分配各内存块的存储地址包括:根据内存块修正后的大小和生命周期,将各个内存块放入静态内存池中,应用启发式算法计算各个内存块的偏移地址。更进一步的方案是,分配各内存块的存储地址前,确定静态内存池的大小:计算任意时刻下内存块集合的大小,以任意时刻下所需要内存块集合最小值作为静态内存池大小的下限值。更进一步的方案是,采用动态内存池式分配算法为多个内存块申请内存空间包括:确认当前算子计算所需要的内存空间的大小,并判断内存链表中是否有满足要求的空闲内存块,如是,使用满足要求的空闲内存块作为当前算子计算所需的内存,并将该空闲内存块从内存链表中移除。更进一步的方案是,在内存块的生命周期结束后,将内存块释放并插入内存链表中。更进一步的方案是,如内存链表中没有满足要求的空闲内存块,申请满足当前算子计算所需的内存空间。更进一步的方案是,使用满足要求的空闲内存块作为当前算子计算所需的内存包括:以内存链表中满足当前算子计算所需的内存空间要求且内存空间最小的空闲内存块作为当前算子对应的内存块。更进一步的方案是,使用满足要求的空闲内存块作为当前算子计算所需的内存包括:确认当前算子占用的内存空间与所使用的内存块的大小之间的比值大于预设的内存占用比。为实现上述的第二目的,本专利技术提供的计算机装置包括处理器以及存储器,存储器存储有计算机程序,计算机程序被处理器执行时实现上述AI处理器的内存分配方法的各个步骤。为实现上述的第三目的,本专利技术提供计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述AI处理器的内存分配方法的各个步骤。有益效果本专利技术的方法根据神经网络的输入情况确定使用静态内存池式分配内存或者采用动态内存池式进行内存空间的分配,针对输入为固定尺寸的情况,可以提高AI处理器对神经网络推理的效率,而针对神经网络输入并不是固定尺寸的情况,采用动态内存池式的内存分配方式,能够最大限度的减少内存的占用空间,减少神经网络推理过程中占用的内存量。并且,根据各算子的输入与输出来确定算子的生命周期,如果某一个算子仅仅在某一层使用,则该算子占用的内存空间可以重复使用,即某一个内存块在整个推理过程中可以在不同时间段内分别存储多个算子,从而减少神经网络推理过程中占用的内存量。另外,应用启发式算法计算各个内存块的偏移地址,进而确定各个内存块的绝对地址,有利于实现神经网络的模型在推理过程中所占用的内存空间最小化。此外,在动本文档来自技高网...

【技术保护点】
1.一种AI处理器的内存分配方法,包括:/n获取神经网络的多个算子;/n其特征在于:/n计算分析多个所述算子中,算子的输入与输出占用的内存空间可重叠的算子;/n判断所述神经网络的输入的尺寸是否为固定尺寸,如是,采用静态内存池式分配算法确定多个内存块的存储地址,否则,则采用动态内存池式分配算法为多个内存块申请内存空间;/n其中,采用静态内存池式分配算法确定多个内存块的存储地址包括:计算神经网络模型推理过程中每一内存块的大小,确认每一所述内存块的生命周期;并判断内存块是否为可被重叠的内存块,如是,修正内存块的大小和生命周期,根据内存块修正后的大小和生命周期分配各内存块的存储地址。/n

【技术特征摘要】
【国外来华专利技术】1.一种AI处理器的内存分配方法,包括:
获取神经网络的多个算子;
其特征在于:
计算分析多个所述算子中,算子的输入与输出占用的内存空间可重叠的算子;
判断所述神经网络的输入的尺寸是否为固定尺寸,如是,采用静态内存池式分配算法确定多个内存块的存储地址,否则,则采用动态内存池式分配算法为多个内存块申请内存空间;
其中,采用静态内存池式分配算法确定多个内存块的存储地址包括:计算神经网络模型推理过程中每一内存块的大小,确认每一所述内存块的生命周期;并判断内存块是否为可被重叠的内存块,如是,修正内存块的大小和生命周期,根据内存块修正后的大小和生命周期分配各内存块的存储地址。


2.根据权利要求1所述的AI处理器的内存分配方法,其特征在于:
计算分析多个所述算子中输入与输出占用的内存空间可重叠的算子包括:
判断一个算子的输入与输出激活是否只参与当前层算子的计算,如是,确认该算子的输入与输出占用的内存空间可重叠,否则,确认该算子的输入与输出占用的内存空间不可重叠。


3.根据权利要求2所述的AI处理器的内存分配方法,其特征在于:
被分析的算子为经过线性拆分的算子。


4.根据权利要求1至3任一项所述的AI处理器的内存分配方法,其特征在于:
确认每一所述内存块的生命周期包括:根据所述内存块所存储的算子第一次访问时间以及最后一次访问时间计算该内存块的生命周期。


5.根据权利要求1至4任一项所述的AI处理器的内存分配方法,其特征在于:
根据内存块修正后的大小和生命周期分配各内存块的存储地址包括:根据所述内存块修正后的大小和生命周期,将各个所述内存块放入静态内存池中,应用启发式算法计算各个所述内存块的偏移地址。


6.根据权利要求5所述的AI处理器的内存分配方法,其特征在于:
分配各内存块的存储地址前,确定所述静态...

【专利技术属性】
技术研发人员:汪厚峄丁然南楠
申请(专利权)人:珠海全志科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1