CN113011563A - 基于gpu的卷积神经网络批归一化处理方法 - Google Patents

基于gpu的卷积神经网络批归一化处理方法 Download PDF

Info

Publication number
CN113011563A
CN113011563A CN202110294597.5A CN202110294597A CN113011563A CN 113011563 A CN113011563 A CN 113011563A CN 202110294597 A CN202110294597 A CN 202110294597A CN 113011563 A CN113011563 A CN 113011563A
Authority
CN
China
Prior art keywords
training data
sum
value
gpu
subsets
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110294597.5A
Other languages
English (en)
Inventor
孙圣力
马建伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University
Original Assignee
Peking University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Peking University filed Critical Peking University
Priority to CN202110294597.5A priority Critical patent/CN113011563A/zh
Publication of CN113011563A publication Critical patent/CN113011563A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Abstract

本发明提供了一种基于GPU的卷积神经网络批归一化处理方法,包括:获取训练数据集,训练数据集包括多个与多个训练通道一一对应的训练数据子集;判断训练数据子集的数据规模是否超过预定阈值。在训练数据子集的数据规模未超过预定阈值时,训练数据子集被分配并缓存至GPU的一个计算单元上,计算单元对分配到的训练数据子集进行批归一化;在训练数据子集的数据规模超过预定阈值时,训练数据子集被分配并缓存至所述GPU的至少两个计算单元上,至少两个计算单元对分配到的训练数据子集进行批归一化。本发明中,训练数据被缓存在GPU的计算单元的片上高速存储中,因此BN处理过程中,GPU无需再执行重复的数据读取过程,从而提升了BN的处理效率。

Description

