CN115146767A - 一种二维卷积加速器及其实现加速二维卷积的方法 - Google Patents
一种二维卷积加速器及其实现加速二维卷积的方法 Download PDFInfo
- Publication number
- CN115146767A CN115146767A CN202110352174.4A CN202110352174A CN115146767A CN 115146767 A CN115146767 A CN 115146767A CN 202110352174 A CN202110352174 A CN 202110352174A CN 115146767 A CN115146767 A CN 115146767A
- Authority
- CN
- China
- Prior art keywords
- dimensional convolution
- counter
- data
- convolution kernel
- 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
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000004364 calculation method Methods 0.000 claims description 42
- 238000009825 accumulation Methods 0.000 claims description 14
- 238000003672 processing method Methods 0.000 claims description 2
- 238000013473 artificial intelligence Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
-
- 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/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Complex Calculations (AREA)
Abstract
本申请公开了一种二维卷积加速器及其实现加速二维卷积的方法,通过根据二维卷积运算的输入信息计算出了当前参与二维卷积的二维卷积节点的数量,实现了二维卷积加速器的卷积节点数目的动态配置,从而增强了二维卷积加速器的卷积节点数目的可配置性,解决了相关技术中二维卷积加速器的卷积节点数目不可配置、特定应用场景专用的问题,提高了二维卷积加速器对各种不同应用场景的适应性,提升了二维卷积加速器的灵活性和广泛性,适应了复杂多变的AI使用场景。
Description
技术领域
本申请涉及但不限于人工智能(AI,Artificial Intelligence)技术,尤指一种二维卷积加速器及其实现加速二维卷积的方法。
背景技术
随着AI技术的发展与广泛应用,对不同场景下的AI计算提出了越来越大的挑战。AI计算的应用从一开始的云端逐渐扩展到边缘端。在边缘端的应用,根据使用场景不同,对AI的需求也是***。
为了适应不同的应用需求,二维卷积加速器的应用灵活性和广泛性亟需提升,以更好的适应复杂多变的AI使用场景。
发明内容
本申请提供一种二维卷积加速器及其实现加速二维卷积的方法,能够提升二维卷积加速器的应用灵活性和广泛性,适应复杂多变的AI使用场景。
本发明实施例提供了一种二维卷积加速器,包括:二维卷积计算模块、地址发生器、二维卷积器,其中,
二维卷积计算模块,设置为根据二维卷积运算的输入信息,计算二维卷积节点的数量n和偏置数据;
地址发生器,包括n个,设置为产生输入数据的地址、二维卷积核数据的地址以及输出数据的地址;
二维卷积器,包括n个,设置为根据偏置数据、输入数据的地址和二维卷积核数据的地址分别读取的输入数据和二维卷积核数据,实现二维卷积运算并将运算结果输出至输出数据的地址;
其中,一个地址发生器和一个二维卷积器构成一个二维卷积节点,n个二维卷积节点并行处理。
在一种示例性实例中,还包括:第一缓存器、第二缓存器、第三缓存器,其中,
第一缓存器,设置为存储所述二维卷积运算的输入信息;
第二缓存器,设置为存储二维卷积运算值的所述偏置数据;
第三缓存器,设置为存储二维卷积核数据。
在一种示例性实例中,还包括:地址选择器、第四缓存器,其中,
地址选择器,设置为根据不同地址将数据写入到相应数据缓存器的不同位置;
第四缓存器,设置为存储所述输出数据。
在一种示例性实例中,所述二维卷积计算模块设置为:
根据所述二维卷积运算的输入信息中的被二维卷积数据的高H、二维卷积核的高h以及步长stride,计算当前参与并行运算的所述二维卷积节点的数量n;将预先设置的加一计数器的值与计算的到的n的值进行取余运算,运算结果作为所述地址偏置。
在一种示例性实例中,所述根据二维卷积运算的输入信息,计算当前参与并行运算的所述二维卷积节点的数量n,包括:
按照以下公式,根据所述二维卷积运算的输入信息中的被二维卷积数据的高H、二维卷积核的高h以及步长stride,计算当前参与并行运算的所述二维卷积节点的数量n:n=[(H-h)/stride]+1。
在一种示例性实例中,所述地址发生器包括:二维卷积核Y计数器、二维卷积核X计数器、二维卷积核数计数器、输入通道计数器、输入Y计数器、二维卷积核加法器、输出加法器、输入加法器,其中,
输入Y计数器设置为:当二维卷积核Y计数器达到最大值时,输入Y计数器的值增加二维卷积运算的输入信息中的步长stride;当输入Y计数器达到最大值时,二维卷积核数计数器加1,同时输入Y计数器的值自动清零;
输入通道计数器设置为:当输入通道计数器达到最大值时,二维卷积核X计数器加1,同时输入通道计数器自动清零;
二维卷积核Y计数器设置为:当二维卷积核Y计数器达到最大值时,输入Y计数器加1,同时二维卷积核Y计数器自动清零;
二维卷积核X计数器设置为:当二维卷积核X计数器达到最大值时,二维卷积核Y计数器加1,同时二维卷积核X计数器自动清零;
二维卷积核数计数器设置为:当二维卷积核数计数器达到最大值时,二维卷积计算结束;
二维卷积核加法器,设置为:实现二维卷积核X计数器的值、二维卷积核Y计数器的值以及输入通道计数器的值的相加运算,结果为二维卷积核地址;
输出加法器,设置为:实现来自二维卷积计算模块的地址偏置与输入Y计数器的相加运算,结果为输出地址;
输入加法器,设置为:实现二维卷积核数计数器的值、二维卷积核加法器的结果,以及输出加法器的结果的相加运算,结果为输入地址。
在一种示例性实例中,所述输入Y计数器的最大值为(W-w-1);
所述二维卷积核Y计数器的最大值为w;
所述输入通道计数器的最大值为输入通道数;
所述二维卷积核X计数器的最大值为h;
所述二维卷积核数计数器的最大值为二维卷积核的数量;
其中,W为所述二维卷积运算的输入信息中的被二维卷积数据的宽,w为所述二维卷积运算的输入信息中的二维卷积核的宽,h为所述二维卷积运算的输入信息中的二维卷积核的高。
在一种示例性实例中,所述二维卷积器设置为:
从所述第二缓存器中读取偏置数据,从所述第一缓存器和所述第三缓存器中分别读取输入数据和二维卷积核数据;
对输入数据和二维卷积核数据进行相乘运算,得到的结果与二维卷积器上一次的计算结果累加得到第一结果;
判断所述二维卷积核地址是否等于所述二维卷积核X计数器的值、所述二维卷积核Y计数器的值以及输入通道数的乘积,如果不等于,重新从所述第一缓存器和所述第三缓存器中分别读取输入数据和二维卷积核数据的步骤,循环执行累加运算以更新第一结果;
如果等于,对第一结果与所述偏置数据进行相加运算并作为输出数据输出,累加值清零;判断所述输出数据地址是否等于所述输入偏置X计数器的值、所述输入数据Y计数器的值以及所述二维卷积核数的乘积,如果不等于,返回从第二缓存器中读取偏置数据,从所述第一缓存器和所述第三缓存器中分别读取输入数据和二维卷积核数据的步骤,继续进行循环累加运算;如果等于,计算结束,输出得到的输出数据。
本申请实施例还提供一种实现加速二维卷积的方法,包括:
根据二维卷积运算的输入信息,计算二维卷积节点的数量n和偏置数据;
n个二维卷积节点并行处理,实现二维卷积运算;
其中,一个二维卷积节点包括:一个用于根据偏置数据和二维卷积运算的输入信息产生输入数据的地址、二维卷积核数据的地址以及输出数据的地址的地址发生器,和一个根据输入数据的地址和二维卷积核数据的地址分别读取的输入数据和二维卷积核数据,实现二维卷积运算并将运算结果输出至输出数据的地址的二维卷积器。
在一种示例性实例中,所述根据二维卷积运算的输入信息,计算二维卷积节点的数量n,包括:
根据所述二维卷积运算的输入信息,计算当前参与并行运算的所述二维卷积节点的数量n;
将预先设置的加一计数器的值与计算的到的n的值进行取余运算,运算结果作为所述地址偏置。
在一种示例性实例中,所述根据所述二维卷积运算的输入信息,计算当前参与并行运算的所述二维卷积节点的数量n,包括:
按照以下公式,根据所述二维卷积运算的输入信息中的被二维卷积数据的高H、二维卷积核的高h以及步长stride,计算当前参与并行运算的所述二维卷积节点的数量n:n=[(H-h)/stride]+1。
在一种示例性实例中,还包括:
所述二维卷积运算的输入信息存储在第一缓存器;
将所述偏置数据存储在第二缓存器;
将所述二维卷积核数据存储在第三缓存器。
在一种示例性实例中,还包括:
根据不同地址将数据写入到相应数据缓存器的不同位置;
将所述输出数据存储在第四缓存器。
在一种示例性实例中,所述地址发生器包括:二维卷积核Y计数器、二维卷积核X计数器、二维卷积核数计数器、输入通道计数器、输入Y计数器、二维卷积核加法器、输出加法器、输入加法器;
所述二维卷积节点并行处理中的根据来自二维卷积计算模块的偏置数据和二维卷积运算的输入信息,产生输入数据的地址、二维卷积核数据的地址以及输出数据的地址,包括:
当二维卷积核Y计数器达到最大值时,输入Y计数器的值增加二维卷积运算的输入信息中的步长stride;当输入Y计数器达到最大值时,二维卷积核数计数器加1,同时输入Y计数器的值自动清零;
当输入通道计数器达到最大值时,二维卷积核X计数器加1,同时输入通道计数器自动清零;
当二维卷积核Y计数器达到最大值时,输入Y计数器加1,同时二维卷积核Y计数器自动清零;
当二维卷积核X计数器达到最大值时,二维卷积核Y计数器加1,同时二维卷积核X计数器自动清零;
当二维卷积核数计数器达到最大值时,二维卷积计算结束;
对二维卷积核X计数器的值、二维卷积核Y计数器的值以及输入通道计数器的值进行相加运算,结果为二维卷积核地址;
对所述地址偏置与输入Y计数器进行相加运算,结果为输出地址;
对二维卷积核数计数器的值、二维卷积核加法器的结果,以及输出地址进行相加运算,结果为输入地址。
在一种示例性实例中,所述输入Y计数器的最大值为(W-w-1);
所述二维卷积核Y计数器的最大值为w;
所述输入通道计数器的最大值为输入通道数;
所述二维卷积核X计数器的最大值为h;
所述二维卷积核数计数器的最大值为二维卷积核的数量;
其中,W为所述二维卷积运算的输入信息中的被二维卷积数据的宽,w为所述二维卷积运算的输入信息中的二维卷积核的宽,h为所述二维卷积运算的输入信息中的二维卷积核的高。
在一种示例性实例中,所述二维卷积节点并行处理中的根据地址发生器生成的输入数据的地址和二维卷积核数据的地址分别读取的输入数据和二维卷积核数据,实现二维卷积运算并将运算结果输出至输出数据的地址,包括:
从所述第二缓存器中读取偏置数据,从所述第一缓存器和所述第三缓存器中分别读取输入数据和二维卷积核数据;
对输入数据和二维卷积核数据进行相乘运算,得到的结果与二维卷积器上一次的计算结果累加得到第一结果;
判断所述二维卷积核地址是否等于所述二维卷积核X计数器的值、所述二维卷积核Y计数器的值以及输入通道数的乘积,如果不等于,重新从所述第一缓存器和所述第三缓存器中分别读取输入数据和二维卷积核数据的步骤,循环执行累加运算以更新第一结果;
如果等于,对第一结果与所述偏置数据进行相加运算并作为输出数据输出,累加值清零;判断所述输出数据地址是否等于所述输入偏置X计数器的值、所述输入数据Y计数器的值以及所述二维卷积核数的乘积,如果不等于,返回从第二缓存器中读取偏置数据,从所述第一缓存器和所述第三缓存器中分别读取输入数据和二维卷积核数据的步骤,继续进行循环累加运算;如果等于,计算结束,输出得到的输出数据。
本申请实施例再提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项所述的实现加速二维卷积的方法。
本申请实施例又提供一种实现加速二维卷积的设备,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行上述任一项所述的实现加速二维卷积的方法的步骤。
本申请实施例提供的二维卷积加速器,通过根据二维卷积运算的输入信息计算出了当前参与二维卷积的二维卷积节点的数量,实现了二维卷积加速器的卷积节点数目的动态配置,从而增强了二维卷积加速器的卷积节点数目的可配置性,解决了相关技术中二维卷积加速器的卷积节点数目不可配置、特定应用场景专用的问题,提高了二维卷积加速器对各种不同应用场景的适应性,提升了二维卷积加速器的灵活性和广泛性,适应了复杂多变的AI使用场景。
进一步地,本申请实施例的二维卷积加速器根据被卷积数据的高和宽,自适应动态调整了参与并行二维卷积节点的数量,达到了当前参与并行运算的二维卷积节点的数量根据不同二维卷积运算动态调整的目的,实现了二维卷积加速器的卷积节点数目的动态配置,解决了相关技术中二维卷积加速器的卷积节点数目不可配置、特定应用场景专用的问题,提高了二维卷积加速器对各种不同应用场景的适应性,提升了二维卷积加速器的灵活性和广泛性。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本申请技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本申请的技术方案,并不构成对本申请技术方案的限制。
图1为本申请实施例中二维卷积加速器的组成结构示意图;
图2为本申请实施例中地址发生器的组成结构示意图;
图3为本申请实施例中二维卷积器的组成结构示意图;
图4为本申请实施例中实现加速二维卷积的方法的流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
在本申请一个典型的配置中,计算设备包括一个或多个处理器、输入/输出接口、网络接口和内存。其中,处理器包括MCU\CPU或其组合***,在此不做具体限定。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
AI计算的核心是卷积运算,为了适应***的AI需求,本申请实施例结合现场可编程逻辑门阵列(FPGA)的灵活性,提出一种基于FPGA的二维卷积加速器。本申请实施例基于FPGA逻辑资源,巧妙地实现了二维卷积加速器的卷积节点数目可动态配置,从而增强了二维卷积加速器的卷积节点数目的可配置性,提高了二维卷积加速器对各种不同应用场景的适应性。
图1为本申请实施例中二维卷积加速器的组成结构示意图,如图1所示,至少包括:二维卷积计算模块、地址发生器、二维卷积器,其中,
二维卷积计算模块,设置为根据二维卷积运算的输入信息,计算二维卷积节点的数量n和偏置数据;
地址发生器,包括n个,设置为根据来自二维卷积计算模块的偏置数据和二维卷积运算的输入信息,产生输入数据的地址、二维卷积核数据的地址以及输出数据的地址;
二维卷积器,包括n个,设置为根据获取的偏置数据,以及根据地址发生器生成的输入数据的地址和二维卷积核数据的地址分别读取的输入数据和二维卷积核数据,实现二维卷积运算并将运算结果输出至输出数据的地址。
其中,一个地址发生器和一个二维卷积器构成一个二维卷积节点,n个二维卷积节点并行处理。
在一种示例性实例中,本申请实施例提供的二维卷积加速器可以基于FPGA实现。
本申请实施例提供的二维卷积加速器,通过根据二维卷积运算的输入信息计算出了当前参与二维卷积的二维卷积节点的数量,实现了二维卷积加速器的卷积节点数目的动态配置,从而增强了二维卷积加速器的卷积节点数目的可配置性,解决了相关技术中二维卷积加速器的卷积节点数目不可配置、特定应用场景专用的问题,提高了二维卷积加速器对各种不同应用场景的适应性,提升了二维卷积加速器的灵活性和广泛性。
在一种示例性实例中,如图1所示,本申请实施例提供的二维卷积加速器,还可以包括:第一缓存器、第二缓存器、第三缓存器,其中,
第一缓存器,设置为存储二维卷积运算的输入信息即被卷积数据;
第二缓存器,设置为存储二维卷积运算值的偏置数据;
第三缓存器,设置为存储二维卷积核数据即二维卷积核滤波器数据。
在一种示例性实例中,如图1所示,本申请实施例提供的二维卷积加速器,还可以包括:地址选择器、第四缓存器,其中,
地址选择器,设置为根据不同地址将数据写入到相应数据缓存器的不同位置;
第四缓存器,设置为存储输出数据即实现二维卷积运算后的运算结果。
在一种示例性实例中,二维卷积运算的输入信息可以包括但不限于:被二维卷积数据的高(H)和宽(W)、二维卷积核的高(h)和宽(w)、填充(padding)以及步长(stride)等。本申请实施例提供的二维卷积加速器中的二维卷积计算模块具体可以设置为:
根据二维卷积运算的输入信息,计算当前参与并行运算的二维卷积节点的数量n即当前参与并行计算的二维卷积节点的数目n,计算如公式(1)所示:
n=[(H-h)/stride]+1 (1)
设置一个加一计数器,将计数器的值与计算的到的n的值进行取余运算,运算结果作为地址偏置。地址偏置输出给地址发生器。这里,加一计数器用于完成一次节点二维卷积运算之后,进行加一。
通过本申请实施例提供的二维卷积计算模块,根据被卷积数据的高和宽,自适应动态调整了参与并行二维卷积节点的数量,达到了当前参与并行运算的二维卷积节点的数量根据不同二维卷积运算动态调整的目的,实现了二维卷积加速器的卷积节点数目的动态配置,解决了相关技术中二维卷积加速器的卷积节点数目不可配置、特定应用场景专用的问题,提高了二维卷积加速器对各种不同应用场景的适应性,提升了二维卷积加速器的灵活性和广泛性。
一个地址发生器对应一个参数的地址,一个参数对应一个地址。图2为本申请实施例中地址发生器的组成结构示意图,如图2所示,地址发生器包括:卷积核Y计数器、卷积核X计数器、卷积核数计数器、输入通道计数器、输入Y计数器、卷积核加法器、输出加法器、输入加法器,其中,
输入Y计数器的最大值为(W-w-1),输入Y计数器设置为:当二维卷积核Y计数器达到最大值时,输入Y计数器的值增加二维卷积运算的输入信息中的步长stride;当输入Y计数器达到最大值时,二维卷积核数计数器加1,同时输入Y计数器的值自动清零。
输入通道计数器的最大值为输入通道数即参与并行计算的二维卷积节点的数目n,输入通道计数器设置为:当输入通道计数器达到最大值时,二维卷积核X计数器加1,同时输入通道计数器自动清零。
二维卷积核Y计数器的最大值为w,二维卷积核Y计数器设置为:当二维卷积核Y计数器达到最大值时,输入Y计数器加1,同时二维卷积核Y计数器自动清零。
二维卷积核X计数器的最大值为h,二维卷积核X计数器设置为:当二维卷积核X计数器达到最大值时,二维卷积核Y计数器加1,同时二维卷积核X计数器自动清零。
二维卷积核数计数器的最大值为二维卷积核的数量,当二维卷积核数计数器达到最大值时,二维卷积计算结束。
二维卷积核加法器,设置为:实现二维卷积核X计数器的值、二维卷积核Y计数器的值以及输入通道计数器的值的相加运算,结果为二维卷积核地址。
输出加法器,设置为:实现来自二维卷积计算模块的地址偏置与输入Y计数器的相加运算,结果为输出地址。
输入加法器,设置为:实现二维卷积核数计数器的值、二维卷积核加法器的结果,以及输出加法器的结果的相加运算,结果为输入地址。
在一种示例性实例中,本申请实施例中的二维卷积器可以设置为:
从第二缓存器中读取偏置数据,从第一缓存器和第三缓存器中分别读取输入数据和二维卷积核数据;
对输入数据和二维卷积核数据进行相乘运算,得到的运算结果与二维卷积器上一次的计算结果累加得到第一结果;
判断二维卷积核地址是否等于二维卷积核X计数器的值、二维卷积核Y计数器的值以及输入通道数的乘积,如果二维卷积核地址不等于二维卷积核X计数器的值、二维卷积核Y计数器的值以及输入通道数的乘积,那么,重新从第一缓存器和第三缓存器中分别读取输入数据和二维卷积核数据的步骤,循环执行累加运算以更新第一结果;
如果二维卷积核地址等于二维卷积核X计数器的值、二维卷积核Y计数器的值以及输入通道数的乘积,那么,对第一结果与偏置数据进行相加运算并作为输出数据输出,累加值清零。判断输出数据地址是否等于输入偏置X计数器的值、输入数据Y计数器的值以及二维卷积核数的乘积,如果输出数据地址不等于输入偏置X计数器的值、输入数据Y计数器的值以及二维卷积核数的乘积,那么,不输出输出数据,返回从第二缓存器中读取偏置数据,从第一缓存器和第三缓存器中分别读取输入数据和二维卷积核数据的步骤,继续进行循环累加运算;如果输出数据地址等于输入偏置X计数器的值、输入数据Y计数器的值以及二维卷积核数的乘积,那么,计算结束,输出得到的输出数据。
本申请实施例提供的二维卷积加速器,提升了二维卷积加速器的应用灵活性和广泛性,适应了复杂多变的AI使用场景。
图3为本申请实施例中二维卷积器实现二维卷积运算的流程示意图,如图3所示,包括:
步骤300~步骤302:从第二缓存器中读取偏置数据,从第一缓存器和第三缓存器中分别读取输入数据和二维卷积核数据。
需要说明的是,步骤300~步骤302的执行没有严格的先后的顺序,只要能在需要时读出相应的数据即可。
步骤303~步骤304:对输入数据和二维卷积核数据进行相乘运算,得到的运算结果与二维卷积器上一次的计算结果累加得到第一结果。
步骤305:判断二维卷积核地址是否等于二维卷积核X计数器的值、二维卷积核Y计数器的值以及输入通道数的乘积,如果二维卷积核地址不等于二维卷积核X计数器的值、二维卷积核Y计数器的值以及输入通道数的乘积,返回步骤301重新从第一缓存器和第三缓存器中分别读取输入数据和二维卷积核数据的步骤,循环执行累加运算已更新第一结果;如果二维卷积核地址等于二维卷积核X计数器的值、二维卷积核Y计数器的值以及输入通道数的乘积,进入步骤306。
步骤306~步骤308:对第一结果与偏置数据进行相加运算并作为输出数据输出,累加值清零。
步骤309:判断输出数据地址是否等于输入偏置X计数器的值、输入数据Y计数器的值以及二维卷积核数的乘积,如果输出数据地址不等于输入偏置X计数器的值、输入数据Y计数器的值以及二维卷积核数的乘积,那么,不输出输出数据,返回步骤300,继续进行循环累加运算;如果输出数据地址等于输入偏置X计数器的值、输入数据Y计数器的值以及二维卷积核数的乘积,那么,计算结束,输出得到的输出数据。
图4为本申请实施例中实现加速二维卷积的方法的流程示意图,如图4所示,包括:
步骤400:根据二维卷积运算的输入信息,计算二维卷积节点的数量n和偏置数据。
步骤401:n个二维卷积节点并行处理,实现二维卷积运算。
其中,一个二维卷积节点包括一个地址发生器和一个二维卷积器。一个地址发生器,设置为根据来自二维卷积计算模块的偏置数据和二维卷积运算的输入信息,产生输入数据的地址、二维卷积核数据的地址以及输出数据的地址。一个二维卷积器,设置为根据获取的偏置数据,以及根据地址发生器生成的输入数据的地址和二维卷积核数据的地址分别读取的输入数据和二维卷积核数据,实现二维卷积运算并将运算结果输出至输出数据的地址。
本申请实施例提供的实现加速二维卷积的方法,通过根据二维卷积运算的输入信息计算出了当前参与二维卷积的二维卷积节点的数量,实现了二维卷积加速器的卷积节点数目的动态配置,从而增强了二维卷积加速器的卷积节点数目的可配置性,解决了相关技术中二维卷积加速器的卷积节点数目不可配置、特定应用场景专用的问题,提高了二维卷积加速器对各种不同应用场景的适应性,提升了二维卷积加速器的灵活性和广泛性。
在一种示例性实例中,二维卷积运算的输入信息可以包括但不限于:被二维卷积数据的高(H)和宽(W)、二维卷积核的高(h)和宽(w)、填充(padding)以及步长(stride)等。步骤400中的根据二维卷积运算的输入信息,计算二维卷积节点的数量n,可以包括:
根据二维卷积运算的输入信息,计算当前参与并行运算的二维卷积节点的数量n即当前参与并行计算的二维卷积节点的数目n,计算如公式(1)所示;
设置一个加一计数器,将计数器的值与计算的到的n的值进行取余运算,运算结果作为地址偏置。地址偏置输出给地址发生器。
通过步骤400,根据被卷积数据的高和宽,自适应动态调整了参与并行二维卷积节点的数量,达到了当前参与并行运算的二维卷积节点的数量根据不同二维卷积运算动态调整的目的,实现了二维卷积加速器的卷积节点数目的动态配置,解决了相关技术中二维卷积加速器的卷积节点数目不可配置、特定应用场景专用的问题,提高了二维卷积加速器对各种不同应用场景的适应性,提升了二维卷积加速器的灵活性和广泛性。
在一种示例性实例中,在n个二维卷积节点并行处理以实现二维卷积运算中,根据来自二维卷积计算模块的偏置数据和二维卷积运算的输入信息,产生输入数据的地址、二维卷积核数据的地址以及输出数据的地址,可以包括:
当二维卷积核Y计数器达到最大值即(W-w-1)时,输入Y计数器的值增加二维卷积运算的输入信息中的步长stride;当输入Y计数器达到最大值时,二维卷积核数计数器加1,同时输入Y计数器的值自动清零。
当输入通道计数器达到最大值即输入通道数时,二维卷积核X计数器加1,同时输入通道计数器自动清零。
当二维卷积核Y计数器达到最大值即w时,输入Y计数器加1,同时二维卷积核Y计数器自动清零。
当二维卷积核X计数器达到最大值即h时,二维卷积核Y计数器加1,同时二维卷积核X计数器自动清零。
当二维卷积核数计数器达到最大值即二维卷积核的数量时,二维卷积计算结束。
对二维卷积核X计数器的值、二维卷积核Y计数器的值以及输入通道计数器的值进行相加运算,结果为二维卷积核地址。
对地址偏置与输入Y计数器进行相加运算,结果为输出地址。
对二维卷积核数计数器的值、二维卷积核加法器的结果,以及输出地址进行相加运算,结果为输入地址。
在一种示例性实例中,在n个二维卷积节点并行处理以实现二维卷积运算中,根据获取的偏置数据,以及根据地址发生器生成的输入数据的地址和二维卷积核数据的地址分别读取的输入数据和二维卷积核数据,实现二维卷积运算并将运算结果输出至输出数据的地址,可以包括:
读取偏置数据、输入数据和二维卷积核数据;
对输入数据和二维卷积核数据进行相乘运算,得到的运算结果与二维卷积器上一次的计算结果累加得到第一结果;
判断二维卷积核地址是否等于二维卷积核X计数器的值、二维卷积核Y计数器的值以及输入通道数的乘积,如果二维卷积核地址不等于二维卷积核X计数器的值、二维卷积核Y计数器的值以及输入通道数的乘积,那么,重新读取输入数据和二维卷积核数据,循环执行累加运算以更新第一结果;
如果二维卷积核地址等于二维卷积核X计数器的值、二维卷积核Y计数器的值以及输入通道数的乘积,那么,对第一结果与偏置数据进行相加运算并作为输出数据输出,累加值清零。判断输出数据地址是否等于输入偏置X计数器的值、输入数据Y计数器的值以及二维卷积核数的乘积,如果输出数据地址不等于输入偏置X计数器的值、输入数据Y计数器的值以及二维卷积核数的乘积,那么,不输出输出数据,返回读取偏置数据、输入数据和二维卷积核数据的步骤,继续进行循环累加运算;如果输出数据地址等于输入偏置X计数器的值、输入数据Y计数器的值以及二维卷积核数的乘积,那么,计算结束,输出得到的输出数据。
本申请实施例提供的实现加速二维卷积的方法,提升了二维卷积加速器的应用灵活性和广泛性,适应了复杂多变的AI使用场景。
本申请还提供一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行上述任一项的实现加速二维卷积的方法。
本申请再提供一种实现加速二维卷积的设备,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行上述任一项所述的实现加速二维卷积的方法的步骤。
虽然本申请所揭露的实施方式如上,但所述的内容仅为便于理解本申请而采用的实施方式,并非用以限定本申请。任何本申请所属领域内的技术人员,在不脱离本申请所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本申请的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
Claims (18)
1.一种二维卷积加速器,包括:二维卷积计算模块、地址发生器、二维卷积器,其中,
二维卷积计算模块,设置为根据二维卷积运算的输入信息,计算二维卷积节点的数量n和偏置数据;
地址发生器,包括n个,设置为产生输入数据的地址、二维卷积核数据的地址以及输出数据的地址;
二维卷积器,包括n个,设置为根据偏置数据、输入数据的地址和二维卷积核数据的地址分别读取的输入数据和二维卷积核数据,实现二维卷积运算并将运算结果输出至输出数据的地址;
其中,一个地址发生器和一个二维卷积器构成一个二维卷积节点,n个二维卷积节点并行处理。
2.根据权利要求1所述的二维卷积加速器,还包括:第一缓存器、第二缓存器、第三缓存器,其中,
第一缓存器,设置为存储所述二维卷积运算的输入信息;
第二缓存器,设置为存储二维卷积运算值的所述偏置数据;
第三缓存器,设置为存储二维卷积核数据。
3.根据权利要求2所述的二维卷积加速器,还包括:地址选择器、第四缓存器,其中,
地址选择器,设置为根据不同地址将数据写入到相应数据缓存器的不同位置;
第四缓存器,设置为存储所述输出数据。
4.根据权利要求1~3任一项所述的二维卷积加速器,其中,所述二维卷积计算模块设置为:
根据所述二维卷积运算的输入信息中的被二维卷积数据的高H、二维卷积核的高h以及步长stride,计算当前参与并行运算的所述二维卷积节点的数量n;将预先设置的加一计数器的值与计算的到的n的值进行取余运算,运算结果作为所述地址偏置。
5.根据权利要求4所述的二维卷积加速器,其中,所述根据二维卷积运算的输入信息,计算当前参与并行运算的所述二维卷积节点的数量n,包括:
按照以下公式,根据所述二维卷积运算的输入信息中的被二维卷积数据的高H、二维卷积核的高h以及步长stride,计算当前参与并行运算的所述二维卷积节点的数量n:n=[(H-h)/stride]+1。
6.根据权利要求1~3任一项所述的二维卷积加速器,其中,所述地址发生器包括:二维卷积核Y计数器、二维卷积核X计数器、二维卷积核数计数器、输入通道计数器、输入Y计数器、二维卷积核加法器、输出加法器、输入加法器,其中,
输入Y计数器设置为:当二维卷积核Y计数器达到最大值时,输入Y计数器的值增加二维卷积运算的输入信息中的步长stride;当输入Y计数器达到最大值时,二维卷积核数计数器加1,同时输入Y计数器的值自动清零;
输入通道计数器设置为:当输入通道计数器达到最大值时,二维卷积核X计数器加1,同时输入通道计数器自动清零;
二维卷积核Y计数器设置为:当二维卷积核Y计数器达到最大值时,输入Y计数器加1,同时二维卷积核Y计数器自动清零;
二维卷积核X计数器设置为:当二维卷积核X计数器达到最大值时,二维卷积核Y计数器加1,同时二维卷积核X计数器自动清零;
二维卷积核数计数器设置为:当二维卷积核数计数器达到最大值时,二维卷积计算结束;
二维卷积核加法器,设置为:实现二维卷积核X计数器的值、二维卷积核Y计数器的值以及输入通道计数器的值的相加运算,结果为二维卷积核地址;
输出加法器,设置为:实现来自二维卷积计算模块的地址偏置与输入Y计数器的相加运算,结果为输出地址;
输入加法器,设置为:实现二维卷积核数计数器的值、二维卷积核加法器的结果,以及输出加法器的结果的相加运算,结果为输入地址。
7.根据权利要求6所述的二维卷积加速器,其中,
所述输入Y计数器的最大值为(W-w-1);
所述二维卷积核Y计数器的最大值为w;
所述输入通道计数器的最大值为输入通道数;
所述二维卷积核X计数器的最大值为h;
所述二维卷积核数计数器的最大值为二维卷积核的数量;
其中,W为所述二维卷积运算的输入信息中的被二维卷积数据的宽,w为所述二维卷积运算的输入信息中的二维卷积核的宽,h为所述二维卷积运算的输入信息中的二维卷积核的高。
8.根据权利要求6所述的二维卷积加速器,其中,所述二维卷积器设置为:
从所述第二缓存器中读取偏置数据,从所述第一缓存器和所述第三缓存器中分别读取输入数据和二维卷积核数据;
对输入数据和二维卷积核数据进行相乘运算,得到的结果与二维卷积器上一次的计算结果累加得到第一结果;
判断所述二维卷积核地址是否等于所述二维卷积核X计数器的值、所述二维卷积核Y计数器的值以及输入通道数的乘积,如果不等于,重新从所述第一缓存器和所述第三缓存器中分别读取输入数据和二维卷积核数据的步骤,循环执行累加运算以更新第一结果;
如果等于,对第一结果与所述偏置数据进行相加运算并作为输出数据输出,累加值清零;判断所述输出数据地址是否等于所述输入偏置X计数器的值、所述输入数据Y计数器的值以及所述二维卷积核数的乘积,如果不等于,返回从第二缓存器中读取偏置数据,从所述第一缓存器和所述第三缓存器中分别读取输入数据和二维卷积核数据的步骤,继续进行循环累加运算;如果等于,计算结束,输出得到的输出数据。
9.一种实现加速二维卷积的方法,包括:
根据二维卷积运算的输入信息,计算二维卷积节点的数量n和偏置数据;
n个二维卷积节点并行处理,实现二维卷积运算;
其中,一个二维卷积节点包括:一个用于根据偏置数据和二维卷积运算的输入信息产生输入数据的地址、二维卷积核数据的地址以及输出数据的地址的地址发生器,和一个根据输入数据的地址和二维卷积核数据的地址分别读取的输入数据和二维卷积核数据,实现二维卷积运算并将运算结果输出至输出数据的地址的二维卷积器。
10.根据权利要求9所述的方法,其中,所述根据二维卷积运算的输入信息,计算二维卷积节点的数量n,包括:
根据所述二维卷积运算的输入信息,计算当前参与并行运算的所述二维卷积节点的数量n;
将预先设置的加一计数器的值与计算的到的n的值进行取余运算,运算结果作为所述地址偏置。
11.根据权利要求10所述的方法,其中,所述根据所述二维卷积运算的输入信息,计算当前参与并行运算的所述二维卷积节点的数量n,包括:
按照以下公式,根据所述二维卷积运算的输入信息中的被二维卷积数据的高H、二维卷积核的高h以及步长stride,计算当前参与并行运算的所述二维卷积节点的数量n:n=[(H-h)/stride]+1。
12.根据权利要求9所述的方法,还包括:
所述二维卷积运算的输入信息存储在第一缓存器;
将所述偏置数据存储在第二缓存器;
将所述二维卷积核数据存储在第三缓存器。
13.根据权利要求12所述的方法,还包括:
根据不同地址将数据写入到相应数据缓存器的不同位置;
将所述输出数据存储在第四缓存器。
14.根据权利要求9、12或13所述的方法,其中,所述地址发生器包括:二维卷积核Y计数器、二维卷积核X计数器、二维卷积核数计数器、输入通道计数器、输入Y计数器、二维卷积核加法器、输出加法器、输入加法器;
所述二维卷积节点并行处理中的根据来自二维卷积计算模块的偏置数据和二维卷积运算的输入信息,产生输入数据的地址、二维卷积核数据的地址以及输出数据的地址,包括:
当二维卷积核Y计数器达到最大值时,输入Y计数器的值增加二维卷积运算的输入信息中的步长stride;当输入Y计数器达到最大值时,二维卷积核数计数器加1,同时输入Y计数器的值自动清零;
当输入通道计数器达到最大值时,二维卷积核X计数器加1,同时输入通道计数器自动清零;
当二维卷积核Y计数器达到最大值时,输入Y计数器加1,同时二维卷积核Y计数器自动清零;
当二维卷积核X计数器达到最大值时,二维卷积核Y计数器加1,同时二维卷积核X计数器自动清零;
当二维卷积核数计数器达到最大值时,二维卷积计算结束;
对二维卷积核X计数器的值、二维卷积核Y计数器的值以及输入通道计数器的值进行相加运算,结果为二维卷积核地址;
对所述地址偏置与输入Y计数器进行相加运算,结果为输出地址;
对二维卷积核数计数器的值、二维卷积核加法器的结果,以及输出地址进行相加运算,结果为输入地址。
15.根据权利要求14所述的方法,其中,
所述输入Y计数器的最大值为(W-w-1);
所述二维卷积核Y计数器的最大值为w;
所述输入通道计数器的最大值为输入通道数;
所述二维卷积核X计数器的最大值为h;
所述二维卷积核数计数器的最大值为二维卷积核的数量;
其中,W为所述二维卷积运算的输入信息中的被二维卷积数据的宽,w为所述二维卷积运算的输入信息中的二维卷积核的宽,h为所述二维卷积运算的输入信息中的二维卷积核的高。
16.根据权利要求14所述的方法,其中,所述二维卷积节点并行处理中的根据地址发生器生成的输入数据的地址和二维卷积核数据的地址分别读取的输入数据和二维卷积核数据,实现二维卷积运算并将运算结果输出至输出数据的地址,包括:
从所述第二缓存器中读取偏置数据,从所述第一缓存器和所述第三缓存器中分别读取输入数据和二维卷积核数据;
对输入数据和二维卷积核数据进行相乘运算,得到的结果与二维卷积器上一次的计算结果累加得到第一结果;
判断所述二维卷积核地址是否等于所述二维卷积核X计数器的值、所述二维卷积核Y计数器的值以及输入通道数的乘积,如果不等于,重新从所述第一缓存器和所述第三缓存器中分别读取输入数据和二维卷积核数据的步骤,循环执行累加运算以更新第一结果;
如果等于,对第一结果与所述偏置数据进行相加运算并作为输出数据输出,累加值清零;判断所述输出数据地址是否等于所述输入偏置X计数器的值、所述输入数据Y计数器的值以及所述二维卷积核数的乘积,如果不等于,返回从第二缓存器中读取偏置数据,从所述第一缓存器和所述第三缓存器中分别读取输入数据和二维卷积核数据的步骤,继续进行循环累加运算;如果等于,计算结束,输出得到的输出数据。
17.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求9~权利要求16任一项所述的实现加速二维卷积的方法。
18.一种实现加速二维卷积的设备,包括存储器和处理器,其中,存储器中存储有以下可被处理器执行的指令:用于执行权利要求9~权利要求16任一项所述的实现加速二维卷积的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110352174.4A CN115146767B (zh) | 2021-03-31 | 2021-03-31 | 一种二维卷积加速器及其实现加速二维卷积的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110352174.4A CN115146767B (zh) | 2021-03-31 | 2021-03-31 | 一种二维卷积加速器及其实现加速二维卷积的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115146767A true CN115146767A (zh) | 2022-10-04 |
CN115146767B CN115146767B (zh) | 2024-05-28 |
Family
ID=83405488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110352174.4A Active CN115146767B (zh) | 2021-03-31 | 2021-03-31 | 一种二维卷积加速器及其实现加速二维卷积的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115146767B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05181829A (ja) * | 1991-10-30 | 1993-07-23 | Olympus Optical Co Ltd | 信号処理装置 |
CN108665063A (zh) * | 2018-05-18 | 2018-10-16 | 南京大学 | 用于bnn硬件加速器的双向并行处理卷积加速*** |
CN108805266A (zh) * | 2018-05-21 | 2018-11-13 | 南京大学 | 一种可重构cnn高并发卷积加速器 |
CN109740731A (zh) * | 2018-12-15 | 2019-05-10 | 华南理工大学 | 一种自适应卷积层硬件加速器设计方法 |
WO2019184619A1 (zh) * | 2018-03-27 | 2019-10-03 | 腾讯科技(深圳)有限公司 | 卷积计算加速器、卷积计算方法及卷积计算设备 |
EP3648013A1 (en) * | 2018-11-02 | 2020-05-06 | Tata Consultancy Services Limited | Method and system for partitioning of deep convolution network for executing on computationally constraint devices |
CN111242289A (zh) * | 2020-01-19 | 2020-06-05 | 清华大学 | 一种规模可扩展的卷积神经网络加速***与方法 |
CN111738433A (zh) * | 2020-05-22 | 2020-10-02 | 华南理工大学 | 一种可重配置的卷积硬件加速器 |
CN112101510A (zh) * | 2020-10-10 | 2020-12-18 | 苏州浪潮智能科技有限公司 | 卷积神经网络推理加速方法、加速器、设备及存储介质 |
-
2021
- 2021-03-31 CN CN202110352174.4A patent/CN115146767B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05181829A (ja) * | 1991-10-30 | 1993-07-23 | Olympus Optical Co Ltd | 信号処理装置 |
WO2019184619A1 (zh) * | 2018-03-27 | 2019-10-03 | 腾讯科技(深圳)有限公司 | 卷积计算加速器、卷积计算方法及卷积计算设备 |
CN108665063A (zh) * | 2018-05-18 | 2018-10-16 | 南京大学 | 用于bnn硬件加速器的双向并行处理卷积加速*** |
CN108805266A (zh) * | 2018-05-21 | 2018-11-13 | 南京大学 | 一种可重构cnn高并发卷积加速器 |
EP3648013A1 (en) * | 2018-11-02 | 2020-05-06 | Tata Consultancy Services Limited | Method and system for partitioning of deep convolution network for executing on computationally constraint devices |
CN109740731A (zh) * | 2018-12-15 | 2019-05-10 | 华南理工大学 | 一种自适应卷积层硬件加速器设计方法 |
CN111242289A (zh) * | 2020-01-19 | 2020-06-05 | 清华大学 | 一种规模可扩展的卷积神经网络加速***与方法 |
CN111738433A (zh) * | 2020-05-22 | 2020-10-02 | 华南理工大学 | 一种可重配置的卷积硬件加速器 |
CN112101510A (zh) * | 2020-10-10 | 2020-12-18 | 苏州浪潮智能科技有限公司 | 卷积神经网络推理加速方法、加速器、设备及存储介质 |
Non-Patent Citations (3)
Title |
---|
LIN BAI ETC: ""A CNN Accelerator on FPGA Using Depthwise Separable Convolution"", 《IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS II: EXPRESS BRIEFS》, 17 August 2018 (2018-08-17) * |
文元美;余霆嵩;凌永权;: "基于边缘检测的卷积核数量确定方法", 计算机应用研究, no. 11, 15 November 2017 (2017-11-15) * |
胡宏宇;刘家瑞;高菲;高振海;梅兴泰;杨光;: "基于一维卷积神经网络的驾驶人身份识别方法", 中国公路学报, no. 08, 31 December 2020 (2020-12-31) * |
Also Published As
Publication number | Publication date |
---|---|
CN115146767B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200327079A1 (en) | Data processing method and device, dma controller, and computer readable storage medium | |
CN109756442B (zh) | 基于混淆电路的数据统计方法、装置以及设备 | |
US20220147795A1 (en) | Neural network tiling method, prediction method, and related apparatus | |
CN110737536A (zh) | 一种基于共享内存的消息存储方法和消息读取方法 | |
CN111931925B (zh) | 基于fpga的二值化神经网络的加速*** | |
EP3640813A1 (en) | Random walk method, apparatus and device, and cluster-based random walk method, apparatus and device | |
CN111064471B (zh) | 数据处理方法、装置及电子设备 | |
US20220391471A1 (en) | Method, circuit, and soc for performing matrix multiplication operation | |
CN115237599B (zh) | 一种渲染任务处理方法和装置 | |
CN111310115B (zh) | 数据处理方法、装置及芯片、电子设备、存储介质 | |
CN112929300B (zh) | 一种数据处理装置、方法、基站和存储介质 | |
CN115599764A (zh) | 一种表格数据的迁移方法、设备及介质 | |
CN114117992B (zh) | 一种序列化和反序列化方法、装置和电子设备 | |
CN114328315A (zh) | 基于dma的数据预处理方法、dma部件及芯片结构 | |
CN109844774B (zh) | 一种并行反卷积计算方法、单引擎计算方法及相关产品 | |
CN115146767B (zh) | 一种二维卷积加速器及其实现加速二维卷积的方法 | |
CN115145839B (zh) | 一种深度卷积加速器及其实现加速深度卷积的方法 | |
CN115830273B (zh) | 一种三维场景渲染前轻量化网格的优化方法及装置 | |
CN112115395A (zh) | 一种用于实现页面路由跳转时的动画配置的方法与设备 | |
CN110968538B (zh) | 一种数据缓冲方法和装置 | |
CN110659372A (zh) | 图片录入与访问方法、装置及设备 | |
US20210082082A1 (en) | Data processing method and processing circuit | |
CN114691612A (zh) | 数据写入方法及装置、数据读取方法及装置 | |
CN114202598A (zh) | 一种流体粒子的渲染方法、装置、***及存储介质 | |
CN111367464B (zh) | 一种存储空间管理方法及装置 |
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 |