一种数据处理系统、方法及介质

文档序号:1756273 发布日期:2019-11-29 浏览:29次 >En<

阅读说明:本技术 一种数据处理系统、方法及介质 (A kind of data processing system, method and medium ) 是由 董刚 赵雅倩 李仁刚 杨宏斌 刘海威 于 2019-08-16 设计创作,主要内容包括:本申请公开了一种数据处理系统、方法及介质,包括卷积运算模块,卷积运算模块包括第一寄存器组、第二寄存器组以及与第一寄存器组和第二寄存器组连接的运算器;第一寄存器组用于获取待处理数据中的本轮待卷积数据,将获取到的本轮待卷积数据传输至运算器,并且在运算器进行本轮卷积运算的过程中,如果待处理数据还未处理完毕,则获取待处理数据中的下一轮待卷积数据并传输至运算器;第二寄存器组用于获取卷积核数据,并将当前获取到的卷积核数据传输至运算器;运算器用于获取所述第一寄存器组传输的每轮待卷积数据,以及获取第二寄存器组传输的卷积核数据,并对获取到的每轮待卷积数据和卷积核数据分别进行卷积运算,以得到相应的卷积运算结果。(This application discloses a kind of data processing system, method and medium, including convolution algorithm module, convolution algorithm module includes the first register group, the second register group and the arithmetic unit connecting with the first register group and the second register group;The epicycle that first register group is used to obtain in pending data waits for convolved data, the epicycle that will acquire waits for that convolved data is transmitted to arithmetic unit, and during arithmetic unit carries out epicycle convolution algorithm, it is finished if pending data is also untreated, obtains the next round in pending data and wait for convolved data and be transmitted to arithmetic unit;The convolution Nuclear Data currently got is transmitted to arithmetic unit for obtaining convolution Nuclear Data by the second register group;Arithmetic unit is used to obtain every wheel of the first register group transmission to convolved data, and obtain the convolution Nuclear Data of the second register group transmission, and convolution algorithm is carried out respectively to convolved data and convolution Nuclear Data to the every wheel got, to obtain corresponding convolution algorithm result.)

一种数据处理系统、方法及介质

技术领域

本申请涉及数据处理技术领域,特别涉及一种数据处理系统、方法及介质。

背景技术

目前,深度学习方面的研究主要以CNN(即Convolutional Neural Network,卷积神经网络)为研究对象。由于处理场景的不同,对CNN的性能要求也不相同,从而发展出多种网络结构。但是CNN的基本组成是固定的,分别为输入层、卷积层、激活层、池化层和全连接层。其中输入层是将待测数据输入到CNN网络中。卷积层是神经元与输入层中的一个局部区域相连,每个神经元都计算自己与输入层相连的小区域与自己权重的内积,也就是进行卷积核运算的一层。卷积层在CNN网络结构中占据了绝对的主体,其运算速度与效率直接决定了CNN网络的性能。因此如何能够高效、快速地进行大批量卷积计算,尤其是二维、三维卷积计算,是CNN网络架构中非常重要的一个部分。

在现有技术中,卷积层的数据处理基本都是遵循先存储或先缓存后计算的结构,这样计算时间上的开销较大,卷积计算的速度较慢。

发明内容

有鉴于此,本申请的目的在于提供一种数据处理系统、方法及介质,能够让数据的存储和计算同时进行,从而提高卷积的运算速度。其具体方案如下:

第一方面,本申请公开了一种数据处理系统,包括卷积运算模块,所述卷积运算模块包括第一寄存器组、第二寄存器组以及与所述第一寄存器组和所述第二寄存器组连接的运算器;其中,

所述第一寄存器组,用于获取待处理数据中的本轮待卷积数据,然后将获取到的本轮待卷积数据传输至所述运算器,并且在所述运算器进行本轮卷积运算的过程中,如果所述待处理数据还未处理完毕,则获取所述待处理数据中的下一轮待卷积数据并传输至所述运算器;

所述第二寄存器组,用于获取卷积核数据,并将当前获取到的卷积核数据传输至所述运算器;

所述运算器,用于获取所述第一寄存器组传输的每轮待卷积数据,以及获取所述第二寄存器组传输的卷积核数据,并对获取到的每轮待卷积数据和卷积核数据分别进行卷积运算,以得到相应的卷积运算结果。

可选的,还包括:

控制开关,用于控制所述待卷积数据和所述卷积核数据在所述卷积运算模块中的流向。

