CN117852600A - 人工智能芯片及其操作方法和机器可读存储介质 - Google Patents
人工智能芯片及其操作方法和机器可读存储介质 Download PDFInfo
- Publication number
- CN117852600A CN117852600A CN202410251223.9A CN202410251223A CN117852600A CN 117852600 A CN117852600 A CN 117852600A CN 202410251223 A CN202410251223 A CN 202410251223A CN 117852600 A CN117852600 A CN 117852600A
- Authority
- CN
- China
- Prior art keywords
- tensor
- circuit
- shared memory
- core
- input buffer
- 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 24
- 238000013473 artificial intelligence Methods 0.000 title claims description 48
- 238000004364 calculation method Methods 0.000 claims abstract description 108
- 239000000872 buffer Substances 0.000 claims abstract description 94
- 238000012546 transfer Methods 0.000 claims description 9
- 239000011159 matrix material Substances 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 7
- 238000013461 design Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000011773 genetically engineered mouse model Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供一种人工智能芯片及其操作方法和机器可读存储介质。人工智能芯片包括共享内存、输入缓冲器、加载存储电路、张量核以及非张量计算电路。加载存储电路耦接至共享内存和输入缓冲器。加载存储电路选择性地将计算数据提供给共享内存和输入缓冲器其中至少一者。张量核耦接至输入缓冲器。张量核取用输入缓冲器的计算数据去进行张量计算。非张量计算电路耦接至共享内存。非张量计算电路取用共享内存的计算数据去进行非张量计算。
Description
技术领域
本发明涉及一种电子装置,且特别涉及一种人工智能芯片及其操作方法和机器可读存储介质。
背景技术
诸如人工智能(artificial intelligence,AI)芯片等运算装置可以提供巨大算力。运算装置的巨大算力源于内部大量的硬件执行单元(Execution Unit,EU,或称执行核)。一个AI芯片通常包含多个流处理器簇(Stream Processor Cluster,SPC),每一个流处理器簇包含多个计算核(Compute Unit,CU,或称计算单元),例如张量核(tensor core)、矢量核(vector core)和其他计算核,其他计算核例如整数(Integer,INT)计算核或浮点数(floating point,FP)计算核。每一个计算核通常包含多个执行核。通过编程将各种类型的计算核进行组织,流处理器簇可以支持通用计算、科学计算和神经网络计算。在同一个流处理器簇中,张量核和矢量核共享本地的同一个寄存器堆(register file,RF)。在许多计算任务场景中,由于张量核和矢量核的数据来源都是同一个寄存器堆,导致张量核和矢量核只能分时执行(张量核和矢量核无法并发执行)。
发明内容
本发明是针对一种人工智能(artificial intelligence,AI)芯片及其操作方法和机器可读存储介质,以使张量核以及非张量计算电路可以并发执行计算任务。
在根据本发明的实施例中,所述人工智能芯片包括共享内存(share memory)、输入缓冲器(input buffer)、加载存储电路(load store circuit)、张量核(tensor core)以及至少一个非张量计算电路。加载存储电路耦接至共享内存和输入缓冲器。加载存储电路选择性地将计算数据提供给共享内存和输入缓冲器其中至少一者。张量核耦接至输入缓冲器。张量核取用输入缓冲器的计算数据以进行张量计算。所述至少一个非张量计算电路耦接至共享内存。所述至少一个非张量计算电路取用共享内存的计算数据以进行非张量计算。
在根据本发明的实施例中,所述操作方法包括:由加载存储电路选择性地将计算数据提供给共享内存和输入缓冲器其中至少一者;响应于加载存储电路将计算数据提供给输入缓冲器,由张量核取用输入缓冲器的计算数据去进行张量计算;以及响应于加载存储电路将计算数据提供给共享内存,由所述至少一个非张量计算电路取用共享内存的计算数据去进行非张量计算。
在根据本发明的实施例中,所述机器可读存储介质用于存储非暂时性机器可读指令。当所述非暂时性机器可读指令由计算机执行时,可以实现所述操作方法。
基于上述,张量核的计算数据来源(输入缓冲器)不同于非张量计算电路的计算数据来源(共享内存)。输入缓冲器的数据输出操作与共享内存的数据输出操作互不干涉。因此在许多计算任务场景中,张量核以及非张量计算电路可以并发执行相同或不同的计算任务。
附图说明
图1是依照一实施例所绘示,人工智能(AI)芯片的电路方块(circuit block)示意图。
图2是依照本发明的一实施例的一种AI芯片的电路方块示意图。
图3是依照本发明的一实施例的一种AI芯片的操作方法的流程示意图。
图4是依照本发明的一实施例所绘示,加载存储电路的电路方块示意图。
附图标记说明:
10、20:主内存
100、200:人工智能(AI)芯片
110、210:二级缓存
130、230:共享内存
140_1、140_n:计算电路
141_1、241_1:寄存器堆
142_1:矢量核
143_1、260:张量核
220:加载存储电路
221:一点五级缓冲器
222:写缓存
240_1、240_m:非张量计算电路
242_1:矢量核
250:输入缓冲器
S310、S320、S330:步骤
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在图式和描述中用来表示相同或相似部分。
在本案说明书全文(包括权利要求)中所使用的“耦接(或连接)”一词可指任何直接或间接的连接手段。举例而言,若文中描述第一装置耦接(或连接)于第二装置,则应该被解释成该第一装置可以直接连接于该第二装置,或者该第一装置可以透过其他装置或某种连接手段而间接地连接至该第二装置。本案说明书全文(包括权利要求)中提及的“第一”、“第二”等用语是用以命名组件(element)的名称,或区别不同实施例或范围,而并非用来限制组件数量的上限或下限,亦非用来限制组件的次序。另外,凡可能之处,在附图及实施方式中使用相同标号的组件/构件/步骤代表相同或类似部分。不同实施例中使用相同标号或使用相同用语的组件/构件/步骤可以相互参照相关说明。
图1是依照一实施例所绘示,人工智能(artificial intelligence,AI)芯片100的电路方块(circuit block)示意图。在相关技术中,图1所示AI芯片100包括二级缓存(L2cache)110、共享内存(share memory)130以及多个计算电路140_1、…、140_n。二级缓存110可以存取主内存(main memory)10,因此主内存10的部分内容可以被预加载至二级缓存110,以及二级缓存110的内容可以被存储(更新)至主内存10。依照计算任务,二级缓存110的部分内容可以被写入共享内存130。计算电路140_1~140_n可以存取共享内存130。计算电路140_1~140_n的数量n可以依照实际设计来决定。举例来说,AI芯片100可以包括两个、三个或更多个计算电路。
每一个计算电路140_1~140_n包括寄存器堆(register file,RF)、矢量核(vector core)以及张量核(tensor core)。在此将以计算电路140_1作为说明范例。其余计算电路(例如计算电路140_n)可以参照计算电路140_1的相关说明并且加以类推。计算电路140_1包括寄存器堆141_1、矢量核142_1以及张量核143_1。寄存器堆141_1耦接至共享内存130。相较于寄存器堆141_1,共享内存130的访存速度相对较慢,但是共享内存130的容量较大。矢量核142_1和张量核143_1耦接至寄存器堆141_1。矢量核142_1通过寄存器堆141_1取用共享内存130的计算数据去进行矢量计算(例如传统标量和矢量运算)。张量核143_1通过寄存器堆141_1取用共享内存130的计算数据去进行张量计算(例如卷积运算和矩阵乘法)。在图1所示实施例中,多个小张量核分布在众多的计算电路140_1~140_n中。不论是张量核143_1还是矢量核142_1都需要和寄存器堆141_1进行数据交互。
主内存10可以包括高带宽内存(High Bandwidth Memory,HBM)或是其他类型的内存。数据从主内存10经由二级缓存110进入共享内存130,再到每个计算电路140_1~140_n的寄存器堆内。以计算电路140_1为例,如果计算任务所对应的计算数据是矢量计算数据,则矢量计算数据会从寄存器堆141_1被传输进入矢量核142_1。如果计算任务所对应的计算数据是张量计算数据(例如矩阵运算和卷积运算数据),则张量计算数据会从寄存器堆141_1被传输进入张量核143_1。通过编程将各种类型的计算核(例如矢量核142_1和张量核143_1)进行组织,AI芯片100可以支持通用计算、科学计算、神经网络计算或其他运算。由于矢量核142_1的数据来源和张量核143_1的数据来源都是寄存器堆141_1,而寄存器堆141_1无法同时向两个计算核142_1和143_1发送数据,导致矢量核142_1和张量核143_1只能串行执行,无法并发执行。
下述实施例将引入新的电路结构,以使张量核以及非张量计算电路(例如矢量核)可以并发执行相同或不同的计算任务。针对张量核和非张量计算电路需要并发运行的场景,下述实施例引入张量核所专用的输入缓冲器。因为输入缓冲器的数据输出操作与共享内存的数据输出操作互不干涉,所以张量核以及非张量计算电路可以并发执行相同或不同的计算任务,提高了计算效率。再者,下述实施例的电路结构可以避免图1所示“矢量核142_1和张量核143_1互相抢占共享内存的带宽”的问题。
图2是依照本发明的一实施例的一种AI芯片200的电路方块示意图。图2所示AI芯片200包括二级缓存210、加载存储电路(load store circuit)220、共享内存230、非张量计算电路(例如图2所示非张量计算电路240_1、…、240_m)、输入缓冲器(input buffer)250以及张量核260。二级缓存210可以存取主内存20。图2所示主内存20和二级缓存210可以参照图1所示主内存10和二级缓存110的相关说明并且加以类推,故不再赘述。依照不同的设计,在一些实施例中,加载存储电路220以及张量核260其中至少一者的实现方式可以是硬件(hardware)电路。在另一些实施例中,加载存储电路220以及张量核260其中至少一者的实现方式可以是硬件、固件(firmware)、软件(software,即程序)中的多者的组合形式。
以硬件形式而言,上述加载存储电路220以及张量核260其中至少一者可以实现于集成电路(integrated circuit)上的逻辑电路。举例来说,加载存储电路220以及张量核260其中至少一者的相关功能可以被实现于一或多个控制器、硬件控制器、微控制器(Microcontroller)、硬件处理器(hardware processor)、微处理器(Microprocessor)、特殊应用集成电路(Application-specific integrated circuit,ASIC)、数字信号处理器(digital signal processor,DSP)、场可程序逻辑门阵列(Field Programmable GateArray,FPGA)、中央处理器(Central Processing Unit,CPU)及/或其他处理单元中的各种逻辑区块、模块和电路。加载存储电路220以及张量核260其中至少一者的相关功能可以利用硬件描述语言(hardware description languages,例如Verilog HDL或VHDL)或其他合适的编程语言来实现为硬件电路,例如集成电路中的各种逻辑区块、模块和电路。
以软件形式及/或固件形式而言,上述加载存储电路220以及张量核260其中至少一者的相关功能可以被实现为编程码(programming codes)。例如,利用一般的编程语言(programming languages,例如C、C++或汇编语言)或其他合适的编程语言来实现加载存储电路220以及张量核260其中至少一者。所述编程码可以被记录/存放在“非临时的机器可读存储介质(non-transitory machine-readable storage medium)”中。在一些实施例中,所述非临时的机器可读取存储介质例如包括半导体内存以及(或是)存储装置。所述半导体内存包括记忆卡、只读存储器(Read Only Memory,ROM)、闪存(FLASH memory)、可程序设计的逻辑电路或是其他半导体内存。所述存储装置包括硬盘(hard disk drive,HDD)、固态硬盘(Solid-state drive,SSD)或是其他存储装置。电子设备(例如CPU、硬件控制器、微控制器、硬件处理器或微处理器)可以从所述非临时的机器可读取存储介质中读取并执行所述编程码,从而实现加载存储电路220以及张量核260其中至少一者的相关功能。
加载存储电路220可以存取二级缓存210。加载存储电路220耦接至共享内存230和输入缓冲器250。依照计算任务,加载存储电路220可以将二级缓存210的部分内容写入共享内存230和输入缓冲器250其中至少一者。图2所示共享内存230可以参照图1所示共享内存130的相关说明并且加以类推,故不再赘述。非张量计算电路240_1~240_m的数量m可以依照实际设计来决定。非张量计算电路240_1~240_m耦接至共享内存230。非张量计算电路240_1~240_m可以存取共享内存230。每一个非张量计算电路240_1~240_m包括寄存器堆以及多个非张量计算核。
在此将以非张量计算电路240_1作为说明范例。其余非张量计算电路(例如非张量计算电路240_m)可以参照非张量计算电路240_1的相关说明并且加以类推。非张量计算电路240_1包括寄存器堆241_1以及多个矢量核242_1。图2所示寄存器堆241_1可以参照图1所示寄存器堆141_1的相关说明并且加以类推,故不再赘述。矢量核242_1耦接至寄存器堆241_1。矢量核242_1通过寄存器堆241_1取用共享内存230的计算数据去进行非张量计算(例如矢量计算)。依照实际设计,这些矢量核242_1可以包含矢量核和其他非张量计算核,例如整数(Integer,INT)计算核或浮点数(floating point,FP)计算核。所述矢量核可以通过寄存器堆241_1取用共享内存230的计算数据去进行矢量计算。
张量核260耦接至输入缓冲器250。张量核260取用输入缓冲器250的计算数据去进行张量计算。举例来说,张量计算可以包括卷积运算、通用矩阵乘法(General MatrixMultiply,GEMM)和其他张量计算。依照实际设计,输入缓冲器250可以包括通用矩阵乘法输入缓冲器(GEMM input buffer,GIB)或是其他缓冲器。通过编程将非张量计算电路240_1~240_m和张量核260进行组织,AI芯片200可以支持通用计算、科学计算、神经网络计算或其他运算。
图3是依照本发明的一实施例的一种AI芯片的操作方法的流程示意图。在一些实施例中,图3所示操作方法可以实现于固件或软件(即程序)。例如,图3所示操作方法的相关操作可以被实现为非暂时性机器可读指令(编程码或程序),而所述非暂时性机器可读指令可以被存储在机器可读存储介质。当非暂时性机器可读指令由计算机执行时可以实现图3所示操作方法。在另一些实施例中,图3所示操作方法可以实现于硬件,例如实现于图2所示AI芯片200。
请参照图2与图3,在步骤S310中,加载存储电路220选择性地将计算数据提供给共享内存230和输入缓冲器250其中至少一者。举例来说,加载存储电路220可以依照计算任务选择性地将计算数据从二级缓存210搬移至共享内存230和输入缓冲器250其中至少一者。在其他实施例中,二级缓存210可能被省略,而由加载存储电路220存取主内存20。在二级缓存210被省略的实施例中,加载存储电路220可以依照计算任务选择性地将计算数据从在AI芯片200外部的主内存20搬移至共享内存230和输入缓冲器250其中至少一者。
在步骤S320中,张量核260可以取用输入缓冲器250的计算数据去进行张量计算。张量计算的结果可以选择性的被传送给加载存储电路220或是非张量计算电路240_1~240_m其中至少一者。举例来说,当张量核260将张量计算结果输出给加载存储电路220时,加载存储电路220可以将张量计算结果传输给共享内存230,以供非张量计算电路240_1~240_m其中任何一者取用。或者,当张量核260将张量计算结果输出给加载存储电路220时,加载存储电路220可以将所述张量计算结果传输给二级缓存210。
当张量核260将张量计算结果输出给非张量计算电路240_1~240_m其中任何一者时,所述非张量计算电路可以取用所述张量计算结果而生成非张量计算结果,然后通过共享内存230将所述非张量计算结果输出给加载存储电路220。加载存储电路220将所述非张量计算结果传输给输入缓冲器250,以供张量核260取用。在这样的操作情境中,“加载存储电路220”、“非张量计算电路240_1~240_m”和“张量核260”三者之间可以形成生产者和消费者的关系。也就是说,张量核260可以将张量计算结果输出到非张量计算电路240_1~240_m中进行非张量计算(例如矢量运算),而非张量计算结果可以通过加载存储电路220再被张量核260使用。如此,AI芯片200在这样的操作情境中可以避免张量核260或者非张量计算电路240_1~240_m的输出数据被输出到二级缓存210或主内存20,达到数据复用的目的。
在步骤S330中,非张量计算电路240_1~240_m其中任何一者可以取用共享内存230的计算数据去进行非张量计算。非张量计算的结果可以通过寄存器堆而被传送给共享内存230。举例来说,矢量核242_1可以通过寄存器堆241_1将非张量计算的结果传送给共享内存230。
综上所述,张量核260的计算数据来源(输入缓冲器250)不同于非张量计算电路240_1~240_m的计算数据来源(共享内存230)。基于实际设计,在一些实施例中,输入缓冲器250可以是一块大容量的随机存取内存(Random-access memory,RAM),例如静态随机存取内存(Static random-access memory,SRAM)或是其他类型的内存。输入缓冲器250可以缓存用于大规模矩阵或卷积运算的数据,使得张量核260不需频繁访问二级缓存210进行数据的读取。在张量核260运算前,加载存储电路220将数据搬运到输入缓冲器250中。在张量核260运算开始后,张量核260只从输入缓冲器250中取数据以参与运算。输入缓冲器250的数据输出操作与共享内存230的数据输出操作互不干涉。由于张量核260的运算过程并不涉及寄存器堆(例如寄存器堆241_1)、共享内存230和二级缓存210等存储区域,因此在许多计算任务场景中,张量核260以及非张量计算电路240_1~240_m可以并发执行相同或不同的计算任务。
图4是依照本发明的一实施例所绘示,加载存储电路220的电路方块示意图。图4所示加载存储电路220可以作为图2所示加载存储电路220的诸多实施范例之一。图4所示二级缓存210、加载存储电路220、共享内存230、非张量计算电路240_1~240_m、输入缓冲器250以及张量核260可以参照图2所示二级缓存210、加载存储电路220、共享内存230、非张量计算电路240_1~240_m、输入缓冲器250以及张量核260的相关说明,故在此不再赘述。
在图4所示实施例中,加载存储电路220包括一点五级缓冲器(L1.5 buffer)221和写缓存(write cache)222。一点五级缓冲器221耦接于二级缓存210和共享内存230之间。一点五级缓冲器221还耦接于二级缓存210和输入缓冲器250之间。写缓存222耦接于二级缓存210和张量核260之间。当张量核260将张量计算结果输出给写缓存222时,写缓存222可以将所述张量计算结果传输给二级缓存210。当张量核260将张量计算结果输出给一点五级缓冲器221时,一点五级缓冲器221可以将所述张量计算结果传输给共享内存230,以供非张量计算电路240_1~240_m取用。
当张量核260将张量计算结果输出给非张量计算电路240_1~240_m时,非张量计算电路240_1~240_m可以取用所述张量计算结果而生成非张量计算结果。非张量计算电路240_1~240_m可以通过共享内存230将所述非张量计算结果输出给一点五级缓冲器221,然后一点五级缓冲器221将所述非张量计算结果传输给输入缓冲器250,以供张量核260取用。在这样的操作情境中,“一点五级缓冲器221”、“非张量计算电路240_1~240_m”和“张量核260”三者之间可以形成生产者和消费者的关系。也就是说,张量核260可以将张量计算结果输出到非张量计算电路240_1~240_m中进行非张量计算(例如矢量运算),而所述非张量计算结果可以通过一点五级缓冲器221再被张量核260使用。如此,AI芯片200在这样的操作情境中可以避免张量核260或者非张量计算电路240_1~240_m的输出数据被输出到二级缓存210或主内存20,达到数据复用的目的。
综上所述,张量核260的计算数据来源(输入缓冲器250)不同于非张量计算电路240_1~240_m的计算数据来源(共享内存230)。输入缓冲器250的数据输出操作与共享内存230的数据输出操作互不干涉。因此在许多计算任务场景中,张量核260以及非张量计算电路240_1~240_m可以并发执行相同或不同的计算任务。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (20)
1.一种人工智能芯片,其特征在于,所述人工智能芯片包括:
共享内存;
输入缓冲器;
加载存储电路,耦接至所述共享内存和所述输入缓冲器,其中所述加载存储电路选择性地将计算数据提供给所述共享内存和所述输入缓冲器其中至少一者;
张量核,耦接至所述输入缓冲器,其中所述张量核取用所述输入缓冲器的所述计算数据以进行张量计算;以及
至少一个非张量计算电路,耦接至所述共享内存,其中所述至少一个非张量计算电路取用所述共享内存的所述计算数据以进行非张量计算。
2.根据权利要求1所述的人工智能芯片,其特征在于,所述加载存储电路依照计算任务选择性地将所述计算数据从在所述人工智能芯片外部的主内存搬移至所述共享内存和所述输入缓冲器其中至少一者。
3.根据权利要求1所述的人工智能芯片,其特征在于,所述人工智能芯片还包括:
二级缓存,耦接至所述加载存储电路,其中所述加载存储电路依照计算任务选择性地将所述计算数据从所述二级缓存搬移至所述共享内存和所述输入缓冲器其中至少一者。
4.根据权利要求1所述的人工智能芯片,其特征在于,所述输入缓冲器包括通用矩阵乘法输入缓冲器。
5.根据权利要求1所述的人工智能芯片,其特征在于,当所述张量核将张量计算结果输出给所述加载存储电路时,所述加载存储电路将所述张量计算结果传输给所述共享内存,以供所述至少一个非张量计算电路取用。
6.根据权利要求1所述的人工智能芯片,其特征在于,当所述张量核将张量计算结果输出给所述至少一个非张量计算电路时,所述至少一个非张量计算电路取用所述张量计算结果而生成非张量计算结果,所述至少一个非张量计算电路通过所述共享内存将所述非张量计算结果输出给所述加载存储电路,以及所述加载存储电路将所述非张量计算结果传输给所述输入缓冲器,以供所述张量核取用。
7.根据权利要求1所述的人工智能芯片,其特征在于,所述人工智能芯片还包括二级缓存,以及当所述张量核将张量计算结果输出给所述加载存储电路时,所述加载存储电路将所述张量计算结果传输给所述二级缓存。
8.根据权利要求1所述的人工智能芯片,其特征在于,所述人工智能芯片还包括二级缓存,以及所述加载存储电路包括:
一点五级缓冲器,耦接于所述二级缓存和所述共享内存之间,以及耦接于所述二级缓存和所述输入缓冲器之间。
9.根据权利要求8所述的人工智能芯片,其特征在于,当所述张量核将张量计算结果输出给所述一点五级缓冲器时,所述一点五级缓冲器将所述张量计算结果传输给所述共享内存,以供所述至少一个非张量计算电路取用。
10.根据权利要求8所述的人工智能芯片,其特征在于,当所述张量核将张量计算结果输出给所述至少一个非张量计算电路时,所述至少一个非张量计算电路取用所述张量计算结果而生成非张量计算结果,所述至少一个非张量计算电路通过所述共享内存将所述非张量计算结果输出给所述一点五级缓冲器,以及所述一点五级缓冲器将所述非张量计算结果传输给所述输入缓冲器,以供所述张量核取用。
11.根据权利要求8所述的人工智能芯片,其特征在于,所述加载存储电路还包括:
写缓存,耦接于所述二级缓存和所述张量核之间,其中当所述张量核将张量计算结果输出给所述写缓存时,所述写缓存将所述张量计算结果传输给所述二级缓存。
12. 根据权利要求1所述的人工智能芯片,其特征在于,所述至少一个非张量计算电路的每一者包括:
寄存器堆,耦接至所述共享内存;以及
矢量核,耦接至所述寄存器堆,其中所述矢量核通过所述寄存器堆取用所述共享内存的所述计算数据去进行矢量计算。
13.一种人工智能芯片的操作方法,其特征在于,所述人工智能芯片包括共享内存、输入缓冲器、加载存储电路、张量核以及至少一个非张量计算电路,所述加载存储电路耦接至所述共享内存和所述输入缓冲器,所述张量核耦接至所述输入缓冲器,所述至少一个非张量计算电路耦接至所述共享内存,所述操作方法包括:
由所述加载存储电路选择性地将计算数据提供给所述共享内存和所述输入缓冲器其中至少一者;
响应于所述加载存储电路将所述计算数据提供给所述输入缓冲器,由所述张量核取用所述输入缓冲器的所述计算数据去进行张量计算;以及
响应于所述加载存储电路将所述计算数据提供给所述共享内存,由所述至少一个非张量计算电路取用所述共享内存的所述计算数据去进行非张量计算。
14.根据权利要求13所述的操作方法,其特征在于,所述操作方法还包括:
响应于所述张量核将张量计算结果输出给所述至少一个非张量计算电路,由所述至少一个非张量计算电路取用所述张量计算结果而生成非张量计算结果;
由所述至少一个非张量计算电路通过所述共享内存将所述非张量计算结果输出给所述加载存储电路;以及
由所述加载存储电路将所述非张量计算结果传输给所述输入缓冲器,以供所述张量核取用。
15.根据权利要求13所述的操作方法,其特征在于,所述人工智能芯片还包括二级缓存,以及所述操作方法还包括:
响应于所述张量核将张量计算结果输出给所述加载存储电路,由所述加载存储电路将所述张量计算结果传输给所述二级缓存。
16.根据权利要求13所述的操作方法,其特征在于,所述人工智能芯片还包括二级缓存,所述加载存储电路包括一点五级缓冲器,所述一点五级缓冲器耦接于所述二级缓存和所述共享内存之间,以及所述一点五级缓冲器耦接于所述二级缓存和所述输入缓冲器之间。
17.根据权利要求16所述的操作方法,其特征在于,所述操作方法还包括:
响应于所述张量核将张量计算结果输出给所述一点五级缓冲器,由所述一点五级缓冲器将所述张量计算结果传输给所述共享内存,以供所述至少一个非张量计算电路取用。
18.根据权利要求16所述的操作方法,其特征在于,所述操作方法还包括:
响应于所述张量核将张量计算结果输出给所述至少一个非张量计算电路,由所述至少一个非张量计算电路取用所述张量计算结果而生成非张量计算结果;
由所述至少一个非张量计算电路通过所述共享内存将所述非张量计算结果输出给所述一点五级缓冲器;以及
由所述一点五级缓冲器将所述非张量计算结果传输给所述输入缓冲器,以供所述张量核取用。
19.根据权利要求16所述的操作方法,其特征在于,所述加载存储电路还包括写缓存,所述写缓存耦接于所述二级缓存和所述张量核之间,以及所述操作方法还包括:
响应于所述张量核将张量计算结果输出给所述写缓存,由所述写缓存将所述张量计算结果传输给所述二级缓存。
20.一种机器可读存储介质,用于存储非暂时性机器可读指令,其特征在于,当所述非暂时性机器可读指令由计算机执行时可以实现权利要求13-19任一项所述的操作方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410251223.9A CN117852600B (zh) | 2024-03-06 | 2024-03-06 | 人工智能芯片及其操作方法和机器可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410251223.9A CN117852600B (zh) | 2024-03-06 | 2024-03-06 | 人工智能芯片及其操作方法和机器可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117852600A true CN117852600A (zh) | 2024-04-09 |
CN117852600B CN117852600B (zh) | 2024-06-21 |
Family
ID=90540528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410251223.9A Active CN117852600B (zh) | 2024-03-06 | 2024-03-06 | 人工智能芯片及其操作方法和机器可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117852600B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021082747A1 (zh) * | 2019-11-01 | 2021-05-06 | 中科寒武纪科技股份有限公司 | 运算装置及相关产品 |
CN114492777A (zh) * | 2022-01-27 | 2022-05-13 | 厦门壹普智慧科技有限公司 | 一种算力可扩展的多核神经网络张量处理器 |
CN114780236A (zh) * | 2022-04-11 | 2022-07-22 | 上海壁仞智能科技有限公司 | 数据处理集成电路 |
-
2024
- 2024-03-06 CN CN202410251223.9A patent/CN117852600B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021082747A1 (zh) * | 2019-11-01 | 2021-05-06 | 中科寒武纪科技股份有限公司 | 运算装置及相关产品 |
CN114492777A (zh) * | 2022-01-27 | 2022-05-13 | 厦门壹普智慧科技有限公司 | 一种算力可扩展的多核神经网络张量处理器 |
CN114780236A (zh) * | 2022-04-11 | 2022-07-22 | 上海壁仞智能科技有限公司 | 数据处理集成电路 |
Also Published As
Publication number | Publication date |
---|---|
CN117852600B (zh) | 2024-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Foley et al. | Ultra-performance Pascal GPU and NVLink interconnect | |
CN110688157B (zh) | 一种计算装置及计算方法 | |
CN111433758B (zh) | 可编程运算与控制芯片、设计方法及其装置 | |
US20200233803A1 (en) | Efficient hardware architecture for accelerating grouped convolutions | |
CN111915001B (zh) | 卷积计算引擎、人工智能芯片以及数据处理方法 | |
US20140040532A1 (en) | Stacked memory device with helper processor | |
JPH05502125A (ja) | 後入れ先出しスタックを備えるマイクロプロセッサ、マイクロプロセッサシステム、及び後入れ先出しスタックの動作方法 | |
US20210181974A1 (en) | Systems and methods for low-latency memory device | |
KR20220041224A (ko) | 시스템 온 칩과 메모리 칩을 연결하는 가속기 칩 | |
CN103810111A (zh) | 有源存储器件中的地址生成的方法及其处理元件 | |
CN115033188B (zh) | 一种基于zns固态硬盘的存储硬件加速模块系统 | |
CN115552420A (zh) | 具有深度学习加速器和随机存取存储器的芯片上系统 | |
EP3407184A2 (en) | Near memory computing architecture | |
CN104008021A (zh) | 针对多数据体系结构的精确的异常信号发送 | |
US11775808B2 (en) | Neural network computation device and method | |
KR20220041226A (ko) | 시스템 온 칩과 가속기 칩을 연결하는 메모리 칩 | |
CN114490023A (zh) | 一种基于arm和fpga的高能物理可计算存储设备 | |
CN117852600B (zh) | 人工智能芯片及其操作方法和机器可读存储介质 | |
WO2023124304A1 (zh) | 芯片的缓存系统、数据处理方法、设备、存储介质及芯片 | |
CN113994314A (zh) | 扩展存储器接口 | |
CN111260070A (zh) | 运算方法、装置及相关产品 | |
US11741043B2 (en) | Multi-core processing and memory arrangement | |
CN111382855B (zh) | 数据处理装置、方法、芯片及电子设备 | |
KR102561205B1 (ko) | 분산 sram 아키텍쳐를 가지는 모바일넷 하드웨어 가속기 및 상기 가속기의 채널 정상 데이터 플로우 설계 방법 | |
US20230418604A1 (en) | Reconfigurable vector processing in a memory |
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 |