神经网络数据处理装置、方法和电子设备制造方法及图纸

技术编号:24094044 阅读:15 留言:0更新日期:2020-05-09 09:25
公开了一种神经网络数据处理装置、方法和电子设备,涉及人工智能芯片技术领域。具体实现方案为:指令解析模块,用于将DMA任务拆分成多个子任务,以及获取每个子任务对应的数据子分块的配置信息,其中,子任务与神经网络搬运数据中的数据子分块一一对应;数据读取模块,用于依据配置信息,读取第一数据子分块,其中,第一数据子分块为多个子任务对应的数据子分块中的数据子分块;数据处理模块,用于对第一数据子分块进行压缩;数据写出模块,用于输出第一数据子分块经过压缩的压缩数据。这样本申请通过对数据子分块压缩,提升了神经网络处理器的等效带宽,所以克服了神经网络的性能比较差的技术问题,进而达到提高神经网络的性能的技术效果。

Neural network data processing device, method and electronic equipment

【技术实现步骤摘要】
神经网络数据处理装置、方法和电子设备
本申请涉及计算机技术中的人工智能芯片
,尤其涉及一种神经网络数据处理装置、方法和电子设备。
技术介绍
目前神经网络被广泛应用,例如:深度卷积神经网络(ConvolutionalDeepNueralNetworks,CDNN)被广泛应用于互联网应用,如语音识别,图像识别,自然语言处理等应用。然而,神经网络计算往往在神经网络处理器(NeuralProcessingUnit,NPU)内完成,而在执行神经网络计算后,需要将计算结果搬回片外存储器;由于片外存储器的带宽有限,在许多实际业务场景中,片内外数据搬运时间会超过实际计算时间,从而导致神经网络的性能比较差。
技术实现思路
本申请提供一种神经网络数据处理装置、方法和电子设备,以解决神经网络的性能比较差的问题。第一方面,本申请提供一种神经网络数据处理装置,包括:指令解析模块,用于将直接存储访问(Direct-MemoryAccess,DMA)任务拆分成多个子任务,以及获取每个子任务对应的数据子分块的配置信息,其中,子任务与神经网络搬运数据中的数据子分块一一对应;数据读取模块,用于依据所述配置信息,读取第一数据子分块,其中,所述第一数据子分块为所述多个子任务对应的数据子分块中的数据子分块;数据处理模块,用于对所述第一数据子分块进行压缩;数据写出模块,用于输出所述第一数据子分块经过所述压缩的压缩数据。由于按照数据子分块进行压缩,从而可以提高数据搬运的效率,进而提高神经网络的性能。可选的,所述数据处理模块还用于对所述第一数据子分块进行数据处理。由于对第一数据子分块进行数据处理,从而可以提高上述装置的数据处理性能。可选的,所述数据处理模块包括:原始数据缓存,用于缓存所述第一数据子分块;压缩算法模块,用于对所述第一数据子分块进行压缩,得到所述第一数据子分块经过所述压缩的压缩数据;长度字段缓存,用于缓存所述压缩数据的长度;压缩控制状态机,用于依据所述第一数据子分块的长度和所述压缩数据的长度判断所述第一数据子分块存在压缩收益,则产生第一选通信号,若依据所述第一数据子分块的长度和所述压缩数据的长度判断所述第一数据子分块不存在压缩收益,则产生第二选通信号,若所述长度缓存没有命中,则产生第三选通信号;多路选取器,用于依据所述第一选通信号从所述压缩算法模块读取所述压缩信号,或者,依据所述第二选通信号从所述原始数据缓存读取所述第一数据子分块,或者依据所述第三选通信号从所述长度字段缓存读取所述长度。该实施方式中,可以通过上述压缩控制状态机控制多路选取器输出合适的数据,这样可以实现数据长度可控,以避免预留过大的存储空间,以达到节约存储空间的效果。可选的,所述配置信息包括所述第一数据子分块的地址信息、长度和子分块类型,所述数据读取模块包括:数据拼接模块,用于依据所述第一数据子分块的配置信息,读取所述第一数据子分块,并将所述读取到的第一数据子分块进行移位和拼接处理,以得到所述第一数据子分块的连续完整数据流。由于将所述读取到的第一数据子分块进行移位和拼接处理,以得到所述第一数据子分块的连续完整数据流,这样可以支持不连续的数据进行压缩,提高压缩处理的数据子分块的大小,进而提高压缩处理效率。可选的,所述数据读取模块还包括:数据输出命令缓存,用于读取所述配置信息,并向所述数据拼接模块发出读取命令请求;数据缓存,用于缓存所述数据拼接模块输出的所述连续完整数据流;数据输出状态机,用于将所述数据缓存中的所述连续完整数据流打包,并将打包后的数据输出给所述数据处理模块。通过上述数据输出状态机可以准确有序地输出数据。可选的,所述数据读取模块还包括:读命令缓存,用于读取所述第一数据子分块的地址信息;数据读取状态机,用于从所述读取命令缓存获取指令,并根据所述地址信息生成读取内部缓存所需的接口信号。通过上述数据读取状态机可以准确有序地读取数据。可选的,所述数据写出模块包括:数据输出缓存,用于缓存所述第一数据子分块经过所述压缩的压缩数据;配置信息缓存,用于缓存所述第一数据子分块的配置信息;输出地址缓存,用于缓存所述第一数据子分块的目的地址;接口时序生成模块,用于根据所述配置信息和所述目的地址,生成所述第一数据子分块的数据掩码,以及产生所述第一数据子分块对应的接口时序。通过上述第一数据子分块的数据掩码和接口时序,可以使得在输出上述第一数据子分块可以准确有序地输出到指定的位置。可选的,所述装置还包括:地址产生模块,用于依据所述第一数据子分块的目的地址和所述压缩数据的长度,生成所述第一数据子分块的总线协议支持的地址通道信号,并输出所述地址通道信号。通过上述地址通道信号可以支持压缩数据的随机访问,以进一步提高神经网络的性能。第二方面,本申请提供一种电子设备,其特征在于,包括本申请提供的神经网络数据处理装置。第三方面,本申请提供一种神经网络数据处理方法,包括:将DMA任务拆分成多个子任务,以及获取每个子任务对应的数据子分块的配置信息,其中,子任务与神经网络搬运数据中的数据子分块一一对应;依据所述配置信息,读取第一数据子分块,其中,所述第一数据子分块为所述多个子任务对应的数据子分块中的数据子分块;对所述第一数据子分块进行压缩,并输出所述第一数据子分块经过所述压缩的压缩数据。由于按照数据子分块进行压缩,从而可以提高数据搬运的效率,进而提高神经网络的性能。可选的,所述对所述第一数据子分块进行压缩,并输出所述第一数据子分块经过所述压缩的压缩数据,包括:缓存所述第一数据子分块和所述第一数据子分块数据的长度;对所述第一数据子分块进行压缩,得到所述第一数据子分块经过所述压缩的压缩数据,并记录所述压缩数据的长度;依据所述第一数据子分块的长度和所述压缩数据的长度,判断所述第一数据子分块是否存在压缩收益,若存在压缩收益,则输出所述压缩数据,是不存在压缩收益,则输出所述第一数据子分块数据。由于在所述压缩数据的长度小于所述第一数据子分块数据的长度的情况下,才输出所述压缩数据,这样可以实现数据长度可控,以避免预留过大的存储空间,以达到节约存储空间的效果。可选的,所述配置信息包括所述第一数据子分块的地址信息,所述依据所述配置信息,读取第一数据子分块,包括:依据所述第一数据子分块的地址信息,读取所述第一数据子分块,并将所述读取到的第一数据子分块进行移位和拼接处理,以得到所述第一数据子分块的连续完整数据流。由于将所述读取到的第一数据子分块进行移位和拼接处理,以得到所述第一数据子分块的连续完整数据流,这样可以支持不连续的数据进行压缩,提高压缩处理的数据子分块的大小,进而提高压缩处理效率。可选的,所述方法还包括:缓存所述压缩数据的长度;...