可选的,所述控制开关用于控制所述待卷积数据在所述第一寄存器组间流动或从所述第一寄存器组流向所述运算器。

可选的,所述控制开关用于控制所述卷积核数据在所述第二寄存器组间流动或从所述第二寄存器组流向所述运算器。

可选的,还包括:

参数配置模块,用于配置参数;其中,所述参数包括卷积核尺寸、卷积核权重以及控制开关的开关状态;

卷积运算模块结构调整模块,用于根据所述参数调整所述卷积运算模块的结构,以进行不同卷积层之间的不同尺寸的卷积运算。

可选的,所述数据处理系统,包括多个所述卷积运算模块,用于并行处理所述待处理数据中的不同待卷积数据。

第二方面,本申请公开了一种数据处理方法,应用于数据处理系统;其中,所述数据处理系统包括卷积运算模块,所述卷积运算模块包括第一寄存器组、第二寄存器组以及与所述第一寄存器组和所述第二寄存器组连接的运算器;其中,所述数据处理方法包括:

通过所述第一寄存器组获取待处理数据中的本轮待卷积数据,然后将获取到的本轮待卷积数据传输至所述运算器,并且在所述运算器进行本轮卷积运算的过程中,如果所述待处理数据还未处理完毕,则获取所述待处理数据中的下一轮待卷积数据并传输至所述运算器;

通过所述第二寄存器组获取卷积核数据,并将当前获取到的卷积核数据传输至所述运算器;

通过所述运算器获取所述第一寄存器组传输的每轮待卷积数据,以及获取所述第二寄存器组传输的卷积核数据,并对获取到的每轮待卷积数据和卷积核数据分别进行卷积运算,以得到相应的卷积运算结果。

第三方面,本申请公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现前述的数据处理方法。

可见,本申请公开的数据处理系统,包括卷积运算模块,所述卷积运算模块包括第一寄存器组、第二寄存器组以及与所述第一寄存器组和所述第二寄存器组连接的运算器;其中,所述第一寄存器组,用于获取待处理数据中的本轮待卷积数据,然后将获取到的本轮待卷积数据传输至所述运算器,并且在所述运算器进行本轮卷积运算的过程中,如果所述待处理数据还未处理完毕,则获取所述待处理数据中的下一轮待卷积数据并传输至所述运算器;所述第二寄存器组,用于获取卷积核数据,并将当前获取到的卷积核数据传输至所述运算器;所述运算器,用于获取所述第一寄存器组传输的每轮待卷积数据,以及获取所述第二寄存器组传输的卷积核数据,并对获取到的每轮待卷积数据和卷积核数据分别进行卷积运算,以得到相应的卷积运算结果。也即,在运算器进行本轮卷积运算的过程中,通过第一寄存器组获取未处理完毕的待处理数据中的下一轮待卷积数据并传输至运算器,当运算器输出本轮的卷积运算结果,继续进行下一轮卷积运算,这样,能够让数据的存储和计算同时进行,在数据的传输过程中进卷积运算,使数据传输时间和卷积运算时间一致,从而提升了卷积运算的速度。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请公开的一种数据处理系统结构示意图;

图2为本申请公开的一种二维卷积运算模块部分结构示意图;

图3为本申请公开的一种三维卷积运算模块部分结构示意图;

图4为本申请公开的一种四维卷积运算模块结构示意图;

图5为本申请公开的一种五维卷积运算模块结构示意图;

图6为本申请公开的一种具体的三维卷积运算操作流程示意图;

图7为本申请公开的一种具体的数据处理系统部分结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在现有技术中,卷积层的数据处理基本都是遵循先存储或先缓存后计算的结构,这样计算时间上的开销较大,卷积计算的速度较慢。为此,本申请提供了一种数据处理系统,能够让数据的存储和计算同时进行,从而提高卷积的运算速度。

参见图1所示,本申请实施例公开了一种数据处理系统,包括卷积运算模块,所述卷积运算模块包括第一寄存器组11、第二寄存器组12以及与所述第一寄存器组11和所述第二寄存器组12连接的运算器13;其中,

所述第一寄存器组11,用于获取待处理数据中的本轮待卷积数据,然后将获取到的本轮待卷积数据传输至所述运算器13,并且在所述运算器13进行本轮卷积运算的过程中,如果所述待处理数据还未处理完毕,则获取所述待处理数据中的下一轮待卷积数据并传输至所述运算器13;

