CN113869495A - 神经网络卷积权重layout优化的方法、装置、设备及可读介质 - Google Patents
神经网络卷积权重layout优化的方法、装置、设备及可读介质 Download PDFInfo
- Publication number
- CN113869495A CN113869495A CN202111166462.7A CN202111166462A CN113869495A CN 113869495 A CN113869495 A CN 113869495A CN 202111166462 A CN202111166462 A CN 202111166462A CN 113869495 A CN113869495 A CN 113869495A
- Authority
- CN
- China
- Prior art keywords
- data
- output channel
- group
- sequence
- weight
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 20
- 238000004364 calculation method Methods 0.000 claims abstract description 47
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 21
- 239000011159 matrix material Substances 0.000 claims abstract description 12
- 238000003491 array Methods 0.000 claims description 29
- 238000002372 labelling Methods 0.000 claims description 16
- 238000005457 optimization Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 abstract description 11
- 230000000694 effects Effects 0.000 abstract description 7
- 230000004927 fusion Effects 0.000 abstract description 5
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/06—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Complex Calculations (AREA)
- Machine Translation (AREA)
Abstract
本发明提供了一种神经网络卷积的权重layout优化的方法、装置、设备及可读介质,该方法包括:初始化累加器,由全局加载计算数据和权重数据到共享内存中后将计算数据加载到寄存器中;将权重数据中的输出通道的维度按照预设算法进行优化;使用优化后的权重进行矩阵乘计算;将在累加器中计算后的数据写入全局内存中。通过使用本发明的方案,能够使得数据在加载的时候做到全局内存的融合读写,又能避免累加器到全局内存时引入的共享内存数据读取过程,从而优化实际卷积计算时的流程,来达到神经网络卷积计算加速的效果。
Description
技术领域
本发明涉及计算机领域,并且更具体地涉及一种神经网络卷积的权重layout优化的方法、装置、设备及可读介质。
背景技术
随着互联网、大数据、云计算等技术的快速发展,人工智能(ArtificialIntelligence,简称AI)发展突飞猛进,在语音识别、图像识别、智能控制、复杂计算等各大领域涌现出一系列应用产品,同时也在各行各业得到的广泛的应用,而图像处理一直是人工智能领域的研究热点,比如汽车自动驾驶,通过实时的路况图像信息采集以及处理,可以直接控制汽车在路上的行驶行为;在人脸识别方面,通过对比信息库中数据,可以对人脸图像的面部特征进行识别从而辨认身份,而这在社会安防方面已经发挥了重要的作用。
目前对人工智能图像识别与分类方面的研究主要有两方面,一方面是如何能够提高图像识别过程中的准确率,相关学者提出了各种卷积神经网络,比如Resnet50卷积神经网络模型,通过引入残差结构大大提高图像识别的精度;另一方面是如何提高图像识别过程的速度,在这一方面,有学者提出了各种关于卷积计算的高效实现方法,比如ima2col、FFT、Winograd算法等,其中Winograd算法是基于最小滤波算法提出的一种快速卷积算法,它可以通过降低卷积的计算复杂度从而提升卷积计算效率,适用于小尺寸的卷积核进行卷积运算,同时相关研究人员在研究快速算法的同时将不同的网络结构应用在不同的计算设备上,比如FPGA、GPU等设备,GPU由于其特有的高并行、高带宽等优势,在图像识别的推理与训练提速方面发挥了重要的作用,而在Nvidia公司推出GPU上通过CUDA(Compute UnifiedDevice Architecture)实现的Tensorcore技术后,相比较不使用Tensorcore,对训练过程的处理速度可以提高三倍以上,因此通过Tensorcore技术实现性能优异卷积神经网络的相关算法程序可以大大提高图像识别与分类的速度。
在GPU上进行神经网络卷积计算时,原始数据会存放在显存中,也就是全局内存中,随后数据会被加载进kernel中的共享内存中,然后计算线程会从共享内存中读取数据到寄存器中,在寄存器中进行实际的计算。数据在共享内存加载到寄存器的速度比数据在全局内存中加载到寄存器的速度快很多,所以在计算时对于重复使用的数据会将数据先加载到共享内存,然后线程再由共享内存中读取数据进行实际的计算,但是共享内存的容量比较小,需要合理的进行使用。
发明内容
有鉴于此,本发明实施例的目的在于提出一种神经网络卷积的权重layout优化的方法、装置、设备及可读介质,通过使用本发明的技术方案,能够使得数据在加载的时候做到全局内存的融合读写,又能避免累加器到全局内存时引入的共享内存数据读取过程,从而优化实际卷积计算时的流程,来达到神经网络卷积计算加速的效果。
基于上述目的,本发明的实施例的一个方面提供了一种神经网络卷积的权重layout优化的方法,包括以下步骤:
初始化累加器,由全局加载计算数据和权重数据到共享内存中后将计算数据加载到寄存器中;
将权重数据中的输出通道的维度按照预设算法进行优化;
使用优化后的权重进行矩阵乘计算;
将在累加器中计算后的数据写入全局内存中。
根据本发明的一个实施例,将权重数据中的输出通道的维度按照预设算法进行优化包括:
获取权重数据中的输出通道K的值;
将输出通道K的值以32为单位划分为若干大组,每个大组按顺序进行排列;
将每个大组中的值以8为单位按顺序划分成4个小组,并对每个小组进行标号;
将每个小组中以2为单位按顺序划分成4个数组,并对每个数组进行标号;
将每个小组中标号相同的数组按小组标号的顺序放在一起形成新的4个小组;
将得到的全部新的小组按顺序排列得到优化后的输出通道K。
根据本发明的一个实施例,权重数据包括输出通道K、卷积核尺寸中的长R、卷积核尺寸中的宽S和输入通道C。
根据本发明的一个实施例,输出通道K的值为32的整数倍。
本发明的实施例的另一个方面,还提供了一种神经网络卷积的权重layout优化的装置,装置包括:
加载模块,加载模块配置为初始化累加器,由全局加载计算数据和权重数据到共享内存中后将计算数据加载到寄存器中;
优化模块,优化模块配置为将权重数据中的输出通道的维度按照预设算法进行优化;
计算模块,计算模块配置为使用优化后的权重进行矩阵乘计算;
存储模块,存储模块配置为将在累加器中计算后的数据写入全局内存中。
根据本发明的一个实施例,优化模块还配置为:
获取权重数据中的输出通道K的值;
将输出通道K的值以32为单位划分为若干大组,每个大组按顺序进行排列;
将每个大组中的值以8为单位按顺序划分成4个小组,并对每个小组进行标号;
将每个小组中以2为单位按顺序划分成4个数组,并对每个数组进行标号;
将每个小组中标号相同的数组按小组标号的顺序放在一起形成新的4个小组;
将得到的全部新的小组按顺序排列得到优化后的输出通道K。
根据本发明的一个实施例,权重数据包括输出通道K、卷积核尺寸中的长R、卷积核尺寸中的宽S和输入通道C。
根据本发明的一个实施例,输出通道K的值为32的整数倍。
本发明的实施例的另一个方面,还提供了一种计算机设备,该计算机设备包括:
至少一个处理器;以及
存储器,存储器存储有可在处理器上运行的计算机指令,指令由处理器执行时实现上述任意一项方法的步骤。
本发明的实施例的另一个方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时实现上述任意一项方法的步骤。
本发明具有以下有益技术效果:本发明实施例提供的神经网络卷积的权重layout优化的方法,通过初始化累加器,由全局加载计算数据和权重数据到共享内存中后将计算数据加载到寄存器中;将权重数据中的输出通道的维度按照预设算法进行优化;使用优化后的权重进行矩阵乘计算;将在累加器中计算后的数据写入全局内存中的技术方案,能够使得数据在加载的时候做到全局内存的融合读写,又能避免累加器到全局内存时引入的共享内存数据读取过程,从而优化实际卷积计算时的流程,来达到神经网络卷积计算加速的效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为根据本发明一个实施例的神经网络卷积的权重layout优化的方法的示意性流程图;
图2为根据本发明一个实施例的神经网络卷积的权重layout优化的装置的示意图;
图3为根据本发明一个实施例的计算机设备的示意图;
图4为根据本发明一个实施例的计算机可读存储介质的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
基于上述目的,本发明的实施例的第一个方面,提出了一种神经网络卷积的权重layout优化的方法的一个实施例。图1示出的是该方法的示意性流程图。
如图1中所示,该方法可以包括以下步骤:
S1初始化累加器,由全局加载计算数据和权重数据到共享内存中后将计算数据加载到寄存器中。
S2将权重数据中的输出通道的维度按照预设算法进行优化。
权重数据包括输出通道K、卷积核尺寸中的长R、卷积核尺寸中的宽S和输入通道C,输出通道K的值为32的整数倍。对输出通道K进行优化时,先获取权重数据中的输出通道K的值,将输出通道K的值以32为单位划分为若干大组,每个大组按顺序进行排列,为了方便描述,以K为32举例,此时大组只有一个,即由0-31组成的大组,将大组中的值以8为单位按顺序划分成4个小组,并对每个小组进行标号,即第一小组为0-7,第二小组为8-15,第三小组为16-23,第四小组为24-31,然后将每个小组中以2为单位按顺序划分成4个数组,并对每个数组进行标号,以第一小组和第二小组为例,第一小组中的第一数组为0和1,第二数组为2和3,第三数组为4和5,第四数组为6和7,第二小组中的第一数组为8和9,第二数组为10和11,第三数组为12和13,第四数组为14和15,第三小组和第四小组以同样的方式划分数组,然后将每个小组中标号相同的数组按小组标号的顺序放在一起形成新的4个小组,即将第一小组、第二小组、第三小组和第四小组中的第一数组按顺序放在一起形成新的小组,即0,1,8,9,16,17,24,25为第一个新的小组,将第一小组、第二小组、第三小组和第四小组中的第二数组按顺序放在一起形成新的小组,即2,3,10,11,18,19,26,27为第二个新的小组,依次类推,最后将得到的全部新的小组按顺序排列得到优化后的输出通道K,即优化后的输出通道K为0,1,8,9,16,17,24,25,2,3,10,11,18,19,26,27……。
S3使用优化后的权重进行矩阵乘计算。
使用优化后的权重通过Tensorcore进行卷积计算后每个线程中全局内存中数据的顺序是连续的,并且线程与线程的数据也是连续的。
S4将在累加器中计算后的数据写入全局内存中。
采用普通权重layout时对应的计算的数据在通过Tensorcore计算完成后,需要经过累加器->共享内存->寄存器->全局内存,而通过本专利优化后的权重layout,计算流程会缩减为累加器->全局内存,这样做可以避免引入共享内存的使用,从而避免内存访问带来的延迟增加。
通过本发明的技术方案,能够使得数据在加载的时候做到全局内存的融合读写,又能避免累加器到全局内存时引入的共享内存数据读取过程,从而优化实际卷积计算时的流程,来达到神经网络卷积计算加速的效果。
在本发明的一个优选实施例中,将权重数据中的输出通道的维度按照预设算法进行优化包括:
获取权重数据中的输出通道K的值;
将输出通道K的值以32为单位划分为若干大组,每个大组按顺序进行排列;
将每个大组中的值以8为单位按顺序划分成4个小组,并对每个小组进行标号;
将每个小组中以2为单位按顺序划分成4个数组,并对每个数组进行标号;
将每个小组中标号相同的数组按小组标号的顺序放在一起形成新的4个小组;
将得到的全部新的小组按顺序排列得到优化后的输出通道K。
以权重数据[K,R,S,C]=[32,R,S,32]为例,其中R与S可以表示1*1或者3*3卷积的权重。
在以往的权重变化中,都是对C这个输入通道的维度进行变化,而本专利对K这个输出通道的维度进行变化,以达到累加其中每个线程持有的数据,对应到全局内存中是至少8个数据连续的。
表1:K维度连续的权重的layout
从上表1中可以看出,在现有技术中K为32的情况下进行计算后,线程0存有的全局内存的数据为0-1-8-9-16-17-24-25,这样的情况下,当数据写回全局内存的时候在全局内存中不是连续的,就会导致读写效率,而如果每个线程只写回两个int8的数据,0-3线程可以保证内存连续,4-7线程也会保证内存连续,但是0-3线程与4-7线程之间就没有办法保证内存的连续性,结果也会导致数据写回的性能下降。
表2:优化后的K维度的权重layout
从上表2中可以看出,对权重的K维度进行重新排列,这样数据在进行计算的时候便进行了重排列,带来的变化是累加器中的计算结果,针对一个线程中的8个数据是连续的,比如0线程持有的数据是0-1-2-3-4-5-6-7,0-3线程持有的0-31一共32个数据,一方面这样一个线程可以向量化8个int8的数据写回全局内存,实现较大的带宽,另一方面,0-3线程与4-7线程之间持有的数据是连续的,进一步扩展到32个线程持有的数据是连续的,这样线程之间可以实现数据的融合写回。
更改权重的layout的程序示意如下:
程序中weight_optimized为优化之后的权重矩阵,weight_original为优化之前的权重矩阵,通过上述程序便可以将权重的layout进行变换。
为了方便描述,如下表3所示,以K为32举例,此时大组只有一个,即由0-31连续数组组成的大组,将大组中的值以8为单位按顺序划分成4个小组,并对每个小组进行标号,即第一小组为0-7,第二小组为8-15,第三小组为16-23,第四小组为24-31,然后将每个小组中以2为单位按顺序划分成4个数组,并对每个数组进行标号,以第一小组和第二小组为例,第一小组中的第一数组为0和1,第二数组为2和3,第三数组为4和5,第四数组为6和7,第二小组中的第一数组为8和9,第二数组为10和11,第三数组为12和13,第四数组为14和15,第三小组和第四小组以同样的方式划分数组。如下表4所示,然后将每个小组中标号相同的数组按小组标号的顺序放在一起形成新的4个小组,即将第一小组、第二小组、第三小组和第四小组中的第一数组按顺序放在一起形成新的小组,即0,1,8,9,16,17,24,25为第一个新的小组,将第一小组、第二小组、第三小组和第四小组中的第二数组按顺序放在一起形成新的小组,即2,3,10,11,18,19,26,27为第二个新的小组,依次类推,最后将得到的全部新的小组按顺序排列得到优化后的输出通道K,即优化后的输出通道K为0,1,8,9,16,17,24,25,2,3,10,11,18,19,26,27……,即为实际的线程中持有的累加器中的排列顺序。
表3:优化前的K的排列顺序
表4:优化后的K的排列顺序
通过优化后的K计算后,在线程0中持有的是0-7的结果,线程1中持有的是8-15的计算结果,线程2中持有的是16-23的计算结果,线程3中持有的是24-31的计算结果,这4个线程一共持有的是连续的32个数,可以直接写回全局内存,通过修改权重的o方向的排列,可以做到寄存器中的数据不经过share memory的重排列,然后可以直接连续的将数据写回全局。
在本发明的一个优选实施例中,权重数据包括输出通道K、卷积核尺寸中的长R、卷积核尺寸中的宽S和输入通道C。
在本发明的一个优选实施例中,输出通道K的值为32的整数倍。
通过本发明的技术方案,能够使得数据在加载的时候做到全局内存的融合读写,又能避免累加器到全局内存时引入的共享内存数据读取过程,从而优化实际卷积计算时的流程,来达到神经网络卷积计算加速的效果。
需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,上述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存取存储器(Random AccessMemory,RAM)等。上述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。
此外,根据本发明实施例公开的方法还可以被实现为由CPU执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被CPU执行时,执行本发明实施例公开的方法中限定的上述功能。
基于上述目的,本发明的实施例的第二个方面,提出了一种神经网络卷积的权重layout优化的装置,如图2所示,装置200包括:
加载模块201,加载模块201配置为初始化累加器,由全局加载计算数据和权重数据到共享内存中后将计算数据加载到寄存器中;
优化模块202,优化模块202配置为将权重数据中的输出通道的维度按照预设算法进行优化;
计算模块203,计算模块203配置为使用优化后的权重进行矩阵乘计算;
存储模块204,存储模块204配置为将在累加器中计算后的数据写入全局内存中。
在本发明的一个优选实施例中,优化模块202还配置为:
获取权重数据中的输出通道K的值;
将输出通道K的值以32为单位划分为若干大组,每个大组按顺序进行排列;
将每个大组中的值以8为单位按顺序划分成4个小组,并对每个小组进行标号;
将每个小组中以2为单位按顺序划分成4个数组,并对每个数组进行标号;
将每个小组中标号相同的数组按小组标号的顺序放在一起形成新的4个小组;
将得到的全部新的小组按顺序排列得到优化后的输出通道K。
在本发明的一个优选实施例中,权重数据包括输出通道K、卷积核尺寸中的长R、卷积核尺寸中的宽S和输入通道C。
在本发明的一个优选实施例中,输出通道K的值为32的整数倍。
基于上述目的,本发明实施例的第三个方面,提出了一种计算机设备。图3示出的是本发明提供的计算机设备的实施例的示意图。如图3所示,本发明实施例包括如下装置:至少一个处理器21;以及存储器22,存储器22存储有可在处理器上运行的计算机指令23,指令由处理器执行时实现以下方法:
初始化累加器,由全局加载计算数据和权重数据到共享内存中后将计算数据加载到寄存器中;
将权重数据中的输出通道的维度按照预设算法进行优化;
使用优化后的权重进行矩阵乘计算;
将在累加器中计算后的数据写入全局内存中。
在本发明的一个优选实施例中,将权重数据中的输出通道的维度按照预设算法进行优化包括:
获取权重数据中的输出通道K的值;
将输出通道K的值以32为单位划分为若干大组,每个大组按顺序进行排列;
将每个大组中的值以8为单位按顺序划分成4个小组,并对每个小组进行标号;
将每个小组中以2为单位按顺序划分成4个数组,并对每个数组进行标号;
将每个小组中标号相同的数组按小组标号的顺序放在一起形成新的4个小组;
将得到的全部新的小组按顺序排列得到优化后的输出通道K。
在本发明的一个优选实施例中,权重数据包括输出通道K、卷积核尺寸中的长R、卷积核尺寸中的宽S和输入通道C。
在本发明的一个优选实施例中,输出通道K的值为32的整数倍。
基于上述目的,本发明实施例的第四个方面,提出了一种计算机可读存储介质。图4示出的是本发明提供的计算机可读存储介质的实施例的示意图。如图4所示,计算机可读存储介质31存储有被处理器执行时执行如下方法的计算机程序32:
初始化累加器,由全局加载计算数据和权重数据到共享内存中后将计算数据加载到寄存器中;
将权重数据中的输出通道的维度按照预设算法进行优化;
使用优化后的权重进行矩阵乘计算;
将在累加器中计算后的数据写入全局内存中。
在本发明的一个优选实施例中,将权重数据中的输出通道的维度按照预设算法进行优化包括:
获取权重数据中的输出通道K的值;
将输出通道K的值以32为单位划分为若干大组,每个大组按顺序进行排列;
将每个大组中的值以8为单位按顺序划分成4个小组,并对每个小组进行标号;
将每个小组中以2为单位按顺序划分成4个数组,并对每个数组进行标号;
将每个小组中标号相同的数组按小组标号的顺序放在一起形成新的4个小组;
将得到的全部新的小组按顺序排列得到优化后的输出通道K。
在本发明的一个优选实施例中,权重数据包括输出通道K、卷积核尺寸中的长R、卷积核尺寸中的宽S和输入通道C。
在本发明的一个优选实施例中,输出通道K的值为32的整数倍。
此外,根据本发明实施例公开的方法还可以被实现为由处理器执行的计算机程序,该计算机程序可以存储在计算机可读存储介质中。在该计算机程序被处理器执行时,执行本发明实施例公开的方法中限定的上述功能。
此外,上述方法步骤以及系统单元也可以利用控制器以及用于存储使得控制器实现上述步骤或单元功能的计算机程序的计算机可读存储介质实现。
本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
在一个或多个示例性设计中,功能可以在硬件、软件、固件或其任意组合中实现。如果在软件中实现,则可以将功能作为一个或多个指令或代码存储在计算机可读介质上或通过计算机可读介质来传送。计算机可读介质包括计算机存储介质和通信介质,该通信介质包括有助于将计算机程序从一个位置传送到另一个位置的任何介质。存储介质可以是能够被通用或专用计算机访问的任何可用介质。作为例子而非限制性的,该计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储设备、磁盘存储设备或其它磁性存储设备,或者是可以用于携带或存储形式为指令或数据结构的所需程序代码并且能够被通用或专用计算机或者通用或专用处理器访问的任何其它介质。此外,任何连接都可以适当地称为计算机可读介质。例如,如果使用同轴线缆、光纤线缆、双绞线、数字用户线路(DSL)或诸如红外线、无线电和微波的无线技术来从网站、服务器或其它远程源发送软件,则上述同轴线缆、光纤线缆、双绞线、DSL或诸如红外线、无线电和微波的无线技术均包括在介质的定义。如这里所使用的,磁盘和光盘包括压缩盘(CD)、激光盘、光盘、数字多功能盘(DVD)、软盘、蓝光盘,其中磁盘通常磁性地再现数据,而光盘利用激光光学地再现数据。上述内容的组合也应当包括在计算机可读介质的范围内。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种神经网络卷积的权重layout优化的方法,其特征在于,包括以下步骤:
初始化累加器,由全局加载计算数据和权重数据到共享内存中后将计算数据加载到寄存器中;
将权重数据中的输出通道的维度按照预设算法进行优化;
使用优化后的权重进行矩阵乘计算;
将在累加器中计算后的数据写入全局内存中。
2.根据权利要求1所述的方法,其特征在于,将权重数据中的输出通道的维度按照预设算法进行优化包括:
获取权重数据中的输出通道K的值;
将所述输出通道K的值以32为单位划分为若干大组,每个大组按顺序进行排列;
将每个大组中的值以8为单位按顺序划分成4个小组,并对每个小组进行标号;
将每个小组中以2为单位按顺序划分成4个数组,并对每个数组进行标号;
将每个小组中标号相同的数组按小组标号的顺序放在一起形成新的4个小组;
将得到的全部新的小组按顺序排列得到优化后的输出通道K。
3.根据权利要求1所述的方法,其特征在于,所述权重数据包括输出通道K、卷积核尺寸中的长R、卷积核尺寸中的宽S和输入通道C。
4.根据权利要求3所述的方法,其特征在于,所述输出通道K的值为32的整数倍。
5.一种神经网络卷积的权重layout优化的装置,其特征在于,所述装置包括:
加载模块,所述加载模块配置为初始化累加器,由全局加载计算数据和权重数据到共享内存中后将计算数据加载到寄存器中;
优化模块,所述优化模块配置为将权重数据中的输出通道的维度按照预设算法进行优化;
计算模块,所述计算模块配置为使用优化后的权重进行矩阵乘计算;
存储模块,所述存储模块配置为将在累加器中计算后的数据写入全局内存中。
6.根据权利要求5所述的装置,其特征在于,所述优化模块还配置为:
获取权重数据中的输出通道K的值;
将所述输出通道K的值以32为单位划分为若干大组,每个大组按顺序进行排列;
将每个大组中的值以8为单位按顺序划分成4个小组,并对每个小组进行标号;
将每个小组中以2为单位按顺序划分成4个数组,并对每个数组进行标号;
将每个小组中标号相同的数组按小组标号的顺序放在一起形成新的4个小组;
将得到的全部新的小组按顺序排列得到优化后的输出通道K。
7.根据权利要求5所述的装置,其特征在于,所述权重数据包括输出通道K、卷积核尺寸中的长R、卷积核尺寸中的宽S和输入通道C。
8.根据权利要求7所述的装置,其特征在于,所述输出通道K的值为32的整数倍。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-4任意一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-4任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111166462.7A CN113869495B (zh) | 2021-09-30 | 2021-09-30 | 神经网络卷积权重layout优化的方法、装置、设备及可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111166462.7A CN113869495B (zh) | 2021-09-30 | 2021-09-30 | 神经网络卷积权重layout优化的方法、装置、设备及可读介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113869495A true CN113869495A (zh) | 2021-12-31 |
CN113869495B CN113869495B (zh) | 2024-02-06 |
Family
ID=79001631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111166462.7A Active CN113869495B (zh) | 2021-09-30 | 2021-09-30 | 神经网络卷积权重layout优化的方法、装置、设备及可读介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113869495B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114281554A (zh) * | 2022-03-08 | 2022-04-05 | 之江实验室 | 用于3d图像处理的3d-cnn加速方法及装置、电子设备 |
CN116088773A (zh) * | 2023-04-11 | 2023-05-09 | 南京砺算科技有限公司 | 一种基于隐式gemm卷积的数据加载方法、装置、设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109034383A (zh) * | 2017-10-30 | 2018-12-18 | 上海寒武纪信息科技有限公司 | 神经网络处理器及使用处理器执行矩阵相乘指令的方法 |
CN111539526A (zh) * | 2020-04-24 | 2020-08-14 | 苏州浪潮智能科技有限公司 | 一种神经网络卷积的方法和设备 |
CN112215345A (zh) * | 2020-10-15 | 2021-01-12 | 苏州浪潮智能科技有限公司 | 一种基于Tensorcore的卷积神经网络运转方法和装置 |
CN112488296A (zh) * | 2020-11-25 | 2021-03-12 | 苏州浪潮智能科技有限公司 | 基于硬件环境的数据操作方法、装置、设备及存储介质 |
-
2021
- 2021-09-30 CN CN202111166462.7A patent/CN113869495B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109034383A (zh) * | 2017-10-30 | 2018-12-18 | 上海寒武纪信息科技有限公司 | 神经网络处理器及使用处理器执行矩阵相乘指令的方法 |
CN111539526A (zh) * | 2020-04-24 | 2020-08-14 | 苏州浪潮智能科技有限公司 | 一种神经网络卷积的方法和设备 |
CN112215345A (zh) * | 2020-10-15 | 2021-01-12 | 苏州浪潮智能科技有限公司 | 一种基于Tensorcore的卷积神经网络运转方法和装置 |
CN112488296A (zh) * | 2020-11-25 | 2021-03-12 | 苏州浪潮智能科技有限公司 | 基于硬件环境的数据操作方法、装置、设备及存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114281554A (zh) * | 2022-03-08 | 2022-04-05 | 之江实验室 | 用于3d图像处理的3d-cnn加速方法及装置、电子设备 |
CN114281554B (zh) * | 2022-03-08 | 2022-06-17 | 之江实验室 | 用于3d图像处理的3d-cnn加速方法及装置、电子设备 |
CN116088773A (zh) * | 2023-04-11 | 2023-05-09 | 南京砺算科技有限公司 | 一种基于隐式gemm卷积的数据加载方法、装置、设备及介质 |
CN116088773B (zh) * | 2023-04-11 | 2023-06-16 | 南京砺算科技有限公司 | 一种基于隐式gemm卷积的数据加载方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113869495B (zh) | 2024-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112840356B (zh) | 运算加速器、处理方法及相关设备 | |
CN113869495A (zh) | 神经网络卷积权重layout优化的方法、装置、设备及可读介质 | |
CN110222818B (zh) | 一种用于卷积神经网络数据存储的多bank行列交织读写方法 | |
US20230289230A1 (en) | Method and apparatus for accelerating convolutional neural network | |
US11763131B1 (en) | Systems and methods for reducing power consumption of convolution operations for artificial neural networks | |
CN111311599B (zh) | 图像处理方法、装置、电子设备和存储介质 | |
CN109993293B (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
CN105912476A (zh) | 片上重复寻址的方法及装置 | |
US20230273829A1 (en) | Dilated convolution acceleration calculation method and apparatus | |
CN112668708A (zh) | 一种提高数据利用率的卷积运算装置 | |
US11599181B1 (en) | Systems and methods for reducing power consumption of convolution operations of artificial neural networks | |
CN113792621A (zh) | 一种基于fpga的目标检测加速器设计方法 | |
CN112200310B (zh) | 智能处理器、数据处理方法及存储介质 | |
CN113469354A (zh) | 受存储器限制的神经网络训练 | |
CN113313247A (zh) | 基于数据流架构的稀疏神经网络的运算方法 | |
US11748100B2 (en) | Processing in memory methods for convolutional operations | |
KR102372869B1 (ko) | 인공 신경망을 위한 행렬 연산기 및 행렬 연산 방법 | |
CN114254740A (zh) | 卷积神经网络加速计算方法、计算系统、芯片及接收机 | |
US20220350514A1 (en) | Memory mapping of activations for convolutional neural network executions | |
CN113888390A (zh) | 特征图处理方法、装置、电子设备和计算机可读介质 | |
CN112905954A (zh) | 一种利用fpga bram的cnn模型卷积运算加速计算方法 | |
CN114595811A (zh) | 用于执行深度学习操作的方法和设备 | |
CN111506522A (zh) | 数据处理设备及方法 | |
Ali et al. | A New Merging Numerous Small Files Approach for Hadoop Distributed File System | |
Lv et al. | Compression of YOLOv3-spp Model Based on Channel and Layer Pruning |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |