一种计算和访存高效的CNN网络模型计算调度映射方法

文档序号:29630777发布日期:2022-04-13 15:51阅读:177来源:国知局
一种计算和访存高效的cnn网络模型计算调度映射方法
技术领域
:1.本发明属于深度学习领域,尤其涉及一种计算和访存高效的cnn网络模型计算调度映射方法。
背景技术
::2.tvmoctoml公司推出了深度学习自动代码生成工具集tvm,aws和来自华盛顿大学的研究团队基于tvm堆栈推出端到端编译器nnvm;腾讯优图基于ncnn设计推出了跨平台深度学习推理框架tnn;ailab开放智能实验室推出了支持多平台的tengine推理框架;旷视建立了从算法研发到部署应用的全流程、一站式人工智能算法平台megengine;google开源了与tensorflow紧密结合mlir架构,支持表示格式和编译器实用工具库;nvida针对gpu推出了高性能的深度学习推理(inference)优化器tensorrt。华为针对自研npu处理器,推出了自研ai计算框架mindspore,提供全场景统一api,为全场景ai的模型开发、模型运行、模型部署提供端到端能力。在这些工作中,部分采用了自动网络模型映射和代码生产的方法。3.optimizingtheconvolutionoperationtoacceleratedeepneuralnetworksonfpga和optimizingacceleratoronfpgafordeepconvolutionalneuralnetworks等论文探索了再fpga平台上启发式优化方式。optimizingmemoryefficiencyfordeepconvolutionalneuralnetworksongpus探索了在gpu平台上的存储和计算优化方法。dynamiclook-uptablemethodforoptimizingthetrainingofdeepneuralnetworksonmany-corearchitecture探索了在多核处理器架构上优化和计算方法。4.目前已有的方法缺乏针对计算映射、存储映射和软流水调度三个维度联合优化的自动结构映射和代码生成方法。5.(1)不同的神经网络模型结构差异,由不同数目的网络层构成,每一层的卷积核大小配置可能不相同,每一层的输入通道数和输出通道数配置也不相同;高效率卷积计算需要针对目标平台系统架构特点,设计优化的计算映射、存储映射方案以及软件流水优化调度策略。6.(2)不同目标硬件平台片上存储器(sram)大小配置不同,如何给输入特征系数(tix*tiy*tif)、卷积核系数(tkx*tky*tif*tof)和输出特征系数(tox*toy*tof),合理分配存储空间,从而决定外存和片上存储器(缓存)之间数据交互的频度,直接影响数据复用效率,总体上影响计算单元运行效率和外部存储器吞吐效应和访问带宽消耗;(3)不同目标硬件平台片上计算资源配置不同,可同时并发实现mac计算(乘加计算)的并发强度可能存在差异,如何将密集的多重循环mac计算映射到可并发数受限的计算单元阵列(pkx,pky,pif,pix,piy,pof),对于充分利用片上mac计算阵列效率,有着重要的影响;(4)不同的计算配置(pkx,pky,pif,pix,piy,pof)和缓存配置组合(tix*tiy*tif)+(tkx*tky*tif*tof)+(tox*toy*tof),需要联合优化,以实现计算和数据复用效率最大mac计算单元数据等待梳理最小化;外部软件流水效率最大化;fintra=(tif*tix*tiy)/(pif*pix*piy)+(tif*tkx*tky)/(pif*pkx*pky)+(tof*tox*toy)/(pof*pox*poy)。11.进一步地,所述步骤3根据目标计算平台特点以及待映射神经网络的网络结构,设计合适的参数组合,所述参数包括计算映射相关参数pif,pix,piy,pof,pkx,pky,pox,poy,存储映射相关参数tif,tix,tiy,tof,tkx,tky,tox,toy,batch批处理强度batch,循环展开组合策略batch,if,of,ix/iy,kx/ky,ox/oy,卷积窗口在特征图内滑动策略scan_mode,乒乓策略pingpong,以及循环展开和向量化策略vec/unroll。12.本发明的一种计算和访存高效的cnn网络模型计算调度映射方法具有以下优点:本发明的一种计算和访存高效的cnn网络模型计算调度映射方法包括单位mac计算单元算力、可并发强度、片上缓存颗粒度、缓存大小,并结合算法网络结构特点,为每个网络层实现优化映射,提出计算、存储、访存带宽多目标优化的网络结构映射实现方法。附图说明13.图1为卷积计算循环示意图;图2为典型的卷积mac计算阵列结构示意图;图3为本发明的输入、输出、权重系数存储映射示意图;图4为本发明的mac计算映射示意图;图5为本发明的多维度参数选择优化示意图。具体实施方式14.为了更好地了解本发明的目的、结构及功能,下面结合附图,对本发明一种计算和访存高效的cnn网络模型计算调度映射方法做进一步详细的描述。15.本发明的一种计算和访存高效的cnn网络模型计算调度映射方法,包括如下步骤:(1)根据片上sram存储配置确定存储映射方案如图1所示是典型的卷积神经网络多重循环示意图,包含六重循环索引分别是:输出特征索引、输出特征系数xy坐标、输入特征通道索引、卷积核内偏移量xy,s是滑动的步长长度。这里假设输入特征参量维度为nif*nix*niy,卷积权重系数维度为nif*nof*nkx*nky,输出特征参量维度为nof*nox*noy。16.图2给出了比较典型的卷积计算的硬件架构示意图,核心部件是密集mac(乘法加法操作)计算单元阵列,与之直接连接的是寄存器阵列,以实现数据移动和复用;还有与mac计算阵列紧耦合的片上缓存(一般是sram),用于缓存输入特征系数和权重系数。17.六重循环计算过程中,需要反复搬运输入特征系数in(ni;s*x+kx,s*y+ky)、权重系数weight(ni,no;kx,ky)到计算单元紧密耦合的片上存储单元。如图3所示,假设用于保存输入特征系数的片上缓存维度为tif*tix*tiy,保存权重系数的片上缓存维度为tif*tof*tkx*tky,保存输出特征系数的片上缓存为tof*tox*toy。这样输入、输出特征系数和权重系数缓存存储单元tm为tm=tif*tix*tiy+tif*tof*tkx*tky+tof*tox*toy。假设芯片内部缓存容量ttot,那么这些参数(tif,tix,tiy,tof,tkx,tky,tox,toy)选择需要考虑下面几个因素:ꢀtm≤ttot片上缓存和外部存储器之间数据交换的频度finter尽可能小;mac计算单元数据等待梳理最小化。18.nif*nix*niy)/(tif*tix*tiy)+(nif*nkx*nky)/(tif*tkx*tky)+(nof*nox*noy)/(tof*tox*toy)(2)根据片上可并发mac计算单元配置确定计算映射方案确定存储映射方案框架后,下面根据芯片片上mac计算资源,确定计算映射方案。如图4所示,假设可并发的mac计算单元数为pm=pif*pix*piy*pkx*pky*pof,其中一次mac计算激活可以覆盖pif*pix*piy维度的输入特征系数,覆盖pif*pof*pkx*pky维度的权重系数,以及覆盖pof*pox*poy维度的输出特征系数。19.假设芯片内部可以获得的mac计算单元数为ptot,那么这些参数(pif,pix,piy,pof,pkx,pky,pox,poy)选择需要考虑下面几个因素:pm≤ptot片上缓存和寄存器阵列之间数据交换的频度fintra尽可能小;mac计算单元数据等待梳理最小化;外部软件流水效率最大化。20.fintra=(tif*tix*tiy)/(pif*pix*piy)+(tif*tkx*tky)/(pif*pkx*pky)+(tof*tox*toy)/(pof*pox*poy)(3)根据网络模型、存储和计算映射方案,确定流水调度优化方案如上所述,计算映射相关参数(pif,pix,piy,pof,pkx,pky,pox,poy),存储映射相关参数(tif,tix,tiy,tof,tkx,tky,tox,toy)对于神经网络模型在目标平台上的计算效率有着重要影响;另外,batch批处理强度batch,循环展开组合策略(batch,if,of,ix/iy,kx/ky,ox/oy),卷积窗口在特征图内滑动策略scan_mode,片上缓存是否采用乒乓策略pingpong,以及循环展开和向量化策略vec/unroll这些控制参量对于外部软件流水调度效率有着重要影响。上述这些参数组合构成了网络结果映射实现的参数空间,如图5所示。21.根据目标计算平台特点(ptot和ttot等),以及待映射神经网络的网络结构,设计合适的参数组合,如图5所示,实际上是要在图5组合路径里选择最优一条路径,类似于维特比优化算法。22.可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本技术的权利要求范围内的实施例都属于本发明所保护的范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1