CN112817735A - 计算装置、计算设备以及用于线程组累加的方法 - Google Patents
计算装置、计算设备以及用于线程组累加的方法 Download PDFInfo
- Publication number
- CN112817735A CN112817735A CN202110251644.8A CN202110251644A CN112817735A CN 112817735 A CN112817735 A CN 112817735A CN 202110251644 A CN202110251644 A CN 202110251644A CN 112817735 A CN112817735 A CN 112817735A
- Authority
- CN
- China
- Prior art keywords
- accumulation
- thread group
- calculation unit
- unit
- computing device
- 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
Links
- 238000009825 accumulation Methods 0.000 title claims abstract description 212
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000004364 calculation method Methods 0.000 claims abstract description 64
- 239000013598 vector Substances 0.000 claims abstract description 46
- 230000004044 response Effects 0.000 claims abstract description 17
- 230000001186 cumulative effect Effects 0.000 claims description 3
- 230000035508 accumulation Effects 0.000 description 155
- 238000010586 diagram Methods 0.000 description 11
- 238000010606 normalization Methods 0.000 description 8
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/544—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
- G06F7/5443—Sum of products
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/16—Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/50—Adding; Subtracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/76—Arrangements for rearranging, permuting or selecting data according to predetermined rules, independently of the content of the data
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Advance Control (AREA)
Abstract
本公开的实施例涉及计算装置、计算设备以及用于线程组累加的方法,涉及计算机领域。计算装置包括:存储单元;以及累加计算单元,与存储单元相耦接,被配置为:从与计算装置相耦接的向量处理单元接收第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址;响应于第一线程组累加指令,基于多个第一值生成当前累加结果;以及在存储单元中的第一存储地址中存储当前累加结果,以用于向量处理单元读取。由此,能够将线程组内的累加解耦到专用硬件进行处理,从而显著提升整体累加性能。
Description
技术领域
本公开的实施例总体涉及计算机领域,具体涉及计算装置、计算设备以及用于线程组累加的方法。
背景技术
向量处理单元中可以包括多个线程组(warp)。线程组内经常发生累加。例如,在循环神经网络(Recurrent Neural Network,RNN)中,存在大量的矩阵乘向量(MMV)和加操作。该操作能够在线程组的基础上保持累加结果。最后,需要在线程组内进行累加以生成最终结果。这能够通过以下方式实现:不断交换(shuffle)线程组通道(也称为线程)中的值以及随后对交换的值相加,或者通过使用共享存储单元来进行累加。
无论采用上述哪种方式,都会消耗大量指令来完成,呈现一种“长尾”效应。例如,给定累加维度中的1024个元素,通过16个MMV指令将结果累加到线程组内,随后需要15个指令用于线程组内累加。这造成了高达94%的巨大开销。
发明内容
提供了一种计算装置、计算设备以及用于线程组累加的方法,能够将线程组内的累加解耦到专用硬件进行处理,从而显著提升整体累加性能。
根据本公开的第一方面,提供了一种计算装置。该计算装置包括:存储单元;以及累加计算单元,与存储单元相耦接,被配置为:从与计算装置相耦接的向量处理单元接收第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址;响应于第一线程组累加指令,基于多个第一值生成当前累加结果;以及在存储单元中的第一存储地址中存储当前累加结果,以用于向量处理单元读取。
根据本公开的第二方面,提供了一种计算设备。该计算设备包括根据第一方面所述的计算装置;以及向量处理单元,与计算装置相耦接,被配置为:向计算装置中的累加计算单元发送第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址;以及从计算装置中的存储单元中的第一存储地址读取当前累加结果。
根据本公开的第三方面,提供了用于线程组累加的方法。该方法包括向量处理单元向累加计算单元发送第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址;累加计算单元响应于第一线程组累加指令,基于多个第一值生成当前累加结果;累加计算单元在与累加计算单元相耦接的存储单元中的第一存储地址中存储当前累加结果,以用于向量处理单元读取;以及向量处理单元从存储单元的第一存储地址读取当前累加结果。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素。
图1是根据本公开的实施例的计算设备100的示意图。
图2是根据本公开的实施例的累加计算单元200的示意框图。
图3是根据本公开的实施例的用于线程组累加的方法300的示意图。
图4示出了根据本公开的实施例的用于生成当前累加结果的方法400的示意图。
图5示出了根据本公开的另一实施例的用于生成当前累加结果的方法500的示意图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本文中使用的术语“包括”及其变形表示开放性包括,即“包括但不限于”。除非特别申明,术语“或”表示“和/或”。术语“基于”表示“至少部分地基于”。术语“一个示例实施例”和“一个实施例”表示“至少一个示例实施例”。术语“另一实施例”表示“至少一个另外的实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
如上所述,现有技术中线程组内累加需要大量的指令开销。
为了解决上述问题,本公开提供了一种计算装置、计算设备和用于线程组累加的方法,能够将线程组内的累加解耦到专用硬件进行处理,从而显著提升整体累加性能。
图1示出了根据本公开的实施例的计算设备100的示意框图。
如图1所示,计算设备100包括计算装置110和与计算装置110相耦接的向量处理单元120。
关于计算装置110,其例如可以包括但不限于加载存储单元(Load Store Unit,LSU)。应当理解,这只是举例说明,计算装置110也可以采用其他合适的电路来实现。计算装置110可以包括存储单元111和与存储单元111相耦接的累加计算单元112。
关于存储单元111,其可以被配置为存储累加计算单元112生成的累加结果。存储单元111可以包括随机存取存储器(RAM),例如包括但不限于静态随机存取存储器(SRAM)。应当理解,这只是举例说明,存储单元111也可以采用其他合适的存储器,本公开的范围在此不受限制。
关于累加计算单元112,其可以通过任何合适的电路来实现。累加计算单元112可以被配置为从向量处理单元120接收第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址。第一线程组累加指令、多个第一值和第一存储地址可以与向量处理单元120中的第一线程组相关联。例如,累加计算单元112中的第一线程组可以包括多个寄存器,用于存储多个第一值。第一线程组例如可以包括32个通道,多个第一值例如可以包括32个第一值。第一值例如为对应通道或者线程内部的累加结果。第一值例如包括但不限于浮点数。
累加计算单元112还可以被配置为响应于第一线程组累加指令,基于多个第一值生成当前累加结果。例如,累加计算单元112可以被配置为响应于第一线程组累加指令,对多个第一值进行累加,以生成当前累加结果。
累加计算单元112还可以被配置为在存储单元111中的第一存储地址中存储当前累加结果,以用于向量处理单元120读取。
关于向量处理单元120(也称为向量处理引擎),其可以包括多个线程组,每个线程组内具有多个通道(lane),例如32通道。虽然图1中示出了一个向量处理单元120和一个累加计算单元112。但是应当理解,向量处理单元120可以为多个。相应地,累加计算单元112也可以为多个。累加计算单元112可以与向量处理单元120一一对应。
向量处理单元120可以被配置为向计算装置110中的累加计算单元112发送第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址。向量处理单元120还可以被配置为从计算装置110中的存储单元111中的第一存储地址读取当前累加结果。
由此,能够将向量处理单元中的线程组内的累加解耦到专用硬件进行并行处理,便于线程组处理累加之外的向量运算,例如后续一批向量运算,从而显著提升整体累加性能。
在一些实施中,第一存储地址中存储有先前累加结果,在此情况下,累加计算单元112可以被配置为响应于第一线程组累加指令,从存储单元111中的第一存储地址获取已存储的累加结果。累加计算单元110还可以被配置为基于已存储的累加结果和多个第一值,生成当前累加结果。
由此,能够通过计算装置实现线程组内的多次累加。
在一些实施例中,累加计算单元112可以被配置为响应于第一线程组累加指令,依次对多个第一值中的预定数量的第一值进行累加,以生成多个中间累加结果。预定数量例如包括但不限于4、8、16等等。多个中间累加结果例如可以存储在累加计算单元112中的寄存器或者缓存中。累加计算单元112还可以被配置为对多个中间累加结果进行累加,以生成当前累加结果。
以32个第一值(例如A1-A21)和预定数量为8为例。累加计算单元112可以被配置为对第一值A1-A8进行累加,得到中间累加结果M1,随后对第一值A9-A16进行累加,得到中间累加结果M2,接着对第一值A17-A24进行累加,得到中间累加结果M3,随后对第一值A25-A32进行累加,得到中间累加结果M4,最后对中间累加结果M1-M4进行累加,以生成当前累加结果。
由此,通过多个周期对多个第一值中预定数量值进行依次累加,无需按照通道数量进行一次性累加,可以降低硬件成本。
图2示出了根据本公开的实施例的累加计算单元200的示意框图。
如图2所示,累加计算单元200可以32个寄存器201-1至201-32,用于存储从向量处理单元接收的32个浮点数。
累加计算单元200还可以包括控制模块202,被配置为从第一批8个寄存器(例如寄存器201-1至201-8)中获取8个浮点数,以及将8个浮点数分别输出到4个加法器203-206。加法器203-206被配置为对8个浮点数中的各对浮点数进行相加,以生成4个第一累加结果,以及将4个第一累加结果输出到加法器207-208。加法器207-208被配置为对4个第一累加结果中的各对结果进行相加,以生成2个第二累加结果,以及将2个第二累加结果输出到加法器209。加法器209被配置为对2个第二累加结果进行相加,以生成第三累加结果,以及将第三累加结果输出到规格化模块210。规格化模块210被配置为对第三累加结果进行规格化,以生成第一中间累加结果,以及将第一中间累加结果输出到控制模块202。控制模块202可以被配置为将第一中间累加结果存储到浮点数已累加过的寄存器(例如寄存器201-1至201-8中的任一个)中。
控制模块202还可以被配置为从第二批8个寄存器(例如寄存器201-9至201-16)中获取8个浮点数,以及将8个浮点数分别输出到4个加法器203-206,经过加法器207-209和规格化模块210之后,获得第二中间累加结果。控制模块202可以被配置为将第二中间累加结果存储到浮点数已累加过的寄存器(例如寄存器201-9至201-16中的任一个)中。
控制模块202还可以被配置为从第三批8个寄存器(例如寄存器201-17至201-24)中获取8个浮点数,以及将8个浮点数分别输出到4个加法器203-206,经过加法器207-209和规格化模块210之后,获得第三中间累加结果。控制模块202可以被配置为将第三中间累加结果存储到浮点数已累加过的寄存器(例如寄存器201-17至201-24中的任一个)中。
控制模块202还可以被配置为从第四批8个寄存器(例如寄存器201-25至201-32)中获取8个浮点数,以及将8个浮点数分别输出到4个加法器203-206,经过加法器207-209和规格化模块210之后,获得第四中间累加结果。控制模块202可以被配置为将第四中间累加结果存储到浮点数已累加过的寄存器(例如寄存器201-25至201-32中的任一个)中。
控制模块202还可以被配置为从存储有中间累加结果的4个寄存器获取4个中间累加结果,以及将4个中间累加结果输出到4个加法器203-206。加法器203-206中的另外4个输入为0。经过加法器207-209和规格化模块210之后,获得当前累加结果。
控制模块202可以被配置为将当前累加结果存储到存储单元中的第一存储地址。
加法器203-209可以采用任何合适的浮点加法电路来实现,以及规格化模块210可以采用任何合适的浮点规格化电路来实现。控制模块202可以采用任何的电路来实现。
应当理解,图2示出的框图仅是示例,累加计算单元可以采用任何合适的其他结构,本公开的范围在此不受限制。
由此,通过多个周期对32个浮点数中8个浮点数进行依次累加,无需按照32个通道进行一次性累加,可以降低硬件成本。
备选地或者附加地,在一些实施例中,累加计算单元112还可以被配置为从向量处理单元120接收第二线程组累加指令、与线程组通道数相对应的多个第二值以及第二存储地址。第二线程组累加指令、多个第二值和第二存储地址可以与向量处理单元120中的第二线程组相关联。在一些示例中,第二线程组可以与第一线程组相同,在此情况下,第二存储地址可以与第一存储地址相同。在另一些示例中,第二线程组可以与第一线程组不同,在此情况下,第二存储地址可以与第一存储地址不同。
累加计算单元112还可以被配置为响应于第二线程组累加指令,确定第二存储地址与第一存储地址是否相同。
累加计算单元112还可以被配置为如果确定第二存储地址与第一存储地址不同,则在存储单元111中的第一存储地址中存储当前累加结果,以用于向量处理单元120读取。
累加计算单元112还可以被配置为如果确定第二存储地址与第一存储地址相同,则基于多个第二值,更新当前累加结果。更新前和更新后的当前累加结果未被存储到存储单元111,而是存储在累加计算单元112内部,例如存储在累加计算单元112中的寄存器中。
由此,在生成当前累加结果之后,先暂存在累加计算单元112中,例如寄存器或者缓存中,在后续接收到不同的存储地址时,才将当前累加结果存储到存储单元111,从而在相同线程组内累加的情况下减少对存储单元111的存取操作,提高计算效率。
图3示出了根据本公开的实施例的用于线程组累加的方法300的示意图。应当理解的是,方法300还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在框302处,向量处理单元120向累加计算单元112发送第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址。
在框304处,累加计算单元112可以响应于第一线程组累加指令,基于多个第一值生成当前累加结果。
在框306处,累加计算单元112可以在存储单元111中的第一存储地址中存储当前累加结果,以用于向量处理单元120读取。
在框308处,向量处理单元120从存储单元111中的第一存储地址读取当前累加结果。
由此,能够将向量处理单元的线程组内的累加解耦到专用硬件进行并行处理,便于线程组处理累加之外的向量运算,例如后续一批向量运算,从而显著提升整体累加性能。
图4示出了根据本公开的实施例的用于生成当前累加结果的方法400的示意图。例如,方法400可以由图1中的累加计算单元112来执行。应当理解的是,方法400还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在框402处,累加计算单元112响应于第一线程组累加指令,从存储单元111中的第一存储地址获取已存储的累加结果。
在框404处,累加计算单元112基于已存储的累加结果和多个第一值,生成当前累加结果。
由此,能够通过累加计算单元和存储单元实现线程组内的多次累加。
图5示出了根据本公开的另一实施例的用于生成当前累加结果的方法500的示意图。例如,方法500可以由图1中的累加计算单元112来执行。应当理解的是,方法500还可以包括未示出的附加框和/或可以省略所示出的框,本公开的范围在此方面不受限制。
在框502处,累加计算单元112响应于第一线程组累加指令,依次对多个第一值中的预定数量的第一值进行累加,以生成多个中间累加结果。
在框504处,累加计算单元112对多个中间累加结果进行累加,以生成当前累加结果。
由此,通过多个周期对多个第一值中预定数量值进行依次累加,无需按照通道数量进行一次性累加,可以降低硬件成本。
备选地或者附加地,在一些实施例中,向量处理单元120还可以向累加计算单元112发送第二线程组累加指令、与线程组通道数相对应的多个第二值以及第二存储地址。
随后,累加计算单元112可以响应于第二线程组累加指令,确定第二存储地址与第一存储地址是否相同。
如果累加计算单元112确定第二存储地址与第一存储地址不同,则在存储单元111中的第一存储地址中存储当前累加结果,以用于向量处理单元120读取。之后,累加计算单元112可以基于多个第二值,生成另外累加结果,以及在存储单元111中的第二存储地址存储另外累加结果。
如果累加计算单元112确定第二存储地址与第一存储地址相同,则基于多个第二值,更新当前累加结果。
由此,在生成当前累加结果之后,先暂存在累加计算单元中,例如寄存器或者缓存中,在后续接收到不同的存储地址时,才将当前累加结果存储到存储单元,从而在相同线程组内累加的情况下减少对存储单元的存取操作,提高计算效率。
本领域技术人员可以理解,这里所描述的方法步骤不仅仅局限于附图中所示例性示出的顺序,而是可以按照任何其他可行的顺序来执行。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。
本公开的以上描述用于使本领域的任何普通技术人员能够实现或使用本公开。对于本领域普通技术人员来说,本公开的各种修改都是显而易见的,并且本文定义的一般性原理也可以在不脱离本公开的精神和保护范围的情况下应用于其它变形。因此,本公开并不限于本文所述的实例和设计,而是与本文公开的原理和新颖性特性的最广范围相一致。
Claims (10)
1.一种计算装置,包括:
存储单元;以及
累加计算单元,与所述存储单元相耦接,被配置为:
从与所述计算装置相耦接的向量处理单元接收第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址;
响应于所述第一线程组累加指令,基于所述多个第一值生成当前累加结果;以及
在所述存储单元中的所述第一存储地址中存储所述当前累加结果,以用于所述向量处理单元读取。
2.根据权利要求1所述的计算装置,其中所述累加计算单元还被配置为:
响应于所述第一线程组累加指令,从所述存储单元中的所述第一存储地址获取已存储的累加结果;以及
基于所述已存储的累加结果和所述多个第一值,生成所述当前累加结果。
3.根据权利要求1所述的计算装置,其中所述累加计算单元还被配置为:
响应于所述第一线程组累加指令,依次对所述多个第一值中的预定数量的第一值进行累加,以生成多个中间累加结果;以及
对所述多个中间累加结果进行累加,以生成所述当前累加结果。
4.根据权利要求1所述的计算装置,其中所述累加计算单元还被配置为:
从所述向量处理单元接收第二线程组累加指令、与所述线程组通道数相对应的多个第二值以及第二存储地址;
响应于所述第二线程组累加指令,确定所述第二存储地址与所述第一存储地址是否相同;
如果确定所述第二存储地址与所述第一存储地址不同,则在所述存储单元中的所述第一存储地址中存储所述当前累加结果,以用于所述向量处理单元读取;以及
如果确定所述第二存储地址与所述第一存储地址相同,则基于所述多个第二值,更新所述当前累加结果。
5.根据权利要求1所述的计算装置,所述计算装置包括加载存储单元。
6.一种计算设备,包括:
根据权利要求1-5任一项所述的计算装置;以及
向量处理单元,与所述计算装置相耦接,被配置为:
向所述计算装置中的累加计算单元发送第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址;以及
从所述计算装置中的存储单元中的所述第一存储地址读取当前累加结果。
7.一种用于线程组累加的方法,包括:
向量处理单元向累加计算单元发送第一线程组累加指令、与线程组通道数相对应的多个第一值和第一存储地址;
所述累加计算单元响应于所述第一线程组累加指令,基于所述多个第一值生成当前累加结果;
所述累加计算单元在与所述累加计算单元相耦接的存储单元中的所述第一存储地址中存储所述当前累加结果,以用于所述向量处理单元读取;以及
所述向量处理单元从所述存储单元中的所述第一存储地址读取所述当前累加结果。
8.根据权利要求7所述的方法,其中所述累加计算单元生成所述当前累加结果包括:
所述累加计算单元响应于所述第一线程组累加指令,从所述存储单元中的所述第一存储地址获取已存储的累加结果;以及
所述累加计算单元基于所述已存储的累加结果和所述多个第一值,生成所述当前累加结果。
9.根据权利要求7所述的方法,其中所述累加计算单元生成所述当前累加结果包括:
所述累加计算单元响应于所述第一线程组累加指令,依次对所述多个第一值中的预定数量的第一值进行累加,以生成多个中间累加结果;以及
所述累加计算单元对所述多个中间累加结果进行累加,以生成所述当前累加结果。
10.根据权利要求7所述的方法,还包括:
所述向量处理单元向所述累加计算单元发送第二线程组累加指令、与所述线程组通道数相对应的多个第二值以及第二存储地址;
所述累加计算单元响应于所述第二线程组累加指令,确定所述第二存储地址与所述第一存储地址是否相同;
所述累加计算单元如果确定所述第二存储地址与所述第一存储地址不同,则在所述存储单元中的所述第一存储地址中存储所述当前累加结果,以用于所述向量处理单元读取;以及
所述累加计算单元如果确定所述第二存储地址与所述第一存储地址相同,则基于所述多个第二值,更新所述当前累加结果。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110251644.8A CN112817735A (zh) | 2021-03-08 | 2021-03-08 | 计算装置、计算设备以及用于线程组累加的方法 |
US17/686,409 US20220284075A1 (en) | 2021-03-08 | 2022-03-04 | Computing device, computing apparatus and method of warp accumulation |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110251644.8A CN112817735A (zh) | 2021-03-08 | 2021-03-08 | 计算装置、计算设备以及用于线程组累加的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112817735A true CN112817735A (zh) | 2021-05-18 |
Family
ID=75863004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110251644.8A Pending CN112817735A (zh) | 2021-03-08 | 2021-03-08 | 计算装置、计算设备以及用于线程组累加的方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20220284075A1 (zh) |
CN (1) | CN112817735A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297111A (zh) * | 2021-06-11 | 2021-08-24 | 上海壁仞智能科技有限公司 | 人工智能芯片及其操作方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019647A (zh) * | 2012-11-28 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 具有浮点精度保持功能的浮点累加/累减运算方法 |
CN109542512A (zh) * | 2018-11-06 | 2019-03-29 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置和存储介质 |
US20200326946A1 (en) * | 2019-04-12 | 2020-10-15 | Alibaba Group Holding Limited | Multiply-accumulate instrcution processing method and apparatus |
-
2021
- 2021-03-08 CN CN202110251644.8A patent/CN112817735A/zh active Pending
-
2022
- 2022-03-04 US US17/686,409 patent/US20220284075A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019647A (zh) * | 2012-11-28 | 2013-04-03 | 中国人民解放军国防科学技术大学 | 具有浮点精度保持功能的浮点累加/累减运算方法 |
CN109542512A (zh) * | 2018-11-06 | 2019-03-29 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置和存储介质 |
US20200326946A1 (en) * | 2019-04-12 | 2020-10-15 | Alibaba Group Holding Limited | Multiply-accumulate instrcution processing method and apparatus |
CN111814093A (zh) * | 2019-04-12 | 2020-10-23 | 杭州中天微系统有限公司 | 一种乘累加指令的处理方法和处理装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113297111A (zh) * | 2021-06-11 | 2021-08-24 | 上海壁仞智能科技有限公司 | 人工智能芯片及其操作方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220284075A1 (en) | 2022-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12020151B2 (en) | Neural network processor | |
US10379816B2 (en) | Data accumulation apparatus and method, and digital signal processing device | |
US8386547B2 (en) | Instruction and logic for performing range detection | |
US20230254145A1 (en) | System and method to improve efficiency in multiplicationladder-based cryptographic operations | |
CN108268503B (zh) | 一种数据库的存储、查询方法及装置 | |
WO2022068328A1 (zh) | 数据迁移的方法、装置、处理器和计算设备 | |
CN112970024A (zh) | 大型文档语料库中的令牌匹配 | |
EP0284364A2 (en) | High speed computer system | |
CN105677755A (zh) | 一种处理图数据的方法及装置 | |
US7415580B2 (en) | System for determining the position of an element in memory | |
US20170293468A1 (en) | Efficient handling of sort payload in a column organized relational database | |
CN112817735A (zh) | 计算装置、计算设备以及用于线程组累加的方法 | |
US7734456B2 (en) | Method and apparatus for priority based data processing | |
CN110727666A (zh) | 面向工业互联网平台的缓存组件、方法、设备及存储介质 | |
CN114547086B (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN116484929A (zh) | 一种基于fpga的点云目标检测神经网络加速器和加速方法 | |
CN115994040A (zh) | 计算系统以及进行数据广播和数据归约的方法及存储介质 | |
US6895493B2 (en) | System and method for processing data in an integrated circuit environment | |
US11436137B2 (en) | Memory device and operation method for performing wear leveling on a memory device | |
CN112465105A (zh) | 记录学习程序的计算机可读记录介质以及学习方法 | |
CN111124312B (zh) | 数据去重的方法及其装置 | |
CN111507178B (zh) | 数据处理的优化方法及装置、存储介质、计算机设备 | |
JP6485594B2 (ja) | メモリ制御装置およびメモリ制御方法 | |
US8364915B2 (en) | Method, apparatus and system for generating access information from an LRU tracking list | |
CN112561047B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Country or region after: China Address after: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Applicant after: Shanghai Bi Ren Technology Co.,Ltd. Address before: 201114 room 1302, 13 / F, building 16, 2388 Chenhang Road, Minhang District, Shanghai Applicant before: Shanghai Bilin Intelligent Technology Co.,Ltd. Country or region before: China |