基于GPU的卷积神经网络批归一化处理方法
技术领域
本发明涉及大数据领域,具体而言,本申请涉及一种基于GPU的卷积神经网络批归一化处理方法。
背景技术
卷积神经网络模型在训练过程中,如果某些层的输入数据的数值分布不均匀,方差过大,将会导致训练过程中反向传播时低层梯度消失,影响训练速度。因此,在卷积神经网络的训练过程中,一般会将输入数据进行归一化处理,使数据变为均值为0,标准差为1的分布或者范围在0~1的分布。
批归一化(Batch Normalization,简称BN)是由Google于2015年提出的一个深度神经网络的训练技巧,其不仅可以加快模型的收敛速度,而且更重要的是在一定程度缓解了深层网络中“梯度弥散(特征分布较散)”的问题,从而使得训练深层网络模型更加容易和稳定。BN作为卷积神经网络的一层,一般被放在激活函数(如Relu)之前,其通过对输入数据进行处理,将数据处理为均值为0,方差为1的分布。
传统的BN处理,在进行模型训练的过程总共需要重复读取内存以获取输入数据,重复的访存极大地降低了BN的执行效率。
发明内容
为了解决上述技术问题中的至少一个,本发明提供了一种基于GPU的卷积神经网络批归一化处理方法,其具体技术方案如下:
一种基于GPU的卷积神经网络批归一化处理方法,所述卷积神经网络包括多个训练通道,所述GPU包括多个计算单元,所述批归一化处理方法包括:
获取输入的训练数据集,所述训练数据集包括多个与所述多个训练通道一一对应的训练数据子集;
判断所述训练数据子集的数据规模是否超过预定阈值;
在所述训练数据子集的数据规模未超过预定阈值时,所述训练数据子集被分配并缓存至所述GPU的一个计算单元上,所述计算单元对分配到的所述训练数据子集进行批归一化;
在所述训练数据子集的数据规模超过预定阈值时,所述训练数据子集被分配并缓存至所述GPU的至少两个计算单元上,所述至少两个计算单元对分配到的所述训练数据子集进行批归一化。
在一些实施例中,所述预定阈值与所述GPU的一个计算单元的片上高速存储的存储容量相匹配。
在一些实施例中,所述计算单元对分配到的所述训练数据子集进行批归一化包括:
根据公式
Figure BDA0002983838260000021
计算所述训练数据子集的均值,其中,m为所述训练数据子集所包括的训练数据的数量,xi为所述训练数据子集中的第i个训练数据;
根据公式
Figure BDA0002983838260000022
计算所述训练数据子集的方差;
基于计算出的所述训练数据子集的均值和方差,根据公式
Figure BDA0002983838260000023
实施对所述训练数据子集的归一化处理;
根据公式
Figure BDA0002983838260000024
对经过归一化处理后的训练数据子集中的每个训练数据进行偏移操作,其中,γ、β为偏移参数。
在一些实施例中,所述至少两个计算单元对分配到的所述训练数据子集进行批归一化包括:
所述至少两个计算单元中的各所述计算单元分别计算出分配到的训练数据的局部和值及局部平方和值;
基于各所述计算单元计算出的所述局部和值和所述局部平方和值,计算出所述训练数据子集的总和值和总平方和值;
根据公式
Figure BDA0002983838260000025
及公式
Figure BDA0002983838260000026
分别计算出所述训练数据子集的均值及方差,其中,m为所述训练数据子集所包括的训练数据的数量,Sum为所述训练数据子集的总和值,squareSum为所述训练数据子集的总平方和值;
基于计算出的所述训练数据子集的均值和方差,根据公式
Figure BDA0002983838260000027
实施对所述训练数据子集的归一化处理,其中,xi为所述训练数据子集中的第i个训练数据;
根据公式
Figure BDA0002983838260000031
对经过归一化处理后的训练数据子集中的每个训练数据进行偏移操作,其中,γ、β为偏移参数。
在一些实施例中,所述基于各所述计算单元计算出的所述局部和值和所述局部平方和值,计算出所述训练数据子集的总和值和总平方和值包括:
在全局存储器中设置和值累加器和平方和值累加器,并将所述和值累加器和所述平方和值累加器的初始值置为零;
各所述计算单元通过原子操作分别将各自计算出的所述局部和值、所述局部平方和值累加至所述值累加器、所述平方和值累加器,以获得所述训练数据子集的总和值和总平方和值。
在一些实施例中,在计算出所述训练数据子集的均值及方差后,还包括:通过插入内存栅栏实现对GPU的各所述计算单元的同步。
本发明提供的基于GPU的卷积神经网络批归一化处理方法,训练数据被缓存在GPU的计算单元的片上高速存储中,因此BN处理过程中,GPU无需再执行重复的数据读取过程,从而提升了BN的处理效率。
附图说明
图1为一种典型的GPU的逻辑框架结构图;
图2为基于弱内存模型的GPU的多线程执行流程图;
图3为引入内存栅栏后的GPU的多线程执行流程图;
图4为通过内存栅栏操作实现GPU的多个计算单元之间的同步的原理图;
图5为通过累加器实现内存栅栏操作的原理图;
图6为本发明一个实施例的执行流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
关于本发明所要解决的技术问题的介绍
卷积神经网络模型在训练过程中,如果某些层的输入数据的数值分布不均匀,方差过大,将会导致训练过程中反向传播时低层梯度消失,影响训练速度。因此,在卷积神经网络的训练过程中,一般会将输入数据进行归一化处理,使数据变为均值为0,标准差为1的分布或者范围在0~1的分布。
批归一化(Batch Normalization,简称BN)是由Google于2015年提出的一个深度神经网络的训练技巧,其不仅可以加快模型的收敛速度,而且更重要的是在一定程度缓解了深层网络中“梯度弥散(特征分布较散)”的问题,从而使得训练深层网络模型更加容易和稳定。BN作为卷积神经网络的一层,一般被放在激活函数(如Relu)之前,其通过对输入数据进行处理,将数据处理为均值为0,方差为1的分布。
考虑到卷积神经网络模型训练过程中的训练数据往往都很大,一次加载到电脑中进行训练,可能会出现内存不够,“收敛”速度过慢的情况,最小批(mini-batch)训练策略正是为解决该问题提出的,其在训练过程中将训练数据分割成多个最小批,每次训练一个最小批。
传统的BN的算法的流程如下:
输入:批处理(mini-batch)输入В={x1,…m}
输出:归一化后的网络响应{yi=BNγ,β(xi)}
1:
Figure BDA0002983838260000041
//计算批处理数据均值;
2:
Figure BDA0002983838260000042
//计算批处理数据方差;
3:
Figure BDA0002983838260000043
//归一化;
4:
Figure BDA0002983838260000044
//尺度变化及偏移;
5:return学习的参数γ和β。
具体的,在卷积神经网络中,BN的前向执行过程如下:
设输入的训练数据的维度为N*C*H*W,其中,N为一个最小批(mini-batch)的训练数据的数据量,C为训练通道(Channel)的数量,H和W分别为每个训练通道的长度及宽度。
即,将输入的N*C*H*W个训练数据按训练通道数分为C组,每组包括N*H*W个训练数据。针对每组训练数据,执行上述步骤1和步骤2,以计算出该组训练数据的均值和方差,最终得到C个均值和C个方差。
接着,执行步骤3和步骤4,以实现对各组训练数据的归一化处理、尺度变化及偏移,即基于步骤1和步骤2计算出的各组训练数据的均值和方差,对各组训练数据进行归一化处理,以将各组训练数据中的数据处理为均值为0,方差为1的分布,并对数据进行尺度变化及偏移。
可见,BN处理过程中,需要对输入的N*C*H*W个训练数据读取两次。第一次读取的目的是计算出各组训练数据的均值和方差,对应于上述步骤1和步骤2。第二次读取则是对各组训练数据进行归一化处理,对应于上述步骤3。
也就是说,BN处理过程中,需要从内存中执行两次数据读取,如果训练数据的规模较大的话,重复的数据读取势必降低了BN的执行效率。
同样的,BN的后向执行过程,也需要执行两次数据读取,第一次读取输入的梯度dy、数据x,并计算dy和dy*(x-μB)/σβ在每个通道上的总和,第二次则读取输入以更新输出值。
传统的深度学习训练算法,比如Caffe的BN实现,完全按照上述的BN算法流程,需要重复执行数据读取过程,重复的访存极大地降低了BN的执行效率。
本发明的目的即是为了解决该技术问题,以提升卷积神经网络的BN执行效率。
关于图形处理单元(Graphics Processing Unit,GPU)的介绍
GPU是目前人工智能领域常用的并行处理器,其包括大量的计算部件,如浮点计算部件,整数计算部件,超越函数计算部件等,通常将这些计算部件分成若干个组,每个组构成一个计算单元。如图1所示,GPU的各计算单元内的计算部件共享一些片上资源,如寄存器,高速片上缓存等。
GPU的各计算单元之间在逻辑上相互独立的,但各计算单元内的计算部件则共享一块动态随机存取存储器(DRAM),也称为显存或全局存储器,下文中统称为全局存储器。全局存储器支持原子操作,即当多个计算单元对全局存储器中的同一地址进行原子写操作时,能保证结果的正确性。
GPU在硬件上通常会提供同一计算单元内的同步功能,但是并未提供多个不同计算单元之间的灵活同步功能,此处的灵活是指实现任意几个计算单元之间的同步。例如,有A、B、C、D四个计算单元,需要实现A和B同步,C和D同步,或者,需要实现A、B和C的同步,D不与其他计算单元同步。然而,针对一些复杂的应用场景,则往往需要通过计算单元之间的灵活同步来实现计算单元之间的灵活同步。
关于内存栅栏(Memory Fence)的介绍
当前主流的GPU都采用弱内存模型(weak memory model),即,当GPU的多个计算单元同时访问全局存储器时,这些访问会被重新排序,举个例子:
如图2所示,全局存储器中有x,y两个变量,初始值为1和2,线程thread1和线程thread2分别在两个计算单元上运行。采用弱内存模型时,无法保证线程thread1中y=20执行完毕时,x=10已经被写入至全局存储器中。因此,线程thread2执行完后,可能得到a=1,b=20的错误结果。
为了解决弱内存模型存在的上述问题,引入了内存栅栏,即在线程thread1中插入内存栅栏操作,也就是在线程thread1中插入内存栅栏操作的代码。如图3所示,线程thread1中,操作x=10和操作y=20之间插入内存栅栏操作memory_fence,如此,能够确保y=20在被写入至全局存储器之前,x=10已经执行完毕并被写入至全局存储器。从而保证,thread2执行完后,确保能够得到正确结果a=10,b=20。
关于本发明的发明构思及技术方案的介绍
在BN的前向执行过程和后向执行过程中,利用GPU的片上高速存储实现对输入的训练数据的缓存,从而避免BN执行重复的数据读取。同时,通过插入内存栅栏操作,以实现GPU的多个计算单元的同步。具体的:
当输入的训练数据的规模较小时,利用单个计算单元的片上高速存储实现对输入的训练数据的缓存,避免BN在执行过程中执行重复的数据读取。
当输入的训练数据的规模较大时,利用多个计算单元的片上高速存储实现对输入的训练数据的缓存,避免BN在执行过程中执行重复的数据读取。此时,为了同时利用多个计算单元的片上高速存储,通过插入内存栅栏操作实现多个计算单元之间的同步,即通过软件程序的方式实现现多个计算单元的同步。
如何通过内存栅栏操作实现GPU的多个计算单元之间的同步:
如图4所示,线程thread1和线程thread2分别在GPU的两个计算单元上执行。执行过程中,两个线程在执行完前序代码后进行同步,然后再执行后序代码。
如图5所示,通过在线程thread1和线程thread2需要同步的位置点处(即前序代码和后序代码之间)插入内存栅栏操作,即能实现GPU的两个计算单元之间的同步。具体的,内存栅栏操作可通过同步计算器counter实现,counter存储在全局存储器中,counter的初始值为0。每当线程执行完前序代码后,先执行memory fence,保证前序代码执行过程中的所有的内存操作均能在同步点之前完成。随后通过原子操作使counter加1。
图4实施例中,仅需要对两个线程进行同步,因此当counter≥2时,即能保证线程thread1和线程thread2执行到了同步点,从而实现了位于两个计算单元上的线程thread1和线程thread2的同步。
而当需要对其他数量(设为n)的计算单元上的线程进行同步时,只需要将计数器counter设置为≥n可。例如,如图6所示,在另外一个实施例中,有thread0~4五个线程,分别运行在五个不同的计算单元上,执行过程中,线程thread0、线程thread2及线程thread4需要实现同步,线程thread1和线程thread3需要实现同步,此时,需要使用两个计数器counter1和counter2,其中:线程thread0、线程thread2及线程thread4在执行到同步点时,通过原子操作使counter1加1,当counter1≥3时,线程thread0、线程thread2及线程thread4方才开始执行后序代码。线程thread1和线程thread3在执行到同步点时,通过原子操作使counter2加1,当counter2≥2时,线程thread1和线程thread3方才开始执行后序代码。
可见,通过软件指令层面的内存栅栏操作,可以实现GPU的任意计算单元之间的灵活同步,从而使得GPU的各计算单元的协同工作。
为了使得本领域技术人员更加清楚地了解本发明的技术方案,下文将通过两个实施例,对本发明的具体实施过程进行进一步的示例性描述。
实施例1
根据前文中BN的相关内容,一个min-batch的数据规模为N*C*H*W,每个训练通道包含N*H*W的数据量,各训练通道的数据处理相互独立。
本实施例中,分配给每个训练通道的数据量较小,GPU的一个计算单元上的高速存储足以存储这些训练数据。因此,本实施例中,将每个训练通道的训练数据对应分配给一个单独的计算单元上,即:每个计算单元负责实施对一个通道中的规模为N*H*W的数据的BN处理。
也就是说,每个计算单元负责实施对一个数据规模为N*H*W的训练数据子集的BN处理。下文中,将N*H*W表示为m。
BN处理过程中,计算均值和方差时,将读取进来的输入数据В={x1,…m},缓存在计算单元的片上高速存储中,后续根据均值后方差对数据进行归一化处理时,直接使用片上高速存储中缓存的输入数据即可,无需对输入数据进行重复读取。
片上高速存储一般包括shared memory和寄存器,通常一个计算单元的sharedmemory有64KB或96KB,寄存器有256KB,由于程序运行本身会占有大量的寄存器,因此,可选的,每个计算单元使用16KB的寄存器可全部的shared memory来缓存输入数据。例如,当输入数据的数据类型为4Byte时,16KB寄存器和96KBshared memory的计算单元可以缓存(表示为N*H*W)64*16*16,64*8*8等常见的小规模输入数据。
本实施例中,每个训练通道对应的数据被放在一个单独的计算单元上进行BN处理,因此不涉及到计算单元之间的同步问题。
各计算单元的BN处理过程如下:
根据公式
Figure BDA0002983838260000081
计算整个训练通道的数据的均值,其中,m为每个channel的数据规模,即m=N*H*W,xi为训练数据子集中的第i个训练数据;
根据公式
Figure BDA0002983838260000082
计算整个训练通道的数据的的方差;
基于均值μB和方差
Figure BDA0002983838260000083
根据公式
Figure BDA0002983838260000084
实施对数据的归一化处理;
根据公式
Figure BDA0002983838260000085
对经过归一化处理后的数据进行偏移操作,其中,γ、β为偏移参数。
由于输入的训练数据均已经被缓存在GPU的计算单元的片上高速存储中,因此BN处理过程中,GPU无需再执行重复的数据读取过程,从而提升了BN的处理效率。
实施例2
与实施例1不同,本实施例中,每个通道的数据量较大,GPU的一个计算单元上的高速存储难以存储这些数据。因此,本实施例中,每个通道的训练数据被分配到多个计算单元上,即,多个计算单元的高速存储配合实现对一个训练数据子集的数据的缓存。
如前文所述,BN处理过程包括均值、方差计算,以及根据均值、方差对数据进行归一化处理两个阶段。因此,BN处理过程中,针对同一训练数据子集,各计算单元在实施均值、方差计算后需要进行同步,然后执行后序的归一化处理。
具体的,使用前文中所描述的内存栅栏操作实现各计算单元的同步。
由于,针对一个训练数据子集,方差的计算过程如下式所示:
Figure BDA0002983838260000091
其中,m为训练数据子集的数据规模,即一个训练通道包含的训练数据的规模N*H*W。
因此,如图6所示,针对一个训练数据子集,与该训练数据子集对应的各计算单元,先分别计算出分配给自己的那部分训练数据的局部和值、局部平方和值,然后在全局存储器中将各计算单元计算出的局部和值、局部平方和值通过原子操作累计在一起,从而获得该训练数据子集的总和值和总平方和值。
接着,按如下算式计算出该训练数据子集的均值或方差:
Figure BDA0002983838260000092
Figure BDA0002983838260000093
其中,Sum、squareSum分别为训练数据子集的总和值、总平方和值。
其中涉及到的具体的同步策略采用前文所述的内存栅栏操作,此处不再赘述。
与实施例1相同,本实施例中,每个计算单元同时使用寄存器和shared memory实现对数据的缓存。目前的常见的GPU至少有多达80个计算单元,至少能缓存8960KB的数据,足够容纳卷积神经网络中几乎所有的BN的输入数据规模。
上文对本发明进行了足够详细的具有一定特殊性的描述。所属领域内的普通技术人员应该理解,实施例中的描述仅仅是示例性的,在不偏离本发明的真实精神和范围的前提下做出所有改变都应该属于本发明的保护范围。本发明所要求保护的范围是由所述的权利要求书进行限定的,而不是由实施例中的上述描述来限定的。

