CN111461311A - 基于众核处理器的卷积神经网络运算加速方法及装置 - Google Patents
基于众核处理器的卷积神经网络运算加速方法及装置 Download PDFInfo
- Publication number
- CN111461311A CN111461311A CN202010223385.3A CN202010223385A CN111461311A CN 111461311 A CN111461311 A CN 111461311A CN 202010223385 A CN202010223385 A CN 202010223385A CN 111461311 A CN111461311 A CN 111461311A
- Authority
- CN
- China
- Prior art keywords
- tensor
- core
- convolution
- matrix
- input
- 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
- 238000013527 convolutional neural network Methods 0.000 title claims abstract description 28
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000001133 acceleration Effects 0.000 title claims description 12
- 239000011159 matrix material Substances 0.000 claims abstract description 67
- 238000004364 calculation method Methods 0.000 claims abstract description 21
- 230000005540 biological transmission Effects 0.000 claims description 45
- 230000006854 communication Effects 0.000 claims description 25
- 238000004891 communication Methods 0.000 claims description 24
- 238000012545 processing Methods 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 8
- 125000004122 cyclic group Chemical group 0.000 claims description 6
- 230000007246 mechanism Effects 0.000 claims description 5
- 230000017105 transposition Effects 0.000 claims description 4
- 238000001914 filtration Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 4
- 238000013528 artificial neural network Methods 0.000 abstract description 3
- 230000005573 mixed-mode transmission Effects 0.000 abstract description 3
- 238000005457 optimization Methods 0.000 description 7
- 230000008707 rearrangement Effects 0.000 description 4
- 230000003139 buffering effect Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000001131 transforming effect Effects 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/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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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
Abstract
Description
技术领域
本发明属于数据处理技术领域,具体地涉及一种基于众核处理器的卷积神经网络运算加速方法及装置。
背景技术
卷积神经网络是深度神经网络的一种常见形式,由一个输入层,一个输出层和多个隐藏层组成,这些隐藏层包括卷积层,RELU层,激活函数层,池化层,全连接层与归一化层等。在卷积神经网络中,卷积层与池化层一般会取若干个,卷积层与池化层交替设置,生成输入数据的高级抽象,称为特征图(featur map),最后通过分类相关层如全连接层等对特征图进行处理完成输入数据的分类。卷积神经网络可以通过采用非常深的层次结构来实现卓越的性能,但深层的卷积神经网络需求极大的计算能力。
在大多数的卷积神经网络中,卷积层的运算占据了总计算量的最大部分(占比90%以上)。卷积层的主要运算为高维卷积,卷积运算的输入是两个四维的张量:代表输入数据,代表卷积滤波器。输出也是一个四维的张量:N代表一个批次(mini-batch)输入的图片数量,C代表输入的特征图个数,H与W分别代表输入图片的高度与宽度,K代表输出的特征图个数,R与S分别代表卷积核的高度与宽度,P与Q分别代表输出图片的高度与宽度。卷积运算的算法公式可以表示如下:
当前在不同硬件平台上对卷积神经网络进行高效处理有两种不同的策略:
一种是基于时域的方法,通过对数据进行变换,将卷积运算映射到矩阵乘法,然后使用较为成熟的矩阵运算加速库(如OPEN-BLAS,cuDNN)进行运算加速。
另一种是基于频域的方法,利用空间域的卷积等于频率域的乘积的卷积原理,对卷积核与输入特征矩阵进行类傅里叶变换,然后在频率域中进行乘法运算,最后对所产生的结果应用逆傅里叶变换恢复空间域中的输出特征映射。
众核处理器,比如SW26010异构众核处理器,其是由上海高性能集成电路设计中心通过自主技术研制,集成了4个运算核组共260个运算核心,核组间支持Cache一致性,通过片上网络互联。每个核组包含1个运算控制核心(主核),1个8x8的运算核心阵列(从核阵列),一个内存控制器(MC)。4个核组的物理空间统一编址,运算控制核心和运算核心均可以通过内存控制器访问芯片上的所有主存空间。SW26010的主核(MPE)是一个64位的RISC核心,拥有一个32kb的L1指令Cache、一个32kb的L1数据Cache和一个256kb的L2cache,同时支持256位的向量运算。它的从核也是一个64位的RISC核心,设计目标是实现计算能力的凝集,同时最小化微架构的复杂性。从核阵列按照8x8的结构排列,采用网络互连、支持低延迟的寄存器通信,每个从核拥有16kb的L1指令Cache和一个64kb的便笺式存储器(SPM),并且同样支持256位的向量运算。从核对主存有两种模式的访问:DMA连续传输访存模式,用于细粒度的数据访问的全局读入/读出(gld/gst),带宽极低;DMA跨步传输访存模式,用于粗粒度数据访问的DMA方式,将主存中的连续数据块有效的传输到SPM,带宽较高,也是SPM与主存间的主要通信方式。在8x8的从核阵列上,同行或者同列的两个从核间可以通过寄存器通信的方式高速传输数据。寄存器通信不仅支持同行同列从核之间点对点的通信,同时支持一对多的行列广播通信,寄存器通信的延迟极小,利用寄存器通信可以实现从核之间高效的数据共享。
SW26010作为新兴的硬件平台,在卷积神经网络的高效处理方面的工作较少,清华大学开发了基于SW26010的深度学习框架swCaffe与深度学习加速库swDNN。但是对于卷积神经网络的高效处理,仍然有可继续优化的空间,探索卷积神经网络与SW26010的结合,进一步加速卷积神经网络在SW26010上的处理过程是有价值的工作。
发明内容
针对上述存在的技术问题,本发明提出了一种基于众核处理器的卷积神经网络运算加速方法,使用基于卷积滤波器复用的思想重排卷积循环,在循环内采用DMA混合模式传输,提升带宽,减少访存开销,平衡访存与计算时间,同时使用寄存器通信,异步DMA传输双缓冲方案,指令流水线重排等优化方案,加速卷积神经网络运算过程,优化性能。
本发明的技术方案是:
一种基于众核处理器的卷积神经网络运算加速方法,包括以下步骤:
S01:预先将卷积运算的输入图片处理得到输入张量及卷积滤波器张量其中,N为一个批次输入的图片数量,C为输入的特征图个数,H与W分别为输入图片的高度与宽度,K为输出的特征图个数,R与S分别为卷积核的高度与宽度;
S03:获取转置输入张量Dt的N*C大小的子矩阵d,转置卷积滤波器张量Ft的K*C大小的子矩阵f,并传输至众核处理器的从核阵列中进行矩阵相乘运算;
S05:基于卷积滤波器复用思想的数据换入换出策略,根据卷积运算的算法公式重复步骤S03与S04,对Ot进行更新;
优选的技术方案中,所述步骤S03中,在进行数据传输时,使用主从核间异步DMA数据传输机制以及计算与访存重叠的双缓冲策略,所述双缓冲策略包括:
S31:当进行多轮次的DMA读写操作时,在从核阵列的局部存储空间上申请2倍于通信数据大小的存储空间,所述存储空间用于存储两份同样大小且互为对方缓冲的数据;
S32:从核阵列在子矩阵f与d进行相乘运算的同时,从主核预取下次计算所需的子矩阵f与d,同时将上一次运算所得的子矩阵o写回主核。
优选的技术方案中,所述步骤S03中进行矩阵相乘运算时,对输入输出数据按8x8的阵列结构进行分块,采用矩阵分块乘法,同时从核间数据传输通信使用寄存器进行通信。
优选的技术方案中,所述步骤S05中基于卷积滤波器复用思想的数据换入换出策略,包括以下步骤:
根据卷积运算的算法公式转换得到循环次序,将卷积滤波器张量的子矩阵f始终保持在SPM中,使用DMA连续传输访存模式,完成对输出张量的子矩阵o分次读入读出,将矩阵相乘运算完成后的子矩阵o的最后一次传输使用DMA跨步传输访存模式将数据传回主存。
本发明还公开了一种基于众核处理器的卷积神经网络运算加速装置,包括:
第一处理模块,预先将卷积运算的输入图片处理得到输入张量及卷积滤波器张量其中,N为一个批次输入的图片数量,C为输入的特征图个数,H与W分别为输入图片的高度与宽度,K为输出的特征图个数,R与S分别为卷积核的高度与宽度;
数据传输运算模块,获取转置输入张量Dt的N*C大小的子矩阵d,转置卷积滤波器张量Ft的K*C大小的子矩阵f,并传输至众核处理器的从核阵列中进行矩阵相乘运算;
循环运算模块,基于卷积滤波器复用思想的数据换入换出策略,根据卷积运算的算法公式重复步骤S03与S04,对Ot进行更新;
优选的技术方案中,所述数据传输运算模块中,在进行数据传输时,使用主从核间异步DMA数据传输机制以及计算与访存重叠的双缓冲策略,所述双缓冲策略包括:
S31:当进行多轮次的DMA读写操作时,在从核阵列的局部存储空间上申请2倍于通信数据大小的存储空间,所述存储空间用于存储两份同样大小且互为对方缓冲的数据;
S32:从核阵列在子矩阵f与d进行相乘运算的同时,从主核预取下次计算所需的子矩阵f与d,同时将上一次运算所得的子矩阵o写回主核。
优选的技术方案中,所述数据传输运算模块中进行矩阵相乘运算时,对输入输出数据按8x8的阵列结构进行分块,采用矩阵分块乘法,同时从核间数据传输通信使用寄存器进行通信。
优选的技术方案中,所述循环运算模块中基于卷积滤波器复用思想的数据换入换出策略,包括以下步骤:
根据卷积运算的算法公式转换得到循环次序,将卷积滤波器张量的子矩阵f始终保持在SPM中,使用DMA连续传输访存模式,完成对输出张量的子矩阵o分次读入读出,将矩阵相乘运算完成后的子矩阵o的最后一次传输使用DMA跨步传输访存模式将数据传回主存。
与现有技术相比,本发明的优点是:
本发明对不同的卷积计算方法进行了分析,结合众核处理器的阵列架构,使用基于卷积滤波器复用的思想重排卷积循环,在循环内采用DMA混合模式传输,相比于众核处理器上已有的卷积神经网络加速库swDNN,有效提升了程序带宽,减少访存开销,平衡访存与计算时间。同时使用寄存器通信,异步DMA传输双缓冲方案,指令流水线重排等方案进行优化。最终,实现了超过2.4Tflops的双精度卷积运算性能,达到处理器峰值性能的81%,并在多个参数下双精度性能相比于使用cudnnv7的Tesla K80 GPU实现了2.4-4.0倍的加速。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为本发明基于众核处理器的卷积神经网络运算加速方法的流程图;
图2为本发明在不同卷积核(R,S)大小下与K80 GPU双精度卷积性能的对比示意图;
图3为本发明在不同K,C参数下与K80 GPU双精度卷积性能的对比示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
实施例:
下面结合附图,对本发明的较佳实施例作进一步说明。
本发明以申威26010众核处理器为例进行说明,本发明受限于申威26010众核处理器有限的存储容量与存储传输带宽,基于原始的直接卷积算法来进行SW26010上的卷积算法设计,原始的直接卷积算法公式在背景技术中已经描述过。在原始公式的基础上,通过将外层循环转换顺序,可以将高维卷积转换为多个矩阵的乘加,在此基础上将卷积算法映射到处理器上。
一种基于众核处理器的卷积神经网络运算加速方法,如图1所示,具体步骤如下:
第二步,从Dt张量中取出N*C大小的子矩阵d,Ft张量中取出K*C大小的子矩阵f,传输进从核阵列中进行矩阵相乘运算。在进行数据传输时,使用主从核间异步DMA数据传输机制以及计算与访存重叠的双缓冲策略,提高传输效率。
第四步,按卷积运算的算法公式重复第二步与第三步,对Ot进行更新。由于从核私有存储器64kb的大小限制,在第二步与第三步进行数据传输时,不能将所有子矩阵一次性传输到从核中进行运算,需要频繁的进行矩阵数据的换入换出。申威26010众核处理器上已有的卷积神经网络加速库swDNN(Fang,J.,Fu,H.,Zhao,W.,Chen,B.,Zheng,W.,Yang,G.:swdnn:A libraryfor accelerating deep learning applications onsunwaytaihulight.In:2017 IEEEInternational Parallel and DistributedProcessing Symposium(IPDPS).pp.615–624.IEEE(2017))使用了基于输出数据复用思想的数据换入换出策略,即将输出张量的子矩阵o始终保持在SPM中,当与子矩阵o相关的矩阵乘加运算完成后,再将子矩阵o写回主存。在这里,本发明与其不同,创新的提出了使用了基于卷积滤波器复用思想的数据换入换出策略,该策略可以提高程序整体带宽,优化程序性能。
其中,第二步中双缓冲是一种有效的掩藏DMA通信开销的优化方法。采用双缓冲模式,就是当需要多轮次的DMA读写操作时,在从核的局部存储空间上申请2倍于通信数据大小的存储空间,以便存放两份同样大小且互为对方缓冲的数据。双缓冲通信通过编程来控制和实现,除了第一轮次(最后一轮次)读入(写回)数据的通信过程之外,当从核进行本轮次数据计算的同时,进行下一轮次(上一轮次)读入(写回)数据的通信。在本发明中,即从核在子矩阵f与d进行相乘运算的同时,从主核预取下次计算所需的子矩阵f与d,同时将上一次运算所得的子矩阵o写回主核,实现运算时间与访存时间的相互掩盖。
第三步中在进行从核内的矩阵相乘运算时,使用了申威26010众核处理器上已有的矩阵运算库swGEMM(https://github.com/feifeibear/swGEMM),该库使用了寄存器通信与指令流水线重排等优化方法,加速矩阵相乘运算。使用该库对运算矩阵的尺寸大小具有限制,具体限制体现在该发明中为N必须为128的倍数,K与C必须为32的倍数。
第四步中基于卷积滤波器复用思想的数据换入换出策略,具体表现为:
根据卷积算法,转换循环次序,将卷积滤波器张量的子矩阵f始终保持在SPM中,对输出张量的子矩阵o分次读入读出,完成运算。在映射矩阵乘法到处理器阵列上时,采用了矩阵分块乘法,对输入输出数据按8x8的阵列结构进行分块,这样就造成了从核访存的不连续性,如从核(0,0)上的输入图片矩阵d(0,0),是大小为pn*pc(pn=N/8,pc=C/8)的矩阵块,在主存上存储的形式为pc个长度为pn的连续数据区。SW26010的DMA数据传输只支持连续的数据块的传输,要将d(0,0)从主存通过DMA传输到从核的SPM中,就必须进行DMA跨步传输,DMA传输速率较低。通过对卷积算法进行分析,可以发现,对输出图片矩阵o的传输除了矩阵乘加完成后的最后一次传输需要使用DMA跨步传输访存模式将数据传回主存,其余由于o的计算尚未完成,可以使用DMA连续传输访存模式来完成对o的读入读出。因此,本发明对输出图片矩阵o采用跨步传输与连续传输相混合的DMA访存模式,此举可以有效改善程序的访存带宽,减少访存时间,结合第二步所述的双缓冲策略,使计算时间与访存时间掩盖的更加充分。
第一步与第五步的张量转置过程,当将该方法应用于完整的卷积神经网络结构时,由于卷积神经网络层间运算的连续性,运算张量在神经网络层间传输时,可以忽略该过程。
本发明具体实现步骤为:
1、获取卷积运算的输入数据张量D与卷积滤波器张量F,根据他们的尺寸大小判断是否符合该发明的参数限定条件,若不符合则程序返回错误警告并结束。
2、从D与F中取出子矩阵d与f传输到从核私有存储器SPM中准备运算。
3、f与d进行矩阵相乘运算得到矩阵o,将矩阵o传输回主核更新输出数据张量O。f与d的计算使用了swGEMM库,通过寄存器通信与指令流水线重排等优化方法,加速矩阵相乘运算。
4、根据卷积算法的相关循环条件,循环进行2,3两步,直到循环结束。在2,3两步的循环中,使用了双缓冲策略来进行优化,即从核在子矩阵f与d进行相乘运算的同时,从主核预取下次计算所需的子矩阵f与d,同时将上一次运算所得的子矩阵o写回主核,实现运算时间与访存时间的相互掩盖。同时,使用了基于卷积滤波器复用思想的数据换入换出策略,转换循环次序,将卷积滤波器张量的子矩阵f始终保持在SPM中,对输出张量的子矩阵o分次读入读出,完成运算。
本实现在申威26010众核处理器平台上进行测试,与使用cudnnv7的英伟达K80进行性能对比。图2是在N=128,C=256,K=128,P=Q=64的参数下不同R,S参数的双精度卷积性能对比,图3是在N=128,H=W=66,R=S=3的参数下不同K,C参数的双精度卷积性能对比。最终,本发明实现了超过2.4Tflops的双精度卷积运算性能,达到处理器峰值性能的81%,并在多个参数下双精度性能相比于使用cudnnv7的Tesla K80 GPU实现了2.4-4.0倍的加速。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
Claims (8)
1.一种基于众核处理器的卷积神经网络运算加速方法,其特征在于,包括以下步骤:
S01:预先将卷积运算的输入图片处理得到输入张量及卷积滤波器张量其中,N为一个批次输入的图片数量,C为输入的特征图个数,H与W分别为输入图片的高度与宽度,K为输出的特征图个数,R与S分别为卷积核的高度与宽度;
S03:获取转置输入张量Dt的N*C大小的子矩阵d,转置卷积滤波器张量Ft的K*C大小的子矩阵f,并传输至众核处理器的从核阵列中进行矩阵相乘运算;
S05:基于卷积滤波器复用思想的数据换入换出策略,根据卷积运算的算法公式重复步骤S03与S04,对Ot进行更新;
2.根据权利要求1所述的基于众核处理器的卷积神经网络运算加速方法,其特征在于,所述步骤S03中,在进行数据传输时,使用主从核间异步DMA数据传输机制以及计算与访存重叠的双缓冲策略,所述双缓冲策略包括:
S31:当进行多轮次的DMA读写操作时,在从核阵列的局部存储空间上申请2倍于通信数据大小的存储空间,所述存储空间用于存储两份同样大小且互为对方缓冲的数据;
S32:从核阵列在子矩阵f与d进行相乘运算的同时,从主核预取下次计算所需的子矩阵f与d,同时将上一次运算所得的子矩阵o写回主核。
3.根据权利要求1所述的基于众核处理器的卷积神经网络运算加速方法,其特征在于,所述步骤S03中进行矩阵相乘运算时,对输入输出数据按8x8的阵列结构进行分块,采用矩阵分块乘法,同时从核间数据传输通信使用寄存器进行通信。
4.根据权利要求1所述的基于众核处理器的卷积神经网络运算加速方法,其特征在于,所述步骤S05中基于卷积滤波器复用思想的数据换入换出策略,包括以下步骤:
根据卷积运算的算法公式转换得到循环次序,将卷积滤波器张量的子矩阵f始终保持在SPM中,使用DMA连续传输访存模式,完成对输出张量的子矩阵o分次读入读出,将矩阵相乘运算完成后的子矩阵o的最后一次传输使用DMA跨步传输访存模式将数据传回主存。
5.一种基于众核处理器的卷积神经网络运算加速装置,其特征在于,包括:
第一处理模块,预先将卷积运算的输入图片处理得到输入张量及卷积滤波器张量其中,N为一个批次输入的图片数量,C为输入的特征图个数,H与W分别为输入图片的高度与宽度,K为输出的特征图个数,R与S分别为卷积核的高度与宽度;
数据传输运算模块,获取转置输入张量Dt的N*C大小的子矩阵d,转置卷积滤波器张量Ft的K*C大小的子矩阵f,并传输至众核处理器的从核阵列中进行矩阵相乘运算;
循环运算模块,基于卷积滤波器复用思想的数据换入换出策略,根据卷积运算的算法公式重复步骤S03与S04,对Ot进行更新;
6.根据权利要求5所述的基于众核处理器的卷积神经网络运算加速装置,其特征在于,所述数据传输运算模块中,在进行数据传输时,使用主从核间异步DMA数据传输机制以及计算与访存重叠的双缓冲策略,所述双缓冲策略包括:
S31:当进行多轮次的DMA读写操作时,在从核阵列的局部存储空间上申请2倍于通信数据大小的存储空间,所述存储空间用于存储两份同样大小且互为对方缓冲的数据;
S32:从核阵列在子矩阵f与d进行相乘运算的同时,从主核预取下次计算所需的子矩阵f与d,同时将上一次运算所得的子矩阵o写回主核。
7.根据权利要求5所述的基于众核处理器的卷积神经网络运算加速装置,其特征在于,所述数据传输运算模块中进行矩阵相乘运算时,对输入输出数据按8x8的阵列结构进行分块,采用矩阵分块乘法,同时从核间数据传输通信使用寄存器进行通信。
8.根据权利要求5所述的基于众核处理器的卷积神经网络运算加速装置,其特征在于,所述循环运算模块中基于卷积滤波器复用思想的数据换入换出策略,包括以下步骤:
根据卷积运算的算法公式转换得到循环次序,将卷积滤波器张量的子矩阵f始终保持在SPM中,使用DMA连续传输访存模式,完成对输出张量的子矩阵o分次读入读出,将矩阵相乘运算完成后的子矩阵o的最后一次传输使用DMA跨步传输访存模式将数据传回主存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010223385.3A CN111461311B (zh) | 2020-03-26 | 2020-03-26 | 基于众核处理器的卷积神经网络运算加速方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010223385.3A CN111461311B (zh) | 2020-03-26 | 2020-03-26 | 基于众核处理器的卷积神经网络运算加速方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111461311A true CN111461311A (zh) | 2020-07-28 |
CN111461311B CN111461311B (zh) | 2023-04-07 |
Family
ID=71679176
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010223385.3A Active CN111461311B (zh) | 2020-03-26 | 2020-03-26 | 基于众核处理器的卷积神经网络运算加速方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111461311B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112215345A (zh) * | 2020-10-15 | 2021-01-12 | 苏州浪潮智能科技有限公司 | 一种基于Tensorcore的卷积神经网络运转方法和装置 |
CN112348173A (zh) * | 2020-11-13 | 2021-02-09 | 南开大学 | 一种移动平台上cnn流水线优化方法 |
CN113204372A (zh) * | 2021-04-28 | 2021-08-03 | 浙江大学 | 存储受限型哈希算法的加速装置及方法 |
CN113298236A (zh) * | 2021-06-18 | 2021-08-24 | 中国科学院计算技术研究所 | 基于数据流结构的低精度神经网络计算装置及加速方法 |
CN113543045A (zh) * | 2021-05-28 | 2021-10-22 | 平头哥(上海)半导体技术有限公司 | 处理单元、相关装置和张量运算方法 |
CN113722269A (zh) * | 2021-08-26 | 2021-11-30 | 北京大学 | 一种基于昇腾ai处理器的跨步切片算子处理方法及装置 |
CN114936633A (zh) * | 2022-06-15 | 2022-08-23 | 北京爱芯科技有限公司 | 用于转置运算的数据处理单元及图像转置运算方法 |
CN115146780A (zh) * | 2022-08-30 | 2022-10-04 | 之江实验室 | 一种量子张量网络转置和收缩协同的方法和装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168683A (zh) * | 2017-05-05 | 2017-09-15 | 中国科学院软件研究所 | 国产申威26010众核cpu上gemm稠密矩阵乘高性能实现方法 |
CN109388777A (zh) * | 2017-08-07 | 2019-02-26 | 英特尔公司 | 一种用于经优化的Winograd卷积加速器的系统和方法 |
GB201903849D0 (en) * | 2019-03-20 | 2019-05-01 | Imagination Tech Ltd | Methods and systems for implementing a convolution transpose layer of a neural network |
-
2020
- 2020-03-26 CN CN202010223385.3A patent/CN111461311B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107168683A (zh) * | 2017-05-05 | 2017-09-15 | 中国科学院软件研究所 | 国产申威26010众核cpu上gemm稠密矩阵乘高性能实现方法 |
CN109388777A (zh) * | 2017-08-07 | 2019-02-26 | 英特尔公司 | 一种用于经优化的Winograd卷积加速器的系统和方法 |
GB201903849D0 (en) * | 2019-03-20 | 2019-05-01 | Imagination Tech Ltd | Methods and systems for implementing a convolution transpose layer of a neural network |
Non-Patent Citations (1)
Title |
---|
姚庆等: "SOM算法在申威众核上的实现和优化", 《计算机科学》 * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112215345A (zh) * | 2020-10-15 | 2021-01-12 | 苏州浪潮智能科技有限公司 | 一种基于Tensorcore的卷积神经网络运转方法和装置 |
CN112215345B (zh) * | 2020-10-15 | 2022-12-20 | 苏州浪潮智能科技有限公司 | 一种基于Tensorcore的卷积神经网络运转方法和装置 |
CN112348173A (zh) * | 2020-11-13 | 2021-02-09 | 南开大学 | 一种移动平台上cnn流水线优化方法 |
CN113204372A (zh) * | 2021-04-28 | 2021-08-03 | 浙江大学 | 存储受限型哈希算法的加速装置及方法 |
CN113204372B (zh) * | 2021-04-28 | 2022-07-01 | 浙江大学 | 存储受限型哈希算法的加速装置及方法 |
CN113543045A (zh) * | 2021-05-28 | 2021-10-22 | 平头哥(上海)半导体技术有限公司 | 处理单元、相关装置和张量运算方法 |
CN113543045B (zh) * | 2021-05-28 | 2022-04-26 | 平头哥(上海)半导体技术有限公司 | 处理单元、相关装置和张量运算方法 |
CN113298236A (zh) * | 2021-06-18 | 2021-08-24 | 中国科学院计算技术研究所 | 基于数据流结构的低精度神经网络计算装置及加速方法 |
CN113722269A (zh) * | 2021-08-26 | 2021-11-30 | 北京大学 | 一种基于昇腾ai处理器的跨步切片算子处理方法及装置 |
CN114936633A (zh) * | 2022-06-15 | 2022-08-23 | 北京爱芯科技有限公司 | 用于转置运算的数据处理单元及图像转置运算方法 |
CN115146780A (zh) * | 2022-08-30 | 2022-10-04 | 之江实验室 | 一种量子张量网络转置和收缩协同的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111461311B (zh) | 2023-04-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111461311B (zh) | 基于众核处理器的卷积神经网络运算加速方法及装置 | |
CN108241890B (zh) | 一种可重构神经网络加速方法及架构 | |
KR102492477B1 (ko) | 행렬 곱셈기 | |
US11847550B2 (en) | Sparse convolutional neural network accelerator | |
US11003985B2 (en) | Convolutional neural network system and operation method thereof | |
US10997496B2 (en) | Sparse convolutional neural network accelerator | |
Ma et al. | End-to-end scalable FPGA accelerator for deep residual networks | |
CN107451652A (zh) | 高效的稀疏并行的基于威诺格拉德的卷积方案 | |
CN111667051A (zh) | 适用边缘设备的神经网络加速器及神经网络加速计算方法 | |
JP6905573B2 (ja) | 計算装置と計算方法 | |
CN108170640B (zh) | 神经网络运算装置及应用其进行运算的方法 | |
KR20180052063A (ko) | 컨볼루션 신경망 시스템 및 그것의 동작 방법 | |
CN112703511B (zh) | 运算加速器和数据处理方法 | |
CN109993275B (zh) | 一种信号处理方法及装置 | |
CN108509270A (zh) | 一种国产申威26010众核处理器上K-means算法的高性能并行实现方法 | |
CN113313247B (zh) | 基于数据流架构的稀疏神经网络的运算方法 | |
CN114003201A (zh) | 矩阵变换方法、装置及卷积神经网络加速器 | |
CN109993293A (zh) | 一种适用于堆叠式沙漏网络的深度学习加速器 | |
CN112559952B (zh) | 基于序列分层的异构众核快速傅里叶变换方法 | |
CN110414672B (zh) | 卷积运算方法、装置及系统 | |
CN110490308B (zh) | 加速库的设计方法、终端设备及存储介质 | |
CN110766136B (zh) | 一种稀疏矩阵与向量的压缩方法 | |
CN113128688B (zh) | 通用型ai并行推理加速结构以及推理设备 | |
JP7387017B2 (ja) | アドレス生成方法及びユニット、深層学習処理器、チップ、電子機器並びにコンピュータプログラム | |
US20220188613A1 (en) | Sgcnax: a scalable graph convolutional neural network accelerator with workload balancing |
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 |