所述第二寄存器组12,用于获取卷积核数据,并将当前获取到的卷积核数据传输至所述运算器13;

所述运算器13,用于获取所述第一寄存器组11传输的每轮待卷积数据,以及获取所述第二寄存器组12传输的卷积核数据,并对获取到的每轮待卷积数据和卷积核数据分别进行卷积运算,以得到相应的卷积运算结果。

可见,本申请实施例公开的数据处理系统,包括卷积运算模块,所述卷积运算模块包括第一寄存器组、第二寄存器组以及与所述第一寄存器组和所述第二寄存器组连接的运算器;其中,所述第一寄存器组,用于获取待处理数据中的本轮待卷积数据,然后将获取到的本轮待卷积数据传输至所述运算器,并且在所述运算器进行本轮卷积运算的过程中,如果所述待处理数据还未处理完毕,则获取所述待处理数据中的下一轮待卷积数据并传输至所述运算器;所述第二寄存器组,用于获取卷积核数据,并将当前获取到的卷积核数据传输至所述运算器;所述运算器,用于获取所述第一寄存器组传输的每轮待卷积数据,以及获取所述第二寄存器组传输的卷积核数据,并对获取到的每轮待卷积数据和卷积核数据分别进行卷积运算,以得到相应的卷积运算结果。也即,在运算器进行本轮卷积运算的过程中,通过第一寄存器组获取未处理完毕的待处理数据中的下一轮待卷积数据并传输至运算器,当运算器输出本轮的卷积运算结果,继续进行下一轮卷积运算,这样,能够让数据的存储和计算同时进行,在数据的传输过程中进卷积运算,使数据传输时间和卷积运算时间一致,从而提升了卷积运算的速度。

例如,参见图2所示,图2为本申请实施例公开的一种二维卷积运算模块部分结构示意图。具体的,所述第一寄存器组包括二维卷积运算模块中的全部寄存器1,所述第二寄存器组包括二维卷积运算模块中的全部寄存器2。

可以理解的是,本实施例可以将图2的结构进行扩展,扩展为三维以及更高维度的结构。

例如,参见图3所示,图3为本申请实施例公开的一种三维卷积运算模块部分结构示意图。具体的,所述第一寄存器组包括三维卷积运算模块中的全部寄存器1,所述第二寄存器组包括三维卷积运算模块中的全部寄存器2。

参见图4所示,图4为本申请实施例公开的一种四维卷积运算模块结构示意图。具体的,以三维卷积运算模块为基础进行扩展,扩展出一列三维卷积运算模块,即1×3的三维卷积运算模块,构成四维卷积运算模块。

参见图5所示,图5为本申请实施例公开的一种五维卷积运算模块结构示意图。具体的,以三维卷积运算模块为基础进行扩展,扩展出一面三维卷积运算模块,即3×3的三维卷积运算模块,构成五维卷积运算模块。

进一步的,本实施例还可以包括控制开关,用于控制所述待卷积数据和所述卷积核数据在所述卷积运算模块中的流向。具体的,所述控制开关用于控制所述待卷积数据在所述第一寄存器组间流动或从所述第一寄存器组流向所述运算器,并且,控制所述卷积核数据在所述第二寄存器组间流动或从所述第二寄存器组流向所述运算器。也即,本实施例在第一寄存器组的寄存器之间、第一寄存器组的寄存器与运算器之间、第二寄存器组的寄存器之间以及第二寄存器组的寄存器与运算器之间布置了大量的控制开关,用于控制数据流向,以满足不同卷积运算的需求。

本实施例还可以包括参数配置模块和卷积运算模块结构调整模块。具体的,所述参数配置模块,用于配置参数;其中,所述参数包括卷积核尺寸、卷积核权重以及控制开关的开关状态。所述卷积运算模块结构调整模块,用于根据所述参数调整所述卷积运算模块的结构,以进行不同卷积层之间的不同尺寸的卷积运算。

在具体的实施方式中,本实施公开的所述数据处理系统,通过所述控制开关,可以在预设参数的控制下形成若干数值的累加,从而得到一轮卷积核与本轮待卷积数据的卷积运算结果。

