本发明涉及计算机,尤其涉及一种数据处理方法、装置、电子设备及存储介质。
背景技术:
1、随着深度学习在各个行业的广泛应用,常规的通用处理器已无法满足性能需求,现场可编程门阵列(field-programmable gate array,fpga)可以加速处理性能,但是成本高昂,限制了其进一步使用。伴随神经网络在垂直领域的深入应用,应用特定集成电路(application specific integrated circuit,asic)因其高性能及大规模量产时的较低成本,出现了专门用于加速神经网络处理的处理器(neural processing unit,npu)。
2、当npu解析到指令并且把指令下发到执行模块后,执行模块需要在1周期(约1.6ns)内启动非常多的数据运算单元,且要求各数据运算单元在极短时间内即从空闲态转至忙碌态(idle态->busy态),这种瞬时的大规模逻辑功耗变化,会引入功耗瞬态冲击(power instantaneous impact,pi)风险,最终使得npu运行错误。
3、为了避免pi风险,一般可以通过降频或者升压解决。然而,降频会降低npu性能,而升压则会带来更大的功耗,故二者均非最优解决方案。
技术实现思路
1、本发明提供一种数据处理方法、装置、电子设备及存储介质,用以解决npu处理器在业务启动阶段因功耗突变,包括大规模逻辑电路在极短时间内同时翻转造成功耗突然变化等引入的pi问题,通过让读取的数据以类平行四边形的数据结构方式串行被读取出来,从而减缓功耗变化,进而解决内部各数据运算单元由idle->busy时的pi问题。
2、本发明提供一种数据处理方法,包括:
3、待处理数据存储于存储器阵列;
4、以流水线方式逐周期读取所述存储器阵列中的数据;其中,从所述存储器阵列中读取出的所有数据在时序上呈现类平行四边形的数据结构。
5、根据本发明提供的数据处理方法,在所述以流水线方式逐周期读取所述存储器阵列中的数据之前,还包括:
6、将所述数据划分为多行数据;
7、在每个周期内按行将所述多行数据并行写入至所述存储器阵列中的每个存储单元,每一行数据位于每个所述存储单元的同一存储地址;其中,于后一周期写入至所述存储单元时的存储地址,是前一周期写入至所述存储单元时的存储地址的下一存储地址。
8、根据本发明提供的数据处理方法,所述以流水线方式逐周期读取所述存储器阵列中的数据,包括:
9、在任一周期从所述存储器阵列中读取数据,直至完成对所述存储器阵列中所有数据的读取;
10、其中,在所述任一周期内读取出的数据的行数达到预设数量之前,所述任一周期内读取出的数据相对上一周期内读取出的数据增加至少一行数据;在所述任一周期内读取出的数据的行数达到所述预设数量之后,读取出的数据相对上一周期内读取出的数据减少至少一行数据。
11、根据本发明提供的数据处理方法,所述存储器阵列中的存储单元的数量不小于所述数据所划分的行数。
12、根据本发明提供的数据处理方法,所述存储器阵列为fifo阵列。
13、根据本发明提供的数据处理方法,在所述任一周期内读取出的数据的行数达到预设数量之前,包括:在任一目标周期内,根据数据写入至所述存储器阵列中的每个存储单元的先后顺序,按照先进先出的方式,不重复地从所述存储器阵列中依次读取在所述目标周期之前的每个周期内并行写入的数据中的一行。
14、根据本发明提供的数据处理方法,在所述任一周期内读取出的数据的行数达到所述预设数量之后,包括:在任一目标周期内,根据数据写入至所述存储器阵列中的每个存储单元的先后顺序,按照先进先出的方式,不重复地从所述存储器阵列中依次读取在所述目标周期之前的每个周期内并行写入的数据中的一行;
15、若所述目标周期之前的任一周期内并行写入至所述存储器阵列中数据均已被读取,则在所述目标周期内读取的所述任一周期的数据为空。
16、本发明还提供一种数据处理装置,包括:
17、数据读取单元,用于以流水线方式逐周期读取所述存储器阵列中的数据;其中,从所述存储器阵列中读取出的所有数据在时序上呈现类平行四边形的数据结构。
18、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述数据处理方法。
19、本发明还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述数据处理方法。
20、本发明提供的数据处理方法、装置、电子设备及存储介质,通过改变数据的读取方式,使得进入后续数据运算单元的数据结构发生变化,即通过将原本矩形块的数据按照类平行四边形的数据结构串行输入至后续数据运算单元,从而逐步启动并激发数据运算单元的数据处理能力,减缓了数据运算单元启动时的功耗变化,进而有效地避免了功耗瞬态冲击问题。
1.一种数据处理方法,其特征在于,包括:
2.根据权利要求1所述的数据处理方法,其特征在于,在所述以流水线方式逐周期读取所述存储器阵列中的数据之前,还包括:
3.根据权利要求1所述的数据处理方法,其特征在于,所述以流水线方式逐周期读取所述存储器阵列中的数据,包括:
4.根据权利要求2所述的数据处理方法,其特征在于,所述存储器阵列中的存储单元的数量不小于所述数据所划分的行数。
5.根据权利要求3-4任一项所述的数据处理方法,其特征在于,所述存储器阵列为fifo阵列。
6.根据权利要求5所述的数据处理方法,其特征在于,在所述任一周期内读取出的数据的行数达到预设数量之前,包括:在任一目标周期内,根据数据写入至所述存储器阵列中的每个存储单元的先后顺序,按照先进先出的方式,不重复地从所述存储器阵列中依次读取在所述目标周期之前的每个周期内并行写入的数据中的一行。
7.根据权利要求5所述的数据处理方法,其特征在于,在所述任一周期内读取出的数据的行数达到所述预设数量之后,包括:在任一目标周期内,根据数据写入至所述存储器阵列中的每个存储单元的先后顺序,按照先进先出的方式,不重复地从所述存储器阵列中依次读取在所述目标周期之前的每个周期内并行写入的数据中的一行;
8.一种数据处理装置,其特征在于,所述数据处理装置位于神经网络处理器内,包括:
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述数据处理方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述数据处理方法。