数据处理方法、装置、计算机设备及计算机可读存储介质与流程



1.本技术涉及数据处理技术领域,特别是涉及一种数据处理方法、装置、计算机设备及计算机可读存储介质。


背景技术:



2.随着数据处理技术的发展,越来越多的技术人员选择采用基于功耗较低、尺寸较小的fpga平台构建卷积神经网络加速设备,以实现卷积神经网络计算在边缘端的运行。
3.然而,由于fpga平台内部的硬件资源,尤其是dsp资源和bram资源数量较为有限,这极大地限制了fpga平台的计算能力的提升。


技术实现要素:



4.本技术提供一种数据处理方法、装置、计算机设备及计算机可读存储介质,能够有效提升基于fpga平台构建的神经网络加速器的计算能力。
5.第一方面,本技术提供了一种数据处理方法,包括:
6.对待处理特征图数据进行填充处理,得到第一特征图数据;
7.依序对第一特征图数据的各行数据进行分块整理,得到第二特征图数据;
8.对第二特征图数据进行卷积运算以及量化精度调整,得到第三特征图数据;
9.根据目标存储位置的存储结构,对第三特征图数据进行相应结构调整,得到特征图数据处理结果。
10.第二方面,本技术还提供了一种数据处理装置,包括:
11.填充模块,用于对待处理特征图数据进行填充处理,得到第一特征图数据;
12.分块模块,用于依序对第一特征图数据的各行数据进行分块整理,得到第二特征图数据;
13.处理模块,用于对第二特征图数据进行卷积运算以及量化精度调整,得到第三特征图数据;
14.调整模块,用于根据目标存储位置的存储结构,对第三特征图数据进行相应结构调整,得到特征图数据处理结果。
15.第三方面,本技术还提供了一种计算机设备,该计算机设备包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
16.对待处理特征图数据进行填充处理,得到第一特征图数据;依序对第一特征图数据的各行数据进行分块整理,得到第二特征图数据;对第二特征图数据进行卷积运算以及量化精度调整,得到第三特征图数据;根据目标存储位置的存储结构,对第三特征图数据进行相应结构调整,得到特征图数据处理结果。
17.第四方面,本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
18.对待处理特征图数据进行填充处理,得到第一特征图数据;依序对第一特征图数
据的各行数据进行分块整理,得到第二特征图数据;对第二特征图数据进行卷积运算以及量化精度调整,得到第三特征图数据;根据目标存储位置的存储结构,对第三特征图数据进行相应结构调整,得到特征图数据处理结果。
19.第五方面,本技术还提供了一种计算机程序产品,计算机程序产品包括计算机程序,计算机程序被处理器执行时实现以下步骤:
20.对待处理特征图数据进行填充处理,得到第一特征图数据;依序对第一特征图数据的各行数据进行分块整理,得到第二特征图数据;对第二特征图数据进行卷积运算以及量化精度调整,得到第三特征图数据;根据目标存储位置的存储结构,对第三特征图数据进行相应结构调整,得到特征图数据处理结果。
21.上述数据处理方法、装置、计算机设备及计算机可读存储介质,首先,对待处理特征图数据进行填充处理,得到第一特征图数据。然后,依序对第一特征图数据的各行数据进行分块整理,得到第二特征图数据。接着,对第二特征图数据进行卷积运算以及量化精度调整,得到第三特征图数据。最后,根据目标存储位置的存储结构,对第三特征图数据进行相应结构调整,得到特征图数据处理结果。该方案通过采用多算子多步骤融合法,对基于fpga平台构建的神经网络加速器在数据搬运过程中的数据处理方法进行了优化调整,不仅提高了基于fpga平台构建的神经网络加速器的数据处理效率,还有效提升了基于fpga平台构建的神经网络加速器的计算能力。
附图说明
22.图1为本技术实施例提供的一种数据处理方法的流程示意图;
23.图2为本技术实施例提供的一种对待处理特征图数据进行填充处理,得到第一特征图数据的具体方式的流程示意图;
24.图3为本技术实施例提供的一种依序对第一特征图数据的各行数据进行分块整理,得到第二特征图数据的具体方式的流程示意图;
25.图4为本技术实施例提供的一种根据目标存储位置的存储结构,对第三特征图数据进行相应结构调整,得到特征图数据处理结果的具体方式的流程示意图;
26.图5为本技术实施例提供的一种对第三特征图数据进行数据分割的具体方式的流程示意图;
27.图6为本技术实施例提供的一种对第三特征图数据进行最大池化处理的具体方式的流程示意图;
28.图7为本技术实施例提供的一种对第三特征图数据进行数据扩张的具体方式的流程示意图;
29.图8为本技术实施例提供的一种数据处理装置的结构框图;
30.图9为本技术实施例提供的一种计算机设备的内部结构图;
31.图10为本技术实施例提供的一种计算机可读存储介质的结构示意图。
具体实施方式
32.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不
用于限定本技术。
33.本技术实施例提供的数据处理方法,可以应用于服务器中。其中,数据存储系统可以存储服务器需要处理的数据;数据存储系统可以集成在服务器上,也可以放在云上或其他网络服务器上;服务器可以用独立的服务器或者是多个服务器组成的服务器集来实现。
34.在一些实施例中,如图1所示,提供了一种数据处理方法,以该方法应用于服务器为例进行说明,包括以下步骤:
35.步骤s101,对待处理特征图数据进行填充处理,得到第一特征图数据。
36.本步骤中,待处理特征图数据,可以是从特定数据通道中获取的;第一特征图数据,是指对待处理特征图数据进行添零处理之后,得到的特征图数据;通过对待处理特征图数据进行添零处理,可以有效提高神经网络运算中的边缘数值的处理效率;对于本步骤的软件实现方式,可以是通过使用循环,在相应索引位置插入零值的方式;由于硬件的数据处理是以axi stream流的形式进行的,难以展开循环,因此,本步骤的硬件实现方式,可以是采用状态机针对待处理特征图数据进行添零处理。
37.步骤s102,依序对第一特征图数据的各行数据进行分块整理,得到第二特征图数据。
38.本步骤中,依序对第一特征图数据的各行数据进行分块整理,是指依据第一特征图数据对应的行顺序,对第一特征图数据的各行数据进行分块整理;第二特征图数据,是指依据第一特征图数据对应的行顺序,对第一特征图数据的各行数据进行分块整理取得的。
39.步骤s103,对第二特征图数据进行卷积运算以及量化精度调整,得到第三特征图数据。
40.本步骤中,第三特征图数据,是指对第二特征图数据进行卷积运算以及量化精度调整取得的;卷积运算,可以是完整型卷积运算;对第二特征图数据进行量化精度调整的具体原因,可以是为了保持第二特征图数据在经过卷积运算之后的数据精度。
41.步骤s104,根据目标存储位置的存储结构,对第三特征图数据进行相应结构调整,得到特征图数据处理结果。
42.本步骤中,根据目标存储位置的存储结构,对第三特征图数据进行相应结构调整,是指根据目标存储位置的存储结构,确定对第三特征图数据进行结构调整的具体方式,进而对第三特征图数据进行相应的结构调整。
43.上述数据处理方法,首先,对待处理特征图数据进行填充处理,得到第一特征图数据。然后,依序对第一特征图数据的各行数据进行分块整理,得到第二特征图数据。接着,对第二特征图数据进行卷积运算以及量化精度调整,得到第三特征图数据。最后,根据目标存储位置的存储结构,对第三特征图数据进行相应结构调整,得到特征图数据处理结果。该方案通过采用多算子多步骤融合法,对基于fpga平台构建的神经网络加速器在数据搬运过程中的数据处理方法进行了优化调整,不仅提高了基于fpga平台构建的神经网络加速器的数据处理效率,还有效提升了基于fpga平台构建的神经网络加速器的计算能力。
44.对于对待处理特征图数据进行填充处理,得到第一特征图数据的具体方式,在一些实施例中,如图2所示,上述步骤s101具体包括以下步骤:
45.步骤s201,根据待处理特征图数据的通道来源、行列计数值,确定待处理特征图数
据对应的目标添零个数。
46.本步骤中,根据待处理特征图数据的通道来源、行列计数值,确定待处理特征图数据对应的目标添零个数,是指获取同一通道来源的待处理特征图数据对应的行列计数值,并根据该行列计数值,确定该待处理特征图数据对应的目标添零个数。
47.步骤s202,在待处理特征图数据的任一行数据的起始位置前一位添加第一零值数据,得到第一中间特征图数据。
48.本步骤中,第一零值数据,可以是一个长度为1的零值数据;在待处理特征图数据的任一行数据的起始位置前一位添加第一零值数据的具体方式,可以是在待处理特征图数据的任一行数据的起始位置前一位添加一个长度为1的零值数据;第一中间特征图数据,是指在待处理特征图数据的任一行数据的起始位置前一位添加第一零值数据得到的。
49.步骤s203,分别在第一中间特征图数据的第一列数据的起始位置前一位和末尾位置后一位添加第一零值数据,得到第二中间特征图数据。
50.本步骤中,第二中间特征图数据,是指分别在第一中间特征图数据的第一列数据的起始位置前一位和末尾位置后一位添加第一零值数据得到的。
51.步骤s204,若确定当前行为第二中间特征图数据的第一行或最后一行,则在当前行的第一零值数据后添加若干个第二零值数据和第三零值数据;若干个第二零值数据与待处理特征图数据的各行数据长度相等。
52.本步骤中,确定当前行为第二中间特征图数据的第一行或最后一行,是指确定当前正在处理的特征图数据行,为第二中间特征图数据的第一行或最后一行;第三零值数据,可以是一个长度为1的零值数据;在当前行的第一零值数据后添加若干个第二零值数据和第三零值数据的具体方式,可以是在当前行的第一零值数据后,添加与待处理特征图数据的各行数据的长度相等的若干个第二零值数据,以及一个长度为1的第三零值数据。
53.步骤s205,若确定当前行不为第二中间特征图数据的第一行或最后一行,则在当前行的数据的末尾位置后一位添加第三零值数据。
54.本步骤中,确定当前行不为第二中间特征图数据的第一行或最后一行,是指确定当前正在处理的特征图数据行,不为第二中间特征图数据的第一行或最后一行;在当前行的末尾位置后一位添加第三零值数据的具体方式,可以是在当前正在处理的特征图数据行的末尾位置后一位,添加一个长度为1的第三零值数据。
55.步骤s206,若确定添加零值数据的个数已达到目标添零个数,则得到第一特征图数据。
56.本步骤中,添加零值数据的个数,是指添加上述第一零值数据、第二零值数据以及第三零值数据的总个数;目标添零个数,是指待处理特征图数据对应的目标添零个数。
57.本实施例通过根据待处理特征图数据的通道来源、行列计数值,确定特征图数据对应的目标添零个数的方式,确保了添零处理结果的数据准确性,提高了基于fpga平台构建的神经网络加速器处理边缘数值的运算效率,进而提升了基于fpga平台构建的神经网络加速器的数据处理效率。
58.对于依序对第一特征图数据的各行数据进行分块整理,得到第二特征图数据的具体方式,在一些实施例中,如图3所示,上述步骤s102具体包括以下步骤:
59.步骤s301,依序将第一特征图的各行数据存入第一缓存位置,直至第一缓存位置
中的数据存量达到第一存储阈值。
60.本步骤中,第一缓存位置,可以由异步传输存储器(fifo,first in first out)构成;第一存储阈值,可以是异步传输存储器(fifo,first in first out)中的数据存量写满一行;第一缓存位置中的数据存量达到第一存储阈值,可以是由异步传输存储器(fifo,first in first out)构成的第一缓存位置中的数据存量写满一行。
61.步骤s302,将数据存量达到第一存储阈值的第一存储模块中的数据,依序存入第二缓存位置中的相应第二缓存单元,直至各第二缓存单元中的数据存量达到第二存储阈值;第二缓存位置包括若干个第二缓存单元。
62.本步骤中,第二缓存单元,可以由易挥发性随机存取存储器(ram,ramdom access memory)构成;第二缓存位置,可以包括若干个由易挥发性随机存取存储器(ram,ramdom access memory)构成的第二缓存单元。
63.步骤s303,将数据存量达到第二存储阈值的第二缓存单元中的数据,依序存入第三缓存位置中的相应第三缓存单元,直至各第三缓存单元中的数据存量达到第三存储阈值,将各第三缓存单元中的数据作为第二特征图数据。
64.本步骤中,第三缓存单元,可以由异步传输存储器(fifo,first in first out)构成;第三缓存位置,可以包括若干个由异步传输存储器(fifo,first in first out)构成的第三缓存单元。
65.结合上述步骤s301至s303,对于对第一特征图数据的各行数据进行分块整理的具体方式,进行整体说明:
66.首先,依序将输入图片的第一特征图数据的各行数据中的每一行数据分别写入第一指定异步传输存储器(fifo,first in first out)中,即依序将各行数据存入第一缓存位置;
67.然后,每当第一指定异步传输存储器(fifo,first in first out)中的数据,写满一行,即第一缓存位置中的数据存量达到第一存储阈值,则将第一指定异步传输存储器(fifo,first in first out)中的数据,依序写入若干个第二指定易挥发性随机存取存储器(ram,ramdom access memory)中;每当写至末位第二易挥发性随机存取存储器(ram,ramdom access memory),则下次需要向首位第二易挥发性随机存取存储器(ram,ramdom access memory)写入第一指定异步传输存储器(fifo,first in first out)中的下一行数据,即将数据存量达到第一存储阈值的第一存储模块中的数据,依序存入第二缓存位置中的相应第二缓存单元;
68.最后,在接收到卷积计算开始的启动信号之后,则打开若干个第三指定异步传输存储器(fifo,first in first out)对应的写使能,从而将上述若干个第二指定易挥发性随机存取存储器(ram,ramdom access memory)中的数据,依序继续存入若干个第三异步传输存储器(fifo,first in first out)中,即将数据存量达到第二存储阈值的第二缓存单元中的数据,依序存入第三缓存位置中的相应第三缓存单元,直至各第三缓存单元中的数据存量均达到第三存储阈值,将各第三缓存单元中的数据作为第二特征图数据,以便对第二特征图数据进行后续的卷积运算以及量化精度调整。
69.本实施例通过对第一特征图数据的各行数据进行分块整理的方式,有效提高了后续进行卷积运算的效率,进而提升了基于fpga平台构建的神经网络加速器的数据处理效
率。
70.对于根据目标存储位置的存储结构,对第三特征图数据进行相应结构调整,得到特征图数据处理结果的具体方式,在一些实施例中,如图4所示,上述步骤s104具体包括以下步骤:
71.步骤s401,根据目标存储位置的存储结构,确定对应的数据调整策略;数据调整策略包括对第三特征图数据进行数据拼接、数据分割、最大池化处理以及数据扩张中的至少一种。
72.本步骤中,根据存储结构,确定对应的数据调整策略,是指根据目标存储位置的存储结构,确定针对第三特征图数据进行结构调整,采用的相应数据调整策略;对第三特征图数据进行结构调整的数据调整策略,可以包括数据拼接、数据分割、最大池化处理以及数据扩张;若第三特征图数据的数据结构已符合目标存储位置的存储结构要求,则无需根据数据调整策略,对其进行相应的结构调整。
73.步骤s402,根据数据调整策略,对第三特征图数据进行相应结构调整,得到特征图数据处理结果。
74.本步骤中,根据数据调整策略,对第三特征图数据进行相应结构调整,是指根据由目标存储位置的存储结构,确定对第三特征图数据进行结构调整的具体方式,进而对第三特征图数据进行相应的结构调整。
75.本实施例通过根据存储结构,确定针对第三特征图数据进行结构调整的相应数据调整策略的方式,保证了基于fpga平台构建的神经网络加速器的数据搬运过程所采用的数据结构调整方案的灵活性,进而扩大了基于fpga平台构建的神经网络加速器的数据处理方式的适用范围。
76.对于对第三特征图数据进行数据拼接的具体方式,在一些实施例中,包括以下步骤:
77.若第三特征图数据对应的数据量未超出片上存储阈值,则根据第三特征图数据的通道来源,对第三特征图数据进行拼接处理。。
78.其中,若第三特征图数据对应的数据量未超出片上存储阈值,则根据第三特征图数据的通道来源,对通道来源相同的第三特征图数据进行拼接处理;若第三特征图数据对应的数据量超出片上存储阈值,则根据第三特征图数据的通道来源,对通道来源相同的第三特征图数据进行多次拼接处理,直至所有通道来源相同的第三特征图数据,均拼接完毕;拼接处理完毕后的数据,可以通过fpga平台的高速接口进行输出,或使用直接存储器访问(dma,direct memory access)将拼接处理完毕后的数据写回至内存(ddr,双倍速率同步动态随机存储器)中;数据拼接处理过程对应的状态可以是由上位机随时进行控制的;数据拼接的具体实现过程,可以表现为,首先,上位机通过指令寄存器写入控制信号、参数等数据,然后由直接存储器访问(dma,direct memory access)从内存(ddr,双倍速率同步动态随机存储器)中,将需要拼接的数据读取至位于片上的易挥发性随机存取存储器(ram,ramdom access memory)中,最后通过状态机,控制每次需要从哪些易挥发性随机存取存储器(ram,ramdom access memory)中读取数据,以执行最终的数据拼接处理流程。
79.在一些示例中,上述指令寄存器,可以通过使用airhdl(一种生成使用axi4总线配置的寄存器代码的工具)进行实现,也可以通过使用其他具有同样功能的工具或编写硬件
代码的方式进行实现,在此针对指令寄存器的具体实现方式,不做限定。
80.本实施例通过对通道来源相同的第三特征图数据进行拼接处理的方式,确保了基于fpga平台构建的神经网络加速器,在数据搬运过程中的数据拼接效率,以及取得的数据拼接结果的数据准确性。
81.对于对第三特征图数据进行数据分割的具体方式,在一些实施例中,如图5所示,包括以下步骤:
82.步骤s501,若第三特征图数据中的任一部分数据不具备存储需求,则删除第三特征图数据中的该部分数据。
83.本步骤中,若第三特征图数据中的任一部分数据不具备存储需求,则删除第三特征图数据中的该部分数据,是指若第三特征图数据中的任一部分数据无需写入片上存储器,则删除片上已加载的该部分数据;本步骤的硬件实现方式,可以是通过通道计数器,控制相应的易挥发性随机存取存储器(ram,ramdom access memory)的写地址或者异步传输存储器(fifo,first in first out)的写使能,以删除片上已加载的不具备存储需求的部分数据。
84.步骤s502,若第三特征图数据中的任一部分数据具备存储需求,则保留第三特征图数据中的该部分数据。
85.本步骤中,若第三特征图数据中的任一部分数据具备存储需求,则保留第三特征图数据中的该部分数据,是指若第三特征图数据中的任一部分数据需要写入片上存储器,则保留片上已加载的该部分数据;本步骤的硬件实现方式,可以是通过通道计数器,控制相应的易挥发性随机存取存储器(ram,ramdom access memory)的写地址或者异步传输存储器(fifo,first in first out)的写使能,以保留片上已加载的不具备存储需求的部分数据。
86.本实施例通过根据第三特征图数据的通道来源,确定是否需要保留第三特征图数据的各部分数据的方式,保证了基于fpga平台构建的神经网络加速器,在数据搬运过程中的数据分割效率,以及得出的数据分割结果的数据准确性。
87.对于对第三特征图数据进行最大池化处理的具体方式,在一些实施例中,如图6所示,包括以下步骤:
88.步骤s601,为第三特征图数据添加索引标志;索引标志的类型包括奇数索引标志和偶数索引标志。
89.本步骤中,第三特征图数据,可以是经卷积运算以及量化精度调整得到的第三特征图数据,也可以是从片外内存(ddr,双倍速率同步动态随机存储器)中,通过直接存储器访问(dma,direct memory access)进行加载得到的;为第三特征图数据添加索引标志的目的,可以是为了区分第三特征图数据中的各部分数据对应的数据分类存储区域;为第三特征图数据添加索引标志的具体位置,可以是具有添加索引标志功能的易挥发性随机存取存储器(ram,ramdom access memory)。
90.步骤s602,将奇数索引标志对应的第三特征图数据,存入第一数据分类区域。
91.本步骤中,将奇数索引标志对应的第三特征图数据,存入第一数据分类区域,是指将带有奇数索引标志的第三特征图数据,存入第一数据分类区域;在实际应用中,第一数据分类区域可以由若干个易挥发性随机存取存储器(ram,ramdom access memory)构成。
92.步骤s603,将偶数索引标志对应的第三特征图数据,存入第二数据分类区域。
93.本步骤中,将偶数索引标志对应的第三特征图数据,存入第二数据分类区域,是指将带有偶数索引标志的第三特征图数据,存入第二数据分类区域;在实际应用中,第二数据分类区域可以由若干个易挥发性随机存取存储器(ram,ramdom access memory)构成。
94.步骤s604,在同一时钟周期内,获取第一数据分类区域和第二数据分类区域中的数据。
95.本步骤中,在同一时钟周期内,获取第一数据分类区域和第二数据分类区域中的数据,是指在同一时钟周期内,读取第一数据分类区域和第二数据分类区域中的数据,以便针对读取到的数据同步进行后续处理。
96.步骤s605,将第一数据分类区域和第二数据分类区域中的数据进行比较,得到表征最大元素的第三特征图数据。
97.本步骤中,将第一数据分类区域和第二数据分类区域中的数据进行比较,得到表征最大元素的第三特征图数据,是指通过比较的方式,从第一数据分类区域和第二数据分类区域中的数据中,出表征最大元素的数据;在实际应用中,将第一数据分类区域和第二数据分类区域中的数据进行比较的具体方式,可以是采用比较器,对从第一数据分类区域和第二数据分类区域中的读取得到的数据进行比较;表征最大元素的第三特征图数据的具体作用,可以是采用表征最大元素的第三特征图数据,替换原有的第三特征图数据,以便缩小第三特征图数据对应的特征图尺寸。
98.本实施例通过为第三特征图数据添加不同的索引标志,将具有不同数据索引标志的数据分别存入相应的数据分类区域,在同一时钟周期内,读取各数据分类区域中的数据以进行比较的方式,确保了基于fpga平台构建的神经网络加速器,在数据搬运过程中的针对数据进行最大池化处理的效率,以及得出的数据最大池化结果的数据准确性。
99.对于对第三特征图数据进行数据扩张的具体方式,在一些实施例中,如图7所示,包括以下步骤:
100.步骤s701,将第三特征图数据进行复制处理,得到第三特征图数据对应的第一副本、第二副本、第三副本以及第四副本。
101.本步骤中,第三特征图数据,可以是经卷积运算以及量化精度调整得到的第三特征图数据,也可以是从片外内存(ddr,双倍速率同步动态随机存储器)中,通过直接存储器访问(dma,direct memory access)进行加载得到的;在实际应用中,将第三特征图数据进行复制处理的具体位置,可以是具有复制特征图数据功能的易挥发性随机存取存储器(ram,ramdom access memory)。
102.步骤s702,将第一副本以及第二副本,存入第一数据存储区域。
103.本步骤中,将第一副本以及第二副本,存入第一数据存储区域,是指将第三特征图数据对应的第一副本以及第二副本,存入第一数据存储区域;在实际应用中,第一数据存储区域可以由若干个易挥发性随机存取存储器(ram,ramdom access memory)构成。
104.步骤s703,将第三副本以及第四副本,存入第二数据存储区域。
105.本步骤中,将第三副本以及第四副本,存入第二数据存储区域,是指将第三特征图数据对应的第三副本以及第四副本,存入第二数据存储区域;在实际应用中,第二数据存储区域可以由若干个易挥发性随机存取存储器(ram,ramdom access memory)构成。
106.步骤s704,将第一数据存储区域中的数据作为特征图数据处理结果的第一行,将第二数据存储区域中的数据作为特征图数据处理结果的第二行。
107.本步骤中,将第一数据存储区域中的数据作为特征图数据处理结果的第一行,将第二数据存储区域的数据作为特征图数据处理结果的第二行的具体作用,可以是将第三特征图数据对应的特征图尺寸,扩大为原尺寸的两倍;在实际应用中,若第一数据存储区域、第二数据存储区域中各包含两个易挥发性随机存取存储器(ram,ramdom access memory),则通过将第一数据存储区域中的数据作为特征图数据处理结果的第一行,并将第二数据存储区域的数据作为特征图数据处理结果的第二行,进而将原有的第三特征图数据对应的特征图尺寸,扩大为特征图原尺寸的两倍。
108.本实施例通过将第三特征图数据的四个副本分别存入相应数据存储区域,并将相应数据存储区域中的数据分别放置于特征图数据处理结果的相应位置的方式,确保了基于fpga平台构建的神经网络加速器,在数据搬运的过程中进行数据扩张的效率,以及得到的数据扩张结果的准确性。
109.在一些实施例中,结合上述步骤s101至s704,在实际应用中,采用上述数据处理方法,可以得出如表1所示的神经网络加速器的计算性能数据:
110.表1
[0111][0112][0113]
其中,“no unrolling”列表示的数据为,采用上述数据处理方法之前的神经网络加速器的计算能力,“unrolling”列表示的数据为,采用上述数据处理方法之后的神经网络加速器的计算能力;performance per pe(cppe)[gbops/s]以及ci x pcie x 8bw[gbops/s]行,为表征神经网络加速器的计算性能的关键性指标,基于表1所示的数据,可知,采用上述数据处理方法之后,神经网络加速器的计算能力得到了较为明显的提高。
[0114]
应该理解的是,虽然如上述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0115]
基于同样的发明构思,本技术实施例还提供了一种数据处理装置。该装置所提供
的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的数据处理装置实施例中的具体限定可以参见上文中对于数据处理方法的限定,在此不再赘述。
[0116]
在一些实施例中,如图8所示,提供了一种数据处理装置,包括:
[0117]
填充模块801,用于对待处理特征图数据进行填充处理,得到第一特征图数据;
[0118]
分块模块802,用于依序对第一特征图数据的各行数据进行分块整理,得到第二特征图数据;
[0119]
处理模块803,用于对第二特征图数据进行卷积运算以及量化精度调整,得到第三特征图数据;
[0120]
调整模块804,用于根据目标存储位置的存储结构,对第三特征图数据进行相应结构调整,得到特征图数据处理结果。
[0121]
在一些实施例中,填充模块801,具体用于:
[0122]
根据待处理特征图数据的通道来源、行列计数值,确定待处理特征图数据对应的目标添零个数;
[0123]
在待处理特征图数据的任一行数据的起始位置前一位添加第一零值数据,得到第一中间特征图数据;
[0124]
分别在第一中间特征图数据的第一列数据的起始位置前一位和末尾位置后一位添加第一零值数据,得到第二中间特征图数据;
[0125]
若确定当前行为第二中间特征图数据的第一行或最后一行,则在当前行的第一零值数据后添加若干个第二零值数据和第三零值数据;若干个第二零值数据与待处理特征图数据的各行数据长度相等;或者,
[0126]
若确定当前行不为第二中间特征图数据的第一行或最后一行,则在当前行的数据的末尾位置后一位添加第三零值数据;
[0127]
若确定添加零值数据的个数已达到目标添零个数,则得到第一特征图数据。
[0128]
在一些实施例中,分块模块802,具体用于:
[0129]
依序将第一特征图数据的各行数据存入第一缓存位置,直至第一缓存位置中的数据存量达到第一存储阈值;
[0130]
将数据存量达到第一存储阈值的第一存储模块中的数据,依序存入第二缓存位置中的相应第二缓存单元,直至各第二缓存单元中的数据存量达到第二存储阈值;第二缓存位置包括若干个第二缓存单元;
[0131]
将数据存量达到第二存储阈值的第二缓存单元中的数据,依序存入第三缓存位置中的相应第三缓存单元,直至各第三缓存单元中的数据存量达到第三存储阈值,将各第三缓存单元中的数据作为第二特征图数据。
[0132]
在一些实施例中,调整模块804,具体用于:
[0133]
根据目标存储位置的存储结构,确定对应的数据调整策略;数据调整策略包括对第三特征图数据进行数据拼接、数据分割、最大池化处理以及数据扩张中的至少一种;
[0134]
根据数据调整策略,对第三特征图数据进行相应结构调整,得到特征图数据处理结果。
[0135]
在一些实施例中,调整模块804,还用于:若第三特征图数据对应的数据量未超出片上存储阈值,则根据第三特征图数据的通道来源,对第三特征图数据进行拼接处理。
[0136]
在一些实施例中,调整模块804,还用于:若第三特征图数据中的任一部分数据不具备存储需求,则删除第三特征图数据中的该部分数据;或者,
[0137]
若第三特征图数据中的任一部分数据具备存储需求,则保留第三特征图数据中的该部分数据。
[0138]
在一些实施例中,调整模块804,还用于:为第三特征图数据添加索引标志;索引标志的类型包括奇数索引标志和偶数索引标志;将奇数索引标志对应的第三特征图数据,存入第一数据分类区域;将偶数索引标志对应的第三特征图数据,存入第二数据分类区域;在同一时钟周期内,获取第一数据分类区域和第二数据分类区域中的数据;将第一数据分类区域和第二数据分类区域中的数据进行比较,得到表征最大元素的第三特征图数据。
[0139]
在一些实施例中,调整模块804,还用于:将第三特征图数据进行复制处理,得到第三特征图数据对应的第一副本、第二副本、第三副本以及第四副本;将第一副本以及第二副本,存入第一数据存储区域;将第三副本以及第四副本,存入第二数据存储区域;将第一数据存储区域中的数据作为特征图数据处理结果的第一行,将第二数据存储区域中的数据作为特征图数据处理结果的第二行。
[0140]
上述数据处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以以硬件形式内嵌于或独立于计算机设备中的处理器,也可以以软件形式存储于计算机设备中的存储器,以便于处理器调用执行以上各个模块对应的操作。
[0141]
在一些实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括处理器、存储器、输入/输出接口(input/output,简称i/o)及通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据处理相关数据等数据。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现上述的数据处理方法的步骤。
[0142]
本领域技术人员可以理解,图9中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0143]
在一些实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0144]
在一些实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,其结构示意图可以如图10所示,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0145]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,
rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0146]
需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
[0147]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0148]
以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。