【技术保护点】
1.一种神经网络数据处理装置,其特征在于,包括:/n指令解析模块,用于将直接存储访问DMA任务拆分成多个子任务,以及获取每个子任务对应的数据子分块的配置信息,其中,子任务与神经网络搬运数据中的数据子分块一一对应;/n数据读取模块,用于依据所述配置信息,读取第一数据子分块,其中,所述第一数据子分块为所述多个子任务对应的数据子分块中的数据子分块;/n数据处理模块,用于对所述第一数据子分块进行压缩;/n数据写出模块,用于输出所述第一数据子分块经过所述压缩的压缩数据。/n

【技术特征摘要】
1.一种神经网络数据处理装置,其特征在于,包括:
指令解析模块,用于将直接存储访问DMA任务拆分成多个子任务,以及获取每个子任务对应的数据子分块的配置信息,其中,子任务与神经网络搬运数据中的数据子分块一一对应;
数据读取模块,用于依据所述配置信息,读取第一数据子分块,其中,所述第一数据子分块为所述多个子任务对应的数据子分块中的数据子分块;
数据处理模块,用于对所述第一数据子分块进行压缩;
数据写出模块,用于输出所述第一数据子分块经过所述压缩的压缩数据。


2.如权利要求1所述的装置,所述数据处理模块还用于对所述第一数据子分块进行数据处理。


3.如权利要求1所述的装置,其特征在于,所述数据处理模块包括:
原始数据缓存,用于缓存所述第一数据子分块;
压缩算法模块,用于对所述第一数据子分块进行压缩,得到所述第一数据子分块经过所述压缩的压缩数据;
长度字段缓存,用于缓存所述压缩数据的长度;
压缩控制状态机,用于依据所述第一数据子分块的长度和所述压缩数据的长度判断所述第一数据子分块存在压缩收益,则产生第一选通信号,若依据所述第一数据子分块的长度和所述压缩数据的长度判断所述第一数据子分块不存在压缩收益,则产生第二选通信号,若所述长度缓存没有命中,则产生第三选通信号;
多路选取器,用于依据所述第一选通信号从所述压缩算法模块读取所述压缩信号,或者,依据所述第二选通信号从所述原始数据缓存读取所述第一数据子分块,或者依据所述第三选通信号从所述长度字段缓存读取所述长度。


4.如权利要求1所述的装置,其特征在于,所述配置信息包括所述第一数据子分块的地址信息、长度和子分块类型,所述数据读取模块包括:
数据拼接模块,用于依据所述第一数据子分块的配置信息,读取所述第一数据子分块,并将所述读取到的第一数据子分块进行移位和拼接处理,以得到所述第一数据子分块的连续完整数据流。


5.如权利要求4所述的装置,其特征在于,所述数据读取模块还包括:
数据输出命令缓存,用于读取所述配置信息,并向所述数据拼接模块发出读取命令请求;
数据缓存,用于缓存所述数据拼接模块输出的所述连续完整数据流;
数据输出状态机,用于将所述数据缓存中的所述连续完整数据流打包,并将打包后的数据输出给所述数据处理模块。


6.如权利要求5所述的装置,其特征在于,所述数据读取模块还包括:
读命令缓存,用于读取所述第一数据子分块的地址信息;
数据读取状态机,用于从所述读取命令缓存获取指令,并根据所述地址信息生成读取内部缓存所需的...

【专利技术属性】
技术研发人员:李浩洋阮元李宇鹏
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京;11

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

1