例如,参见图6所示,图6为本申请实施例公开的一种具体的三维卷积运算操作流程示意图。将待卷积数据输入卷积运算模块的第一寄存器组,将卷积核数据输入卷积运算模块的第二寄存器组。以卷积核尺寸3×3×3为例,每个时钟周期同时向第一寄存器组输入3×3个待卷积数据以及向第二寄存器组输入3×3个卷积核数据。则在三个时钟周期后,卷积运算模块中的运算器进行乘加运算,得到其相邻寄存器内数据的运算结果。而在接下来的三个时钟周期内,卷积运算模块中的寄存器里的数据全部更换,运算器内的中间结果也从卷积运算模块下方输出,并再次对相邻的寄存器内部数据进行新一轮的运算,从而实现了连续不断地三维卷积运算操作。

在一些具体的实施方式中,所述待处理数据可以为由例如摄像头或者传感器等采集设备所得到的图像数据,送入该卷积运算模块,进行所需要的卷积运算,根据得到的运算结果对图像分类或者识别,主要应用于人脸识别、自动驾驶等领域内。并且,所述卷积运算模块可以在CPU或者FPGA的硬件设备中实现,其中,所述卷积运算模块由寄存器和运算器交叉组合而成,使用寄存器可以灵活地实现对任意数量的数据同时进行读写操作,避免了出现类似FPGA中RAM、IP等存在固定的读写端口宽度和读写时序限制的情况。

参见图7所示,本申请实施例公开了一种具体的数据处理系统,包括多个卷积运算模块,所述卷积运算模块包括第一寄存器组21、第二寄存器组22以及与所述第一寄存器组21和所述第二寄存器组连接22的运算器23;其中,

所述第一寄存器组21,用于获取待处理数据中的本轮待卷积数据,然后将获取到的本轮待卷积数据传输至所述运算器23,并且在所述运算器23进行本轮卷积运算的过程中,如果所述待处理数据还未处理完毕,则获取所述待处理数据中的下一轮待卷积数据并传输至所述运算器23;

所述第二寄存器组22,用于获取卷积核数据,并将当前获取到的卷积核数据传输至所述运算器23;

所述运算器23,用于获取所述第一寄存器组21传输的每轮待卷积数据,以及获取所述第二寄存器组22传输的卷积核数据,并对获取到的每轮待卷积数据和卷积核数据分别进行卷积运算,以得到相应的卷积运算结果。

在具体的实施方式中,本实施例的多个所述卷积运算模块,用于并行处理所述待处理数据中的不同待卷积数据。可以理解的是,本实施例中,所述卷积运算模块的具体规模是根据经验总结得来的典型数值,在硬件资源充足的情况下可以对所述卷积运算模块进行任意扩展,提高数据处理的并行度,加快计算的速度。例如,利用多个三维卷积运算模块,同时计算若干个三维卷积。

本申请实施例公开了一种数据处理方法,应用于数据处理系统;其中,所述数据处理系统包括卷积运算模块,所述卷积运算模块包括第一寄存器组、第二寄存器组以及与所述第一寄存器组和所述第二寄存器组连接的运算器;其中,所述数据处理方法包括:

通过所述第一寄存器组获取待处理数据中的本轮待卷积数据,然后将获取到的本轮待卷积数据传输至所述运算器,并且在所述运算器进行本轮卷积运算的过程中,如果所述待处理数据还未处理完毕,则获取所述待处理数据中的下一轮待卷积数据并传输至所述运算器;

通过所述第二寄存器组获取卷积核数据,并将当前获取到的卷积核数据传输至所述运算器;

通过所述运算器获取所述第一寄存器组传输的每轮待卷积数据,以及获取所述第二寄存器组传输的卷积核数据,并对获取到的每轮待卷积数据和卷积核数据分别进行卷积运算,以得到相应的卷积运算结果。

可见,本申请实施例公开数据处理方法,应用于数据处理系统,其中,所述数据处理系统包括卷积运算模块,所述卷积运算模块包括第一寄存器组、第二寄存器组以及与所述第一寄存器组和所述第二寄存器组连接的运算器;其中,所述数据处理方法包括:通过所述第一寄存器组获取待处理数据中的本轮待卷积数据,然后将获取到的本轮待卷积数据传输至所述运算器,并且在所述运算器进行本轮卷积运算的过程中,如果所述待处理数据还未处理完毕,则获取所述待处理数据中的下一轮待卷积数据并传输至所述运算器;通过所述第二寄存器组获取卷积核数据,并将当前获取到的卷积核数据传输至所述运算器;通过所述运算器获取所述第一寄存器组传输的每轮待卷积数据,以及获取所述第二寄存器组传输的卷积核数据,并对获取到的每轮待卷积数据和卷积核数据分别进行卷积运算,以得到相应的卷积运算结果。也即,在运算器进行本轮卷积运算的过程中,通过第一寄存器组获取未处理完毕的待处理数据中的下一轮待卷积数据并传输至运算器,当运算器输出本轮的卷积运算结果,继续进行下一轮卷积运算,这样,能够让数据的存储和计算同时进行,在数据的传输过程中进卷积运算,使数据传输时间和卷积运算时间一致,从而提升了卷积运算的速度。