技术特征:


1.一种数据处理方法,其特征在于,包括:对待处理特征图数据进行填充处理,得到第一特征图数据;依序对所述第一特征图数据的各行数据进行分块整理,得到第二特征图数据;对所述第二特征图数据进行卷积运算以及量化精度调整,得到第三特征图数据;根据目标存储位置的存储结构,对所述第三特征图数据进行相应结构调整,得到特征图数据处理结果。2.根据权利要求1所述的方法,其特征在于,所述对待处理特征图数据进行填充处理,得到第一特征图数据,包括:根据待处理特征图数据的通道来源、行列计数值,确定所述待处理特征图数据对应的目标添零个数;在所述待处理特征图数据的任一行数据的起始位置前一位添加第一零值数据,得到第一中间特征图数据;分别在所述第一中间特征图数据的第一列数据的起始位置前一位和末尾位置后一位添加所述第一零值数据,得到第二中间特征图数据;若确定当前行为所述第二中间特征图数据的第一行或最后一行,则在所述当前行的第一零值数据后添加若干个第二零值数据和第三零值数据;所述若干个第二零值数据与所述待处理特征图数据的各行数据长度相等;或者,若确定当前行不为所述第二中间特征图数据的第一行或最后一行,则在所述当前行的数据的末尾位置后一位添加第三零值数据;若确定添加零值数据的个数已达到所述目标添零个数,则得到第一特征图数据。3.根据权利要求1所述的方法,其特征在于,所述依序对所述第一特征图数据的各行数据进行分块整理,得到第二特征图数据,包括:依序将所述第一特征图数据的各行数据存入第一缓存位置,直至所述第一缓存位置中的数据存量达到第一存储阈值;将所述数据存量达到所述第一存储阈值的第一存储模块中的数据,依序存入第二缓存位置中的相应第二缓存单元,直至各所述第二缓存单元中的数据存量达到第二存储阈值;所述第二缓存位置包括若干个所述第二缓存单元;将数据存量达到所述第二存储阈值的所述第二缓存单元中的数据,依序存入第三缓存位置中的相应第三缓存单元,直至各所述第三缓存单元中的数据存量达到第三存储阈值,将各所述第三缓存单元中的数据作为第二特征图数据。4.根据权利要求1至3任一项所述的方法,其特征在于,所述根据目标存储位置的存储结构,对所述第三特征图数据进行相应结构调整,得到特征图数据处理结果,包括:根据目标存储位置的存储结构,确定对应的数据调整策略;所述数据调整策略包括对所述第三特征图数据进行数据拼接、数据分割、最大池化处理以及数据扩张中的至少一种;根据所述数据调整策略,对所述第三特征图数据进行相应结构调整,得到特征图数据处理结果。5.根据权利要求4所述的方法,其特征在于,所述对所述第三特征图数据进行数据拼接,包括:若所述第三特征图数据对应的数据量未超出片上存储阈值,则根据所述第三特征图数
据的通道来源,对所述第三特征图数据进行拼接处理。6.根据权利要求4所述的方法,其特征在于,所述对所述第三特征图数据进行数据分割,包括:若所述第三特征图数据中的任一部分数据不具备存储需求,则删除所述第三特征图数据中的该部分数据;或者,若所述第三特征图数据中的任一部分数据具备存储需求,则保留所述第三特征图数据中的该部分数据。7.根据权利要求4所述的方法,其特征在于,所述对所述第三特征图数据进行最大池化处理,包括:为所述第三特征图数据添加索引标志;所述索引标志的类型包括奇数索引标志和偶数索引标志;将所述奇数索引标志对应的所述第三特征图数据,存入第一数据分类区域;将所述偶数索引标志对应的所述第三特征图数据,存入第二数据分类区域;在同一时钟周期内,获取所述第一数据分类区域和所述第二数据分类区域中的数据;将所述第一数据分类区域和所述第二数据分类区域中的数据进行比较,得到表征最大元素的所述第三特征图数据。8.根据权利要求4所述的方法,其特征在于,所述对所述第三特征图数据进行数据扩张,包括:将所述第三特征图数据进行复制处理,得到所述第三特征图数据对应的第一副本、第二副本、第三副本以及第四副本;将所述第一副本以及所述第二副本,存入第一数据存储区域;将所述第三副本以及所述第四副本,存入第二数据存储区域;将所述第一数据存储区域中的数据作为所述特征图数据处理结果的第一行,将所述第二数据存储区域中的数据作为所述特征图数据处理结果的第二行。9.一种数据处理装置,其特征在于,包括:填充模块,用于对待处理特征图数据进行填充处理,得到第一特征图数据;分块模块,用于依序对所述第一特征图数据的各行数据进行分块整理,得到第二特征图数据;处理模块,用于对所述第二特征图数据进行卷积运算以及量化精度调整,得到第三特征图数据;调整模块,用于根据目标存储位置的存储结构,对所述第三特征图数据进行相应结构调整,得到特征图数据处理结果。10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。

技术总结


本申请涉及数据处理技术领域,提供了一种数据处理方法、装置、计算机设备及计算机可读存储介质。该方法包括:对待处理特征图数据进行填充处理,得到第一特征图数据;依序对第一特征图数据的各行数据进行分块整理,得到第二特征图数据;对第二特征图数据进行卷积运算以及量化精度调整,得到第三特征图数据;根据目标存储位置的存储结构,对第三特征图数据进行相应结构调整,得到特征图数据处理结果。本申请能够有效提升基于FPGA平台构建的神经网络加速器的计算能力。加速器的计算能力。加速器的计算能力。


技术研发人员:

郑海生 沈小勇 吕江波

受保护的技术使用者:

深圳思谋信息科技有限公司

技术研发日:

2022.10.18

技术公布日:

2023/2/23

本文发布于:2024-09-22 01:44:53,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/59282.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   特征   所述   数据处理
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议