一种卷积运算优化方法及装置与流程
本发明涉及人工智能处理器,尤其涉及一种卷积运算优化方法及装置。
背景技术:
1、随着人工智能和深度学习技术的发展,神经网络处理器(neural processingunit,npu)被广泛应用于卷积神经网络的推理和训练场景。卷积运算作为神经网络中的核心计算操作,具有计算量大、数据访问频繁以及数据复用度高等特点。为了降低片上存储资源占用并减少与外部存储器之间的数据交互,通常需要对特征图(feature map)数据进行压缩存储。因此,如何在保证卷积计算正确性的前提下提高数据读取效率和存储器带宽利用率,成为npu设计中的重要技术问题。
2、现有技术中,卷积计算通常根据卷积核在输入特征图上的滑动位置,生成对应的访存地址,并从存储器中读取参与卷积计算的数据。在卷积运算支持步长(stride)和插值(insert)等参数的情况下,数据读取模块通常根据卷积计算需求独立生成访存地址,并按照卷积计算顺序从存储器中获取所需数据,以供后续乘加运算单元(mac)执行卷积计算。
3、然而,当特征图采用压缩存储方式且步长(stride)参数大于1时,由于卷积采样点在存储空间中的分布与卷积计算顺序并不一致,现有数据读取方式通常按照卷积计算顺序独立生成访存地址并发起访存请求,难以兼顾数据在存储器中的实际存储位置。特别是在跨行读取场景下,多个采样点对应的数据可能位于同一存储地址内,但仍被重复读取,从而导致访存次数增加、存储器带宽利用率降低以及数据访问效率下降。
4、本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
技术实现思路
1、本发明实施例提供一种卷积运算优化方法,用以实现卷积计算过程中访存地址的归并访问和有效数据的高效提取,减少对同一存储地址的重复访存,提高存储器带宽利用率和卷积运算的数据访问效率。
2、该卷积运算优化方法包括:
3、基于获取到的输出特征图中待处理像素点的第一坐标及卷积运算指令生成多个访存地址;
4、根据各所述访存地址对应所述输入特征图的第二坐标,生成对应的控制信号;
5、基于各所述控制信号对各所述访存地址执行归并处理,生成访存请求;
6、对存储器基于所述访存请求执行访存操作后返回的数据进行数据提取及数据重排处理,得到目标数据。
7、在一些实施例中,所述基于获取到的输出特征图中待处理像素点的第一坐标及卷积运算指令生成多个访存地址,包括:
8、根据所述卷积运算指令中的地址信息,确定所述输入特征图的基地址;
9、基于所述卷积运算指令及所述第一坐标,确定所述输入特征图对应的多个第二坐标;
10、根据所述卷积运算指令及各所述第二坐标生成多个偏移地址;
11、基于各所述偏移地址及所述基地址生成多个访存地址。
12、在一些实施例中,所述第一坐标包括第一横坐标及第一纵坐标,所述第二坐标包括第二横坐标及第二纵坐标;所述基于所述卷积运算指令及所述第一坐标,确定所述输入特征图对应的多个第二坐标,包括:
13、根据所述卷积运算指令中卷积核在宽度方向上的偏移量及滑动步长,将所述第一横坐标映射为所述输入特征图中的多个所述第二横坐标;
14、根据所述卷积运算指令中所述卷积核在高度方向上的偏移量及滑动步长,将所述第一纵坐标映射为所述输入特征图中的多个所述第二纵坐标。
15、在一些实施例中,所述根据所述卷积运算指令及各所述第二坐标生成多个偏移地址,包括:
16、基于所述卷积运算指令中所述输入特征图的宽度,将各所述第二横坐标及各所述第二纵坐标压缩为多个像素坐标;
17、根据各所述像素坐标生成多个偏移地址。
18、在一些实施例中,所述控制信号包括:填充有效标志位及插零有效标志位;所述基于各所述控制信号对各所述访存地址执行归并处理,生成访存请求,包括:
19、基于各所述访存地址及其对应的控制信号构建地址表;
20、判断所述地址表中相邻表项对应访存地址的高位地址是否相同;
21、若相邻表项对应访存地址的高位地址相同且所述填充有效标志位或所述插零有效标志位为无效,将各所述表项对应的访存地址合并为一次访存请求,并保留各所述访存地址中的有效数据位置索引。
22、在一些实施例中,所述对存储器基于所述访存请求执行访存操作后返回的数据进行数据提取及数据重排处理,得到目标数据,包括:
23、根据各所述有效数据位置索引生成对应存储地址的有效数据的位置索引集合;
24、根据所述位置索引集合从所述存储器返回的数据中提取有效数据;
25、若所述有效数据的位宽小于预设数据位宽,通过移位寄存器对多次访存操作获得的有效数据进行拼接,得到所述预设数据位宽的目标数据。
26、本发明实施例还提供一种卷积运算优化装置,用以实现卷积计算过程中访存地址的归并访问和有效数据的高效提取,减少对同一存储地址的重复访存,提高存储器带宽利用率和卷积运算的数据访问效率。
27、该卷积运算优化装置包括:
28、地址生成模块,用于基于获取到的输出特征图中待处理像素点的第一坐标及卷积运算指令生成多个访存地址;
29、控制信号生成模块,用于根据各所述访存地址对应所述输入特征图的第二坐标,生成对应的控制信号;
30、地址归并模块,用于基于各所述控制信号对各所述访存地址执行归并处理,生成访存请求;
31、数据处理模块,用于对存储器基于所述访存请求执行访存操作后返回的数据进行数据提取及数据重排处理,得到目标数据。
32、本发明实施例还提供一种神经网络处理器,包括存储器、处理器及存储在存储器上并可在处理器上运行的卷积运算指令,所述处理器执行所述卷积运算指令时实现上述卷积运算优化方法。
33、本发明实施例还提供一种可读存储介质,所述可读存储介质存储有卷积运算指令,所述卷积运算指令被处理器执行时实现上述卷积运算优化方法。
34、本发明实施例还提供一种卷积运算程序产品,所述卷积运算程序产品包括卷积运算指令,所述卷积运算指令被处理器执行时实现上述卷积运算优化方法。
35、本发明实施例提供的卷积运算优化方法及装置,通过基于输出特征图中待处理像素点的坐标生成多个访存地址,并结合输入特征图中采样点对应的控制信号对多个访存地址执行地址归并处理,实现了对同一存储地址对应访存请求的合并访问,减少了重复访存次数。在此基础上,通过保留有效数据位置索引并对存储器返回的数据执行数据提取及数据重排处理,能够从返回数据中准确提取卷积计算所需的有效数据,并对离散分布的有效数据进行重新组织。该方法提高了单次访存返回数据的有效利用率,降低了无效数据传输带来的带宽开销,减少了存储器访问次数,从而提高了存储器带宽利用率和卷积运算过程中的数据访问效率。
1.一种卷积运算优化方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述基于获取到的输出特征图中待处理像素点的第一坐标及卷积运算指令生成多个访存地址,包括:
3.根据权利要求2所述的方法,其特征在于,所述第一坐标包括第一横坐标及第一纵坐标,所述第二坐标包括第二横坐标及第二纵坐标;所述基于所述卷积运算指令及所述第一坐标,确定所述输入特征图对应的多个第二坐标,包括:
4.根据权利要求3所述的方法,其特征在于,所述根据所述卷积运算指令及各所述第二坐标生成多个偏移地址,包括:
5.根据权利要求1所述的方法,其特征在于,所述控制信号包括:填充有效标志位及插零有效标志位;所述基于各所述控制信号对各所述访存地址执行归并处理,生成访存请求,包括:
6.根据权利要求5所述的方法,其特征在于,所述对存储器基于所述访存请求执行访存操作后返回的数据进行数据提取及数据重排处理,得到目标数据,包括:
7.一种卷积运算优化装置,其特征在于,包括:
8.一种神经网络处理器,包括存储器、处理器及存储在存储器上并可在处理器上运行的卷积运算指令,其特征在于,所述处理器执行所述卷积运算指令时实现权利要求1至6任一所述方法。
9.一种可读存储介质,其特征在于,所述可读存储介质存储有卷积运算指令,所述卷积运算指令被处理器执行时实现权利要求1至6任一所述方法。
10.一种卷积运算程序产品,其特征在于,所述卷积运算程序产品包括卷积运算指令,所述卷积运算指令被处理器执行时实现权利要求1至6任一所述方法。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com