在具体的实施方式中,本实施例还可以利用控制开关控制所述待卷积数据和所述卷积核数据在所述卷积运算模块中的流向。具体的,可以控制所述待卷积数据在所述第一寄存器组间流动或从所述第一寄存器组流向所述运算器,控制所述卷积核数据在所述第二寄存器组间流动或从所述第二寄存器组流向所述运算器。

具体的,本实施例还可以配置参数;其中,所述参数包括卷积核尺寸、卷积核权重以及控制开关的开关状态,并根据所述参数调整所述卷积运算模块的结构,以进行不同卷积层之间的不同尺寸的卷积运算。

进一步的,本实施例可以利用多个所述卷积运算模块并行处理所述待处理数据中的不同待卷积数据。

本实施实施例公开了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现以下数据处理方法,应用于数据处理系统;其中,所述数据处理系统包括卷积运算模块,所述卷积运算模块包括第一寄存器组、第二寄存器组以及与所述第一寄存器组和所述第二寄存器组连接的运算器;其中,所述数据处理方法包括:

通过所述第一寄存器组获取待处理数据中的本轮待卷积数据,然后将获取到的本轮待卷积数据传输至所述运算器,并且在所述运算器进行本轮卷积运算的过程中,如果所述待处理数据还未处理完毕,则获取所述待处理数据中的下一轮待卷积数据并传输至所述运算器;

通过所述第二寄存器组获取卷积核数据,并将当前获取到的卷积核数据传输至所述运算器;

通过所述运算器获取所述第一寄存器组传输的每轮待卷积数据,以及获取所述第二寄存器组传输的卷积核数据,并对获取到的每轮待卷积数据和卷积核数据分别进行卷积运算,以得到相应的卷积运算结果。

可见,本申请实施例公开的数据处理系统,包括卷积运算模块,所述卷积运算模块包括第一寄存器组、第二寄存器组以及与所述第一寄存器组和所述第二寄存器组连接的运算器;其中,所述第一寄存器组,用于获取待处理数据中的本轮待卷积数据,然后将获取到的本轮待卷积数据传输至所述运算器,并且在所述运算器进行本轮卷积运算的过程中,如果所述待处理数据还未处理完毕,则获取所述待处理数据中的下一轮待卷积数据并传输至所述运算器;所述第二寄存器组,用于获取卷积核数据,并将当前获取到的卷积核数据传输至所述运算器;所述运算器,用于获取所述第一寄存器组传输的每轮待卷积数据,以及获取所述第二寄存器组传输的卷积核数据,并对获取到的每轮待卷积数据和卷积核数据分别进行卷积运算,以得到相应的卷积运算结果。也即,在运算器进行本轮卷积运算的过程中,通过第一寄存器组获取未处理完毕的待处理数据中的下一轮待卷积数据并传输至运算器,当运算器输出本轮的卷积运算结果,继续进行下一轮卷积运算,这样,能够让数据的存储和计算同时进行,在数据的传输过程中进卷积运算,使数据传输时间和卷积运算时间一致,从而提升了卷积运算的速度。

本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:控制所述待卷积数据在所述第一寄存器组间流动或从所述第一寄存器组流向所述运算器

本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:控制所述卷积核数据在所述第二寄存器组间流动或从所述第二寄存器组流向所述运算器。

本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:配置参数;其中,所述参数包括卷积核尺寸、卷积核权重以及控制开关的开关状态。

本实施例中,所述计算机可读存储介质中保存的计算机子程序被处理器执行时,可以具体实现以下步骤:根据所述参数调整所述卷积运算模块的结构,以进行不同卷积层之间的不同尺寸的卷积运算。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

以上对本申请所提供的一种数据处理系统、方法及介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

13页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:深度学习网络应用分布自组装指令处理器核、处理器、电路和处理方法

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!