Claims (6)

1.一种基于GPU的卷积神经网络批归一化处理方法,所述卷积神经网络包括多个训练通道,所述GPU包括多个计算单元,其特征在于,所述批归一化处理方法包括:
获取输入的训练数据集,所述训练数据集包括多个与所述多个训练通道一一对应的训练数据子集;
判断所述训练数据子集的数据规模是否超过预定阈值;
在所述训练数据子集的数据规模未超过预定阈值时,所述训练数据子集被分配并缓存至所述GPU的一个计算单元上,所述计算单元对分配到的所述训练数据子集进行批归一化;
在所述训练数据子集的数据规模超过预定阈值时,所述训练数据子集被分配并缓存至所述GPU的至少两个计算单元上,所述至少两个计算单元对分配到的所述训练数据子集进行批归一化。
2.如权利要求1所述的卷积神经网络批归一化处理方法,其特征在于,所述预定阈值与所述GPU的一个计算单元的片上高速存储的存储容量相匹配。
3.如权利要求1所述的卷积神经网络批归一化处理方法,其特征在于,所述计算单元对分配到的所述训练数据子集进行批归一化包括:
根据公式
Figure FDA0002983838250000011
计算所述训练数据子集的均值,其中,m为所述训练数据子集所包括的训练数据的数量,xi为所述训练数据子集中的第i个训练数据;
根据公式
Figure FDA0002983838250000012
计算所述训练数据子集的方差;
基于计算出的所述训练数据子集的均值和方差,根据公式
Figure FDA0002983838250000013
实施对所述训练数据子集的归一化处理;
根据公式
Figure FDA0002983838250000014
对经过归一化处理后的训练数据子集中的每个训练数据进行偏移操作,其中,γ、β为偏移参数。
4.如权利要求1所述的卷积神经网络批归一化处理方法,其特征在于,所述至少两个计算单元对分配到的所述训练数据子集进行批归一化包括:
所述至少两个计算单元中的各所述计算单元分别计算出分配到的训练数据的局部和值及局部平方和值;
基于各所述计算单元计算出的所述局部和值和所述局部平方和值,计算出所述训练数据子集的总和值和总平方和值;
根据公式
Figure FDA0002983838250000021
及公式
Figure FDA0002983838250000022
分别计算出所述训练数据子集的均值及方差,其中,m为所述训练数据子集所包括的训练数据的数量,Sum为所述训练数据子集的总和值,squareSum为所述训练数据子集的总平方和值;
基于计算出的所述训练数据子集的均值和方差,根据公式
Figure FDA0002983838250000023
实施对所述训练数据子集的归一化处理,其中,xi为所述训练数据子集中的第i个训练数据;
根据公式
Figure FDA0002983838250000024
对经过归一化处理后的训练数据子集中的每个训练数据进行偏移操作,其中,γ、β为偏移参数。
5.如权利要求4所述的卷积神经网络批归一化处理方法,其特征在于,所述基于各所述计算单元计算出的所述局部和值和所述局部平方和值,计算出所述训练数据子集的总和值和总平方和值包括:
在全局存储器中设置和值累加器和平方和值累加器,并将所述和值累加器和所述平方和值累加器的初始值置为零;
各所述计算单元通过原子操作分别将各自计算出的所述局部和值、所述局部平方和值累加至所述值累加器、所述平方和值累加器,以获得所述训练数据子集的总和值和总平方和值。
6.如权利要求4所述的卷积神经网络批归一化处理方法,其特征在于,在计算出所述训练数据子集的均值及方差后,还包括:通过插入内存栅栏实现对GPU的各所述计算单元的同步。
CN202110294597.5A 2021-03-19 2021-03-19 基于gpu的卷积神经网络批归一化处理方法 Pending CN113011563A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110294597.5A CN113011563A (zh) 2021-03-19 2021-03-19 基于gpu的卷积神经网络批归一化处理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110294597.5A CN113011563A (zh) 2021-03-19 2021-03-19 基于gpu的卷积神经网络批归一化处理方法

Publications (1)

Publication Number Publication Date
CN113011563A true CN113011563A (zh) 2021-06-22

Family

ID=76402921

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110294597.5A Pending CN113011563A (zh) 2021-03-19 2021-03-19 基于gpu的卷积神经网络批归一化处理方法

Country Status (1)

Country Link
CN (1) CN113011563A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023124654A1 (zh) * 2021-12-31 2023-07-06 Oppo广东移动通信有限公司 一种数据标准化处理方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109255439A (zh) * 2017-07-12 2019-01-22 北京图森未来科技有限公司 一种多个gpu并行的dnn模型训练方法和装置
CN110705705A (zh) * 2019-09-25 2020-01-17 浪潮电子信息产业股份有限公司 卷积神经网络模型同步训练方法、集群及可读存储介质
CN110826707A (zh) * 2018-08-10 2020-02-21 北京百度网讯科技有限公司 应用于卷积神经网络的加速方法和硬件加速器
CN110837395A (zh) * 2018-08-17 2020-02-25 北京图森未来科技有限公司 多gpu并行训练的归一化处理方法、装置和系统
CN111158907A (zh) * 2019-12-26 2020-05-15 深圳市商汤科技有限公司 数据处理方法及装置、电子设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109255439A (zh) * 2017-07-12 2019-01-22 北京图森未来科技有限公司 一种多个gpu并行的dnn模型训练方法和装置
CN110826707A (zh) * 2018-08-10 2020-02-21 北京百度网讯科技有限公司 应用于卷积神经网络的加速方法和硬件加速器
CN110837395A (zh) * 2018-08-17 2020-02-25 北京图森未来科技有限公司 多gpu并行训练的归一化处理方法、装置和系统
CN110705705A (zh) * 2019-09-25 2020-01-17 浪潮电子信息产业股份有限公司 卷积神经网络模型同步训练方法、集群及可读存储介质
CN111158907A (zh) * 2019-12-26 2020-05-15 深圳市商汤科技有限公司 数据处理方法及装置、电子设备和存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2023124654A1 (zh) * 2021-12-31 2023-07-06 Oppo广东移动通信有限公司 一种数据标准化处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
DE102012221504B4 (de) Mehrniveau-Anweisung-Zwischenspeicher-Zuvor-Holen
CN108205702B (zh) 一种多输入多输出矩阵卷积的并行处理方法
Boyer et al. Solving knapsack problems on GPU
US8055856B2 (en) Lock mechanism to enable atomic updates to shared memory
US20230244537A1 (en) Efficient gpu resource allocation optimization method and system
CN110333827B (zh) 一种数据加载装置和数据加载方法
US20230049471A1 (en) Method and apparatus for operating image data
DE102020112826A1 (de) Verfahren zur effizienten durchführung von datenreduktionen in parallelverarbeitungseinheiten
CN113011563A (zh) 基于gpu的卷积神经网络批归一化处理方法
US3277449A (en) Orthogonal computer
CN102855122B (zh) 用于处理数据的装置和方法
CN111797985B (zh) 一种基于gpu的卷积运算内存访问优化方法
US9804826B2 (en) Parallelization of random number generators
JP2021128752A (ja) インメモリコンピューティングに対するデータ配置のための方法及びその方法が適用されたメモリモジュール
CN110119375B (zh) 一种将多个标量核链接为单核向量处理阵列的控制方法
CN110580675A (zh) 一种适用于gpu硬件的矩阵存储与计算方法
CN114911619A (zh) 一种用于仿真系统的基于gpu的中小型稠密矩阵的批量并行lu分解方法
Honda et al. A warp-synchronous implementation for multiple-length multiplication on the GPU
US20230070827A1 (en) Accelerating computations in a processor
CN112668639A (zh) 一种模型训练方法、装置、服务器及存储介质
CN110689475A (zh) 一种图像数据处理方法、系统、电子设备及存储介质
CN111857982B (zh) 一种数据处理方法及其装置
CN112837205B (zh) 一种图形处理器上基于延迟修正的批量矩阵求逆方法
Lei et al. High-Performance Batched LU Decomposition on GPU
JP6270765B2 (ja) 並列シミュレーション装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20210622

RJ01 Rejection of invention patent application after publication