CN113297111B - 人工智能芯片及其操作方法 - Google Patents
人工智能芯片及其操作方法 Download PDFInfo
- Publication number
- CN113297111B CN113297111B CN202110655700.4A CN202110655700A CN113297111B CN 113297111 B CN113297111 B CN 113297111B CN 202110655700 A CN202110655700 A CN 202110655700A CN 113297111 B CN113297111 B CN 113297111B
- Authority
- CN
- China
- Prior art keywords
- address
- data
- address space
- chip
- chip memory
- 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.)
- Active
Links
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 119
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 134
- 230000009467 reduction Effects 0.000 claims description 4
- 238000013507 mapping Methods 0.000 claims description 3
- 230000006854 communication Effects 0.000 description 37
- 238000004891 communication Methods 0.000 description 33
- 102100023882 Endoribonuclease ZC3H12A Human genes 0.000 description 23
- 101710112715 Endoribonuclease ZC3H12A Proteins 0.000 description 23
- QGVYYLZOAMMKAH-UHFFFAOYSA-N pegnivacogin Chemical compound COCCOC(=O)NCCCCC(NC(=O)OCCOC)C(=O)NCCCCCCOP(=O)(O)O QGVYYLZOAMMKAH-UHFFFAOYSA-N 0.000 description 23
- 108700012361 REG2 Proteins 0.000 description 15
- 101150108637 REG2 gene Proteins 0.000 description 15
- 101100120298 Rattus norvegicus Flot1 gene Proteins 0.000 description 15
- 101100412403 Rattus norvegicus Reg3b gene Proteins 0.000 description 15
- 230000005540 biological transmission Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 238000013461 design Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000012546 transfer Methods 0.000 description 5
- 101001044053 Mus musculus Lithostathine-1 Proteins 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 101100412394 Drosophila melanogaster Reg-2 gene Proteins 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种人工智能芯片及其操作方法。人工智能芯片适于接收携带有第一数据及逻辑地址的命令,所述人工智能芯片包括芯片内存以及处理电路。所述处理电路耦接至所述芯片内存,以及接收所述命令,其中所述处理电路包括第一基址寄存器,第一基址寄存器分配有第一地址空间,处理电路通过确定所述逻辑地址指向第一地址空间的多个区段中的哪一个来确定所述命令所对应的数据类别和/或操作类别,以及所述处理电路通过确定所述逻辑地址指向所述第一地址空间的对应区段中的偏移量来确定所述芯片内存的物理地址。
Description
技术领域
本发明涉及一种多芯片集群并行计算领域,尤其涉及一种人工智能芯片及其操作方法。
背景技术
在当前的多芯片集群并行计算领域,工业界普遍使用集合通信 (CollectiveCommunication)方案来实现多个节点间共享数据和传输数据的操作。在当前的集合通信中,“节点1的芯片A发送数据给节点2的芯片B”的过程可以分为四个步骤。步骤1:节点1上的芯片A把数据发送到节点1 的系统内存(system memory)。步骤2:节点1上的芯片A向节点1上的网卡发送网络请求,节点1上的网卡从节点1的系统内存读入“步骤1中芯片 A复制到系统内存的数据”,并且将此数据发送到节点2的网卡。步骤3:节点2的网卡收到了节点1的网卡的数据,并且将此数据存储到节点2的系统内存中。步骤4:节点2的芯片B从节点2的系统内存中读入“来自节点1的芯片A的数据”。对集合通信的性能进一步优化,是本领域的诸多技术课题之一。
发明内容
本发明提供一种人工智能芯片及其操作方法,以有效率地进行集合通信(Collective Communication)。
根据本发明的实施例,所述人工智能芯片适于接收携带有第一数据及逻辑地址的命令,所述人工智能芯片包括芯片内存以及处理电路。所述处理电路耦接至所述芯片内存,以及接收所述命令,其中所述处理电路包括第一基址寄存器,第一基址寄存器分配有第一地址空间,处理电路通过确定所述逻辑地址指向第一地址空间的多个区段中的哪一个来确定所述命令所对应的数据类别和/或操作类别,以及所述处理电路通过确定所述逻辑地址指向所述第一地址空间的对应区段中的偏移量来确定所述芯片内存的物理地址。
根据本发明的实施例,所述人工智能芯片适于接收携带有第一数据及逻辑地址的命令,所述操作方法包括:通过确定所述逻辑地址指向第一地址空间所包括的多个区段中的哪一个来确定所述命令所对应的数据类别和/或操作类别,其中所述第一地址空间被分配至所述人工智能芯片的第一基址寄存器;以及通过确定所述逻辑地址指向所述第一地址空间的对应区段中的偏移量来确定所述人工智能芯片的芯片内存的物理地址。
根据本发明的实施例,所述人工智能芯片适于接收携带有第一数据及逻辑地址的命令,所述人工智能芯片包括芯片内存以及处理电路。所述处理电路耦接至所述芯片内存。处理电路包括第一基址寄存器,第一基址寄存器分配有第一地址空间。处理电路通过确定所述逻辑地址所指向第一地址空间的偏移量来确定所述人工智能芯片的所述芯片内存的物理地址。在所述第一数据未被存储至所述芯片内存的情况下,所述处理电路读取所述芯片内存的所述物理地址以取得第二数据,根据以及所述处理电路根据所述第一数据及所述第二数据产生运算结果后,将所述运算结果根据写入所述芯片内存的所述物理地址。
根据本发明的实施例,所述人工智能芯片适于接收携带有第一数据及逻辑地址的命令。所述操作方法包括:通过确定所述逻辑地址所指向第一地址空间的偏移量来确定所述人工智能芯片的芯片内存的物理地址,其中第一地址空间被分配至人工智能芯片的第一基址寄存器;以及在所述第一数据未被存储至所述芯片内存的情况下,读取所述芯片内存的所述物理地址以取得第二数据,并根据所述第一数据及所述第二数据产生运算结果后,将所述运算结果写入所述芯片内存的所述物理地址。
基于上述,本发明的多个实施例可支援远程直接内存访问,同时保持可扩展性以支持不同的操作类别和/或数据类别,以提升兼容性。进一步,本发明的多个实施例,可在减少芯片内存读写次数的情况下支援各种运算操作,因而有效缩减人工智能芯片的操作时延。
附图说明
包含附图以便进一步理解本发明,且附图并入本说明书中并构成本说明书的一部分。附图说明本发明的实施例,并与描述一起用于解释本发明的原理。
图1A是依照本发明的一实施例的一种集合通信(Collective Communication)的系统示意图;
图1B是依照本发明的一实施例的一种远程直接内存访问(RDMA)技术的系统示意图;
图2是依照本发明的一实施例的一种人工智能芯片的电路方块(circuit block)示意图;
图3是依照本发明的一实施例的一种人工智能芯片的操作方法的流程示意图;
图4是依照本发明的一实施例的一种人工智能芯片的操作方法的流程示意图;
图5是依照本发明的一实施例的一种人工智能芯片的电路方块示意图;
图6是依照本发明的一实施例的一种人工智能芯片的操作方法的流程示意图。
附图标号说明
10、20:节点;
11、21、200、500:人工智能芯片;
12、22、230:芯片内存;
13、23:芯片组;
14、24:中央处理器;
15、25:系统内存;
16、26、30:网卡;
40:总线;
210、510:处理电路;
220、520:芯片内存;
511:地址解析电路;
512、513:运算引擎;
514:异常处理电路;
REG1、REG2:基址寄存器;
S111、S112、S113、S114、S121、S122、S300、S310、S320、S400、S410、 S420、S600、S610、S620、S630、S640、S650、S660:步骤。
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在图式和描述中用来表示相同或相似部分。
图1A是依照本发明的一实施例的一种集合通信(Collective Communication)的系统示意图。图1A所示集合通信系统包括节点10与节点20。节点10与(或)节点20可以是计算机或是其他计算平台。在当前的集合通信方案中,“节点10的人工智能芯片11发送数据给节点20的人工智能芯片21”的过程可以分为四个步骤。步骤S111:节点10上的人工智能芯片11把芯片内存12的数据通过芯片组(chip set)13与中央处理器(Central ProcessingUnit,CPU)14发送到节点10的系统内存(system memory)15。所述人工智能芯片11可以包括图形处理单元(graphics processing unit,GPU)与(或)其他芯片。所述芯片内存12可以包括GPU 内存与(或)其他芯片内存。步骤S112:节点10上的人工智能芯片11向节点10上的网卡(network interface controller,NIC)16发送网络请求,节点10上的网卡16从节点10的系统内存15读入“步骤S111中人工智能芯片11复制到系统内存15的数据”,并且网卡16将此数据发送到节点20 的网卡26。步骤S113:节点20的网卡26收到了节点10的网卡16的数据,并且此数据通过芯片组23与CPU 24被存储到节点20的系统内存25中。步骤S114:节点20的人工智能芯片21通过芯片组23与CPU 24从节点20的系统内存25中读入“来自节点10的人工智能芯片11的数据”,并且将此数据存储到芯片内存22中。这四个步骤经历了1次数据传输和2次数据拷贝。
为了缩减集合通信的传输时延,远程直接内存访问(Remote Direct MemoryAccess,RDMA)技术可以被应用至图1A所示集合通信系统。图1B是依照本发明的一实施例的一种RDMA技术的系统示意图。RDMA技术可以在网卡16上注册芯片内存(例如GPU内存)12的地址。同理,RDMA技术可以在网卡26上注册芯片内存(例如GPU内存)22的地址。在需要数据传输时,由网卡直接访问人工智能芯片(例如GPU),以缩短不同节点的芯片之间数据通信的时延,进而提高性能。RDMA技术可以省略了2次数据拷贝,而把数据传输缩减为2步骤。步骤S121:节点10上的人工智能芯片(例如GPU)11 向网卡16发送数据传输请求,其中该数据传输请求的内存地址是事先注册在网卡16上的“节点10的人工智能芯片11的芯片内存12的地址”。节点 10的网卡16根据数据传输请求从芯片内存12读入人工智能芯片11需要传输的数据并发送到节点20的网卡26。步骤S122:节点20的网卡26收到了节点10的网卡16的数据,并直接写入到节点20的人工智能芯片21的芯片内存22中。
以上过程是在2个人工智能芯片(例如GPU)11与21之间进行数据传输。在实际应用中,尤其是在人工智能运算中的权重(WEIGHT)值以及激活 (ACTIVATION)值的计算,节点20的人工智能芯片21在接收到网卡26的数据之后,需要将接收到的数据跟本地数据进行集合通信处理,然后再使用。那么基于RDMA技术的跨节点集合通信需要经历如下三个步骤。步骤1:节点 10的人工智能芯片(例如GPU)11向网卡16发送数据传输请求,而节点10 的网卡16根据数据传输请求从芯片内存12读入人工智能芯片11需要传输的数据并发送到节点20的网卡26。步骤2:节点20的网卡26收到了节点 10的网卡16的数据,并直接写入到节点20的人工智能芯片(例如GPU)21 的芯片内存22中(记为操作1,直接写操作)。步骤3:节点20的人工智能芯片21进行一次集合通信处理(根据集合通信的类型,人工智能芯片21做不同的对应处理),并将结果数据保存在人工智能芯片21的芯片内存22中 (记为操作2,集合通信操作)。其中,步骤2做完之后需要进行同步,之后再做步骤3。步骤3需要再一次从从芯片内存22读取节点10的数据再和本地数据进行集合通信处理。步骤2与步骤3存在一次额外操作,即节点10 的数据写入芯片内存22之后再从芯片内存22读出,以便和本地数据进行集合通信处理。该次额外操作带来以下的开销:1、增加了整个过程的时间(其中步骤2做完之后需要同步,很大程度增加了时延);2、步骤2对节点20的芯片内存22有一次写操作(节点10的数据写入芯片内存22),而步骤3需要再次对芯片内存22进行一次读操作(从芯片内存22读取节点10的数据) 和一次写操作(集合通信处理的结果数据写入芯片内存22)。增加了对芯片内存22读写的负担,占用了更多的内存读写操作带宽。
图2是依照本发明的一实施例的一种人工智能芯片200的电路方块 (circuitblock)示意图。根据实际设计,图2所示网卡30与人工智能芯片200可以参照图1A和(或)图1B所示网卡26与人工智能芯片21(或者,网卡16与人工智能芯片11)的相关说明,以及(或是),图1A和(或)图1B所示网卡26与人工智能芯片21(或者,网卡16与人工智能芯片11)可以参照图2所示网卡30与人工智能芯片200的相关说明。在图2所示实施例中,人工智能芯片200可以通过总线40连接至网卡30。根据实际设计,总线40可以是高速周边组件互连(Peripheral Component Interconnect Express,PCIe)总线或是其他总线。人工智能芯片200可以从网卡30接收数据串。
人工智能芯片200包括处理电路210以及芯片内存220。处理电路210 耦接芯片内存220。具体来说,处理电路210可接收从网卡30所提供的命令,命令可携带有第一数据及逻辑地址。进一步,当处理电路210判断逻辑地址是指向第一地址空间时,处理电路210可判断逻辑地址是指向第一地址空间中多个区段的哪一个,进而确定命令所对应的数据类别和/或操作类别。并且,处理电路210可通过确定逻辑地址所指向第一地址空间的对应区段中的偏移量来确定芯片内存220的物理地址。进一步,处理电路210可在第一数据未被存储至芯片内存220的情况下,根据逻辑地址读取芯片内存220的物理地址以取得第二数据。处理电路210可根据第一数据及第二数据产生运算结果后,将运算结果根据逻辑地址写入芯片内存220的物理地址。
如此一来,人工智能芯片200可以在接收到命令时,根据逻辑地址确定出命令所对应地数据类别和/或操作类别。故可在第一数据未被写入的情况下,根据数据类别和/或操作类别来对第一数据及第二数据进行运算,并将运算结果写入芯片内存220中。因此,人工智能芯片200可通过减少对芯片内存220的读写次数,以有效缩减人工智能芯片200的操作时延。
在一些实施例中,人工智能芯片200中设置有基址寄存器REG1,第一基址寄存器REG1分配有第一地址空间,且第一地址空间的每个区段对应不同的数据类别。故人工智能芯片200可通过查找基址寄存器REG1来确定逻辑地址是指向第一地址空间的哪一个区段,以判断出对应的数据类别。在一些实施例中,第一地址空间的每个区段对应不同的操作类别。故人工智能芯片 200可通过查找逻辑地址指向第一地址空间的哪一个区段来判断出对应的操作类别。在一些实施例中,第一地址空间可被区分为多个区段群组,且每个区段群组中可包含有数量相同或不同的区段。每个区段群组可对应不同的操作类别,且各别区段群组中的每个区段可对应不同的数据类别。或是反之,每个区段群组可对应不同的述据类别,且个别区段群组中的每个区段可对不同的操作类别。
在一些实施例中,第一地址空间所对应的操作类别可包括数据归约 (REDUCE)操作,人工智能芯片200可通过确定逻辑地址指向第一地址空间来确定操作类别为REDUCE操作。在一些实施例中,第一地址空间所对应的操作类别包括REDUCE操作、COMPARE操作等操作类别,或是其他相似及适合的操作类别。在一些实施例中,第一地址空间所对应的数据类别包括Int 8、 Unit 8、Int 16、Unit 16、Int 32、Unit 32、Int 64、Unit 64、Int 128、Unit128、 Float、Double、Half等数据类别,或是其他相似及适合的数据类别。
图3是依照本发明的一实施例的一种人工智能芯片的操作方法的流程示意图。接下来的说明请共同参照图2与图3。在步骤S300中,处理电路210 可接收网卡30所提供的命令。举例来说,人工智能芯片200可以基于远程直接内存访问(Remote Direct MemoryAccess,RDMA)的规范与集合通信 (Collective Communication)的规范,从网卡30接收命令,其中命令可包含有第一数据及逻辑地址。在步骤S310中,处理电路210可通过确定命令所携带的逻辑地址是指向第一地址空间中多个区段中的哪一个区段来确定命令所对应的数据类别和/或操作类别。在步骤S320中,处理电路210可通过确定逻辑地址是指向第一地址空间的对应区段中的偏移量来确定人工智能芯片200的芯片内存220的物理地址。
详细来说,在步骤S310中,在处理电路210接收到命令时,处理电路 210可判断命令所携带的逻辑地址是否指向第一地址空间。当处理电路210 判断逻辑地址是指向第一地址空间时,处理电路210可通过判断逻辑地址是指向第一地址空间中的哪个区段,进而根据逻辑地址所指向的区段来判断出数据类别和/或操作类别。
通常来说,芯片内存220中可存储有数据。当处理电路210要对芯片内存220的特定存储位置进行存取时,处理电路210必须通过芯片内存220的物理地址才能对芯片内存220的所述存储位置进行写入或读取。但,当处理电路210接收到网卡30所提供的命令时,命令所携带的逻辑地址是电子系统中(例如是处理器或网卡30之间的通信)针对人工智能芯片200的所述存储进行存取时所使用的地址信息。因此,当人工智能芯片200接收到命令所携带的逻辑地址时,处理电路210还需要将逻辑地址映射为芯片内存220 的物理地址,才能对芯片内存220进行存取。在一些实施例中,处理电路210 可被分配如表1所示的第一地址空间,处理电路210可通过分配的第一地址空间来将逻辑地址映射为物理地址。
在一些实施例中,处理电路所被分配的第一地址空间可例如为下方的表 1。在表1中,处理电路210所被分配到的第一地址空间可为Base~Base +13*Size-1,其中Base为地址空间的基底地址,Size为芯片内存220的大小。因此,表1中,处理电路210所被分配到的第一地址空间大小可为芯片内存220大小的13倍,且处理电路210所被分配到的第一地址空间可被区分为13个区段,每个区段大小可与芯片内存220大小相等,并且第一地址空间的每一区段可对应于不同的数据类别。如此一来,当处理电路210接收到携带有逻辑地址的命令时,处理电路210可通过查找例如为表1的对照表来判断出逻辑地址所指向的第一地址空间区段,进而判断出命令所对应的数据类别,因此,处理电路210在后续的操作中,即可以命令所对应的数据类别来进行操作。但,上述示例仅是为了较佳地说明本公开的人工智慧芯片200的操作过程,不应被用来作为本公开实施方式上的限制。本领域技术人员当然可对本公开的实施方式进行调整或变更,以适应于不同的系统需求。举例来说,人工智能芯片200所支援数据类别的数量可根据需求增加或减少,而第一地址空间的大小可适应性地调整。
表1:第一地址空间的配置
接着,在步骤S320中,在确定命令所对应的数据类别之后,处理电路 210可根据数据类别来对命令所携带的第一数据进行适当的操作运算(例如是REDUCE运算)后,再将运算结果写入芯片内存220。此时,处理电路210 可通过确定逻辑地址所指向第一地址空间内所在区段内的偏移量,来确定人工智能芯片的物理地址,进而将运算结果写入芯片内存220的物理地址。举例来说,处理电路210可将第一地址空间的每个区段起始的逻辑地址映射至芯片内存220对应的起始物理地址,如此一来,在处理电路210确定出命令与第一地址空间的对应区段之后,处理电路210可再根据逻辑地址所指向第一地址空间的对应区段中的偏移量,来确定出逻辑地址实际上所对应的人工智能芯片200的芯片内存220的物理地址,以将第一数据的运算结果写入人工智能芯片200的物理地址。
另外,虽然未绘示于图3中,但在步骤S300之后,当人工智能芯片200 的处理电路210确定命令所携带的逻辑地址是指向第二地址空间时,处理电路210可确定命令的操作类别为直接写入,因而根据根据逻辑地址所指向第二地址空间的偏移量来确定出逻辑地址实际上所对应的人工智能芯片200的芯片内存220的物理地址,从而在第一数据未被存储至芯片内存220的情况下,将命令所携带的第一数据写入芯片内存220的物理地址。
在一实施例中,第二地址空间可对应于直接写入的操作类别。处理电路 210所被分配到的第二地址空间大小可相同于为芯片内存220物理地址的大小,第二地址空间地大小可与第一地址空间中任一个区段的大小相同,也就是说,第一地址空间大小可为第二空间大小的整数倍。如此一来,当处理电路210确定出命令所携带的逻辑地址是指向第二地址空间时,即可进行直接写入芯片内存220的操作。
因此,通过上述,本公开的人工智能芯片200及人工智能芯片的操作方法可利用处理电路210中第一地址空间的扩展以支援不同的数据类别,通过确定逻辑地址所指向的第一地址空间的区段来判断命令所对应的数据类别,因而实现数据类别的扩展。如此一来,人工智能芯片200通过扩展的地址空间来实现数据类别的扩展,使人工智能芯片200在兼容不同操作类别的情况下,亦可同时实现减少对芯片内存220的读写次数,以有效缩减人工智能芯片200的操作时延。
虽然上述关于图3及表1的说明中,是以第一地址空间中的每个区段对应于不同的数据类别,但其仅为示例说明,本公开不以此限。本领域技术人应理解的是第一地址空间中的每个区段可对应至不同的数据类别和/或操作类别。
图4是依照本发明的一实施例的一种人工智能芯片的操作方法的流程示意图。接下来的说明请共同参照图2与图4。在步骤S400中,处理电路210 可接收网卡30所提供的命令,举例来说,人工智能芯片200可以基于远程直接内存访问(Remote Direct MemoryAccess,RDMA)的规范与集合通信 (Collective Communication)的规范,从网卡30接收命令,其中命令携带有第一数据及逻辑地址。在步骤S410中,处理电路210通过确定逻辑地址所指向第一地址空间的偏移量来确定人工智能芯片200的芯片内存220的物理地址,并读取芯片内存220的物理地址以取得第二数据。在步骤S420 中,在第一数据未被存储至芯片内存的情况下,处理电路210根据第一数据及第二数据产生运算结果后,将运算结果写入芯片内存220的物理地址。
详细来说,在步骤S410中,当处理电路210接收到携带有第一数据及逻辑地址的命令之后,处理电路210可通过确定逻辑地址是指向第一地址空间,进而确定处理电路210要根据所接收的命令来进行预设的操作运算(例如是REDUCE运算)。因此,回应于进行预设的操作运算,处理电路210可通过确定逻辑地址所指向第一地址空间的偏移量来确定人工智能芯片200的芯片内存220的物理地址,并读取芯片内存220的物理地址以取得第二数据。
通常来说,芯片内存220中可存储有数据。当处理电路210要对芯片内存220的特定存储位置进行存取时,处理电路210必须通过芯片内存220的物理地址才能对芯片内存220的所述存储位置进行写入或读取。但,当处理电路210接收到网卡30所提供的命令时,命令所携带的逻辑地址是电子系统中(例如是处理器或网卡30之间的通信)针对人工智能芯片200的所述存储进行存取时所使用的地址信息。因此,当人工智能芯片200接收到命令所携带的逻辑地址时,处理电路210还需要将逻辑地址映射为芯片内存220 的物理地址,才能对芯片内存220进行存取。举例来说,处理电路210可将第一地址空间起始的逻辑地址映射至芯片内存220的起始物理地址,然后再根据逻辑地址所指向第一地址空间的偏移量,来确定出逻辑地址实际上所对应的人工智能芯片200的芯片内存220的物理地址。
接着,在步骤S420中,在第一数据未被存储至芯片内存220的情况下,处理电路210可根据第一数据及第二数据进行预设的操作运算(例如是 REDUCE运算)并产生运算结果。最后,处理电路210可将运算结果写入第二数据的存储位置,也就是处理电路210可将运算结果写入逻辑地址所指向的人工智能芯片200的物理地址。
虽然未绘示于图4中,但在步骤S400之后,当人工智能芯片200的处理电路210确定命令所携带的逻辑地址是指向第二地址空间时,处理电路210可确定命令的操作类别为直接写入,因而根据根据逻辑地址所指向第二地址空间的偏移量来确定出逻辑地址实际上所对应的人工智能芯片200的芯片内存220的物理地址,从而在第一数据未被存储至芯片内存220的情况下,将命令所携带的第一数据直接写入芯片内存220的物理地址。
因此,通过上述,本公开的人工智能芯片200及人工智能芯片的操作方法可在不将第一数据存储至芯片内存220的情况下,由芯片内存220读取第二数据来进行运算操作,并将运算操作写回至第二数据所存储的地址。在执行命令的过程中,处理电路210仅会对芯片内存220进行一次读取以及一次写入,因此,人工智能芯片200可通过减少对芯片内存220的读写次数,以有效缩减人工智能芯片200的操作时延。如此一来,人工智能芯片200通过扩展的地址空间来实现数据类别的扩展,使人工智能芯片200在兼容不同操作类别的情况下,亦可同时实现减少对芯片内存220的读写次数,以有效缩减人工智能芯片200的操作时延。
图5是依照本发明的一实施例的一种人工智能芯片500的电路方块 (circuitblock)示意图。根据实际设计,图5所示网卡30与人工智能芯片200可以参照图1A和(或)图1B所示网卡26与人工智能芯片21(或者,网卡16与人工智能芯片11)的相关说明,以及(或是)图1A和(或)图1B 所示网卡26与人工智能芯片21(或者,网卡16与人工智能芯片11)可以参照图2所示网卡30与人工智能芯片200的相关说明。在图5所示实施例中,人工智能芯片500可以通过总线40连接至网卡30。根据实际设计,总线40可以是PCIe总线或是其他总线。人工智能芯片500可以从网卡30接收数据串。
在一实施例中,人工智能芯片500可以是PCIe装置(Device),且人工智能芯片500可为多功能(multi-function)装置。在此情况下,由于在PCIe 的规范中,多功能装置除了可具有PCIe装置本身的配置空间之外,多功能装置还可具有额外的多功能配置空间,多功能配置空间的大小对应于多功能装置可操作的功能数量。通常来说,在系统初始化时,系统可通过检查每个装置的配置空间中的配置标头(configuration header)来确定这个装置是否为多功能装置,并据此配置相对应的空间。如此一来,人工智能芯片500 即可利用额外的多功能配置空间来确定命令的额外信息,例如是命令所对应的数据类别和/或操作类别等。
人工智能芯片500包括处理电路510以及芯片内存520。处理电路510 耦接芯片内存520。处理电路510包括地址解析电路511、运算引擎512、 513及异常处理电路514。地址解析电路511耦接芯片内存520、运算引擎 512、513及异常处理电路514。地址解析电路511可查找基址寄存器REG1、 REG2。整体来说,处理电路510可接收从网卡30所提供的命令。处理电路 510的地址解析电路511可根据命令所携带的逻辑地址来查找基址寄存器 REG1、REG2,来确定出命令所对应的操作类别,进而确定是直接存取芯片内存520,或是通过运算引擎512、513其中之一进行运算后,再将运算结果写入芯片内存520。
详细来说,处理电路510耦接芯片内存520,处理电路510并可接收命令以存取芯片内存520。处理电路510包含地址解析电路511、运算引擎512、 513及异常处理电路514。在一些实施例中,处理电路510可包含有数字逻辑闸及寄存器,处理电路510及其所包含的地址解析电路511、运算引擎512、 513及异常处理电路514可例如是通过硬体描述语言(Hardware Description Language,HDL)、或是其他本领域技术人员所熟知的任意数字电路的设计方式而合成(Synt hesis)的,又或者是以全客制化(full custom)方式所设计的。因此,处理电路510可接收网卡30所提供的命令,对命令进行解析来存取芯片内存520,并进行相对应的操作。
地址解析电路511耦接芯片内存520、运算引擎512、513及异常处理电路514。地址解析电路511可接收并解析命令。更确切来说,地址解析电路 511可解析命令所携带的逻辑地址来查找基址寄存器REG1、REG2来确定命令的操作类别和/或数据类别。如此一来,在地址解析电路511接收到命令时,地址解析电路511即可根据逻辑地址的解析结果判断出命令应如何被执行。虽然图5中绘示了基址寄存器REG1、REG2是被设置在地址解析电路511 中,但本公开不以此为限。基址寄存器REG1、REG2及地址解析电路511亦可分离而设置,只要地址解析电路511可查找基址寄存器REG1、REG2即可。
在系统初始化之后,系统可为人工智能芯片500配置第一地址空间及第二地址空间。第一地址空间可为人工智能芯片500的多功能配置空间中的地址空间,第二地址空间可为人工智能芯片500本身的配置空间中的地址空间。进一步,基址寄存器REG1可被配置第一地址空间,基址寄存器REG2可被配置第二地址空间。
详细来说,在系统初始化时,系统可通过读取基址寄存器REG1来确定人工智能芯片500的基址寄存器REG1在系统地址空间中需占用第一地址空间的大小。据此,系统可为芯片内存520配置并注册第一地址空间大小的逻辑地址。最后,系统可将第一地址空间被配置的逻辑地址(例如是第一地址空间被配置的起始逻辑地址,或是第一地址空间中多个区段被配置的对应多个起始逻辑地址)写回至基址寄存器REG1,使基址寄存器REG1中存储有芯片内存520中第一地址空间大小的物理地址及第一地址空间大小的逻辑地址的映设关系。如此一来,地址解析电路511即可根据指向第一地址空间的逻辑地址来查找基址寄存器REG1,进而确定命令所携带逻辑地址所映射的物理地址,并对芯片内存520进行存取。
基址寄存器REG2相似于基址寄存器REG1,基址寄存器REG2可通过系统初始化被配置有第二地址空间。基址寄存器REG2并可存储有芯片内存520 中第二地址空间大小的物理地址及第二地址空间大小的逻辑地址的映设关系。如此一来,人工智能芯片500即可根据指向第二地址空间的逻辑地址来查找基址寄存器REG2,进而确定命令所携带逻辑地址所映射的物理地址,并对芯片内存520进行存取。
在一些实施例中,第一地址空间及第二地址空间可对应于不同的操作类别。举例来说,第一地址空间可对应为例如是REDUCE操作,第二地址空间可对应为例如是直接写入操作。如此一来,地址解析电路511可通过查找命令所携带的逻辑地址是指向第一地址空间或第二地址空间来确定命令的操作类别。进一步,当地址解析电路511确定出命令所携带的逻辑地址是指向第一地址空间且命令的操作类别是REDUCE操作时,地址解析电路511可接着确定逻辑地址是指向第一地址空间的哪一个区段,来判断出命令所对应的数据类别。如此一来,地址解析电路511即可根据指向第一地址空间的逻辑地址来判断出命令所对应的操作类别及数据类别,以通过运算引擎512、513 来进行运算并对芯片内存520进行存取。另外,当地址解析电路511确定出命令所携带的逻辑地址是指向第二地址空间,也就是命令的操作类别是直接写入时,地址解析电路511则可直接根据逻辑地址查找基址寄存器REG2,以确定出命令所欲写入的物理地址,并将命令所携带的第一数据直接写入芯片内存520的物理地址。
详细来说,第一地址空间所包含的每个区段的大小皆相同。第一地址空间的每个区段大小可对应于芯片内存520的物理地址的空间大小。在一些实施例中,第一地址空间的每个区段大小可相等于芯片内存520的物理地址的空间大小。也就是说,第一地址空间的整体大小可为芯片内存520物理地址的空间大小的整数倍。另外,第二地址空间的大小可对应于芯片内存520物理地址的空间大小。在一些实施例中,第二地址空间的每个区段大小可相等于芯片内存520的物理地址的空间大小。也就是说,第一地址空间的整体大小可为第二地址空间大小的整数倍。
在图5中,虽然仅绘示了第一地址空间是被分配置基址寄存器REG1,但其仅为示例性的说明,不应用来解读为仅能以单一个寄存器来存储第一地址空间。根据不同设计需求,基址寄存器REG1可为单一个或多个寄存器的集合,而第一地址空间可被分配并存储在单一或多个寄存器中。
运算引擎512、513耦接于地址解析电路511及芯片内存520之间。当确定命令所对应的操作类别之后,运算引擎512、513可分别用来进行在相同操作类别下的不同的第一运算及的二运算。在一实施例中,运算引擎512、 513可为进行相同操作类别(例如是REDUCE操作)下不同数据类别的运算引擎。在一实施例中,运算引擎512、513可为进行相同操作类别(例如是REDUCE 操作)下不同运算类别(例如是加法、减法、最大值、最小值等的运算类别)的运算引擎。另外,虽然图5中绘示了处理电路510具有两个运算引擎512、 513,但其仅为示例性的说明,不应用来解读为处理电路510仅能处理两种的操作运算。根据不同设计需求,处理电路510中所包含的运算引擎数量可被变更或调整,以具有至少一个或大于两个以上的运算引擎。
异常处理电路514耦接于地址解析电路511。在一实施例中,当地址解析电路511确定出逻辑地址是指向第一地址空间,但逻辑地址所指向的第一地址空间的区段并不存在时,异常处理电路514可接续着确定出命令的操作为未定义,在当前为非法操作,以避免人工智能芯片500的操作异常。
图6是依照本发明的一实施例的一种人工智能芯片的操作方法的流程示意图。接下来的说明请共同参照图5与图6。在步骤S600中,处理电路510 可接收网卡30所提供的命令。举例来说,人工智能芯片200可以基于远程直接内存访问(Remote Direct MemoryAccess,RDMA)的规范与集合通信 (Collective Communication)的规范,从网卡30接收命令,其中命令可包含有第一数据及逻辑地址。在步骤S610中,处理电路510可通过确定命令所携带的逻辑地址是指向第一地址空间或第二地址空间。当在步骤S610 中确定逻辑地址是指向第一地址空间时,则进入步骤S620;当在步骤S610 中确定逻辑地址是指向第二地址空间时,则进入步骤S650。在步骤S620,处理电路510可确定命令是指向第一地址空间的哪个区段,以判断进入步骤 S630或步骤S640。在步骤S630及步骤S640中,处理电路510可根据命令所指向的第一地址空间区段,来执行相对应操作类别的数据规约运算,以产生运算结果。在步骤S650中,处理电路510可根据指向第二地址空间的逻辑地址来确定命令对应的操作类别为直接写入。最后,接续于步骤S630、 S640、S650之后,可进入步骤S660。在步骤S660中,处理电路660可以对芯片内存520进行存取,以将第一数据或是运算结果写入芯片内存520中。
在步骤S600中,处理电路510所接收的命令可例如为下方表2所示。处理电路510所接收的命令可包含有第一数据D_In及逻辑地址。逻辑地址可包含有地址空间信息Addr_In、区段信息Sec_In及偏移量信息Off_In。接下来的说明书段落将以表2所列示的命令格式来进行说明,但应当理解的是,这并不应被用来作为本公开实施方式上的限制。
表2:处理电路210所接收到的命令
在步骤S610中,处理电路510的地址解析电路511可根据逻辑地址的地址空间信息Addr_In来查找基址寄存器REG1、REG2,以确定地址空间信息 Addr_In是指向第一地址空间或第二地址空间。详细而言,基址寄存器REG1 可被分配第一地址空间,基址寄存器REG2可被分配第二地址空间。当地址解析电路511确定地址空间信息Addr_In是指向第一地址空间时,则执行步骤S620;当地址解析电路511确定地址空间信息Addr_In是指向第二地址空间时,则执行步骤S650。
在步骤S620中,处理电路510的地址解析电路511可根据逻辑地址的区段信息Sec_In来查找基址寄存器REG1,以确定逻辑地址是指向第一地址空间中多个区段的哪一个,从而判断进入步骤S630~S640的哪一个。
在一实施例中,基址寄存器REG1所被分配的第一地址空间中包含有多个区段,且每个区段对应于不同的数据类别,而步骤S630、S640中的第一 REDUCE及第二REDUCE操作可对应于不同数据类别。详细而言,第一地址空间的配置空间可例如为上方段落中的表1所示,故相关说明请参考上方相关段落,于此不另赘述。在此实施例中,运算引擎512、513可进行不同数据类别的REDUCE运算,以分别执行步骤S630、S640。如此一来,在地址解析电路511确定出逻辑地址的区段信息Sec_In是指向第一地址空间的哪个区段之后,处理电路510即可根据命令所对应的数据类别,来确定出执行步骤 S630~S640的哪一个。也就是说,处理电路510在确定出命令所对应的数据类别之后,处理电路510即可根据数据类别来执行对应的步骤S630~S640。
在一实施例中,基址寄存器REG1所被分配的第一地址空间可被区分为多个区段群组,且每个区段群组具有相同数量的区段数量。在此实施例中,第一地址空间中的每个区段群组可对应于不同的操作类别,而每个区段可对应于不同的数据类别。举例来说,基址寄存器REG1所被分配的第一地址空间可如下方的表2所示,第一地址空间可为Base~Base+8*Size-1,其中Base为地址空间的基底地址,Size为芯片内存520的大小。第一地址空间可具有四个区段群组,而每个区段群组中皆可包含有两个区段。四个区段群组可分别对应于REDUCE加法、REDUCE乘法、REDUCE最大值及REDUCE 最小值的操作类别,而每个区段可分别对应于float及half的数据类别。如此一来,在地址解析电路511确定出逻辑地址的区段信息Sec_In是指向第一地址空间的哪个区段群组以及哪个区段之后,处理电路510即可确定出命令所对应的操作类别以及数据类别,来确定执行步骤S630~S640的哪一个。
表2:第一地址空间
在步骤S630、S640中,当地址解析电路511确定了命令所携带的逻辑地址是指向第一地址空间中的哪一个区段,或命令所携带的逻辑地址是指向第一地址空间中的哪一个区段群组及区段之后,处理电路510即可指示运算引擎512~513及异常处理电路514的其中一者来进行相对应的运算操作。
在一些实施例中,运算引擎512~513可为不同数据类别的运算引擎,或是不同操作类别的运算引擎。在一些实施例中,处理电路510中的运算引擎数量可根据不同的设计需求来调整或变更。举例来说,因应于上方表2中,第一地址空间被区分为多个区段群组,且每个区段群组被区分为多个区段,处理电路510中的运算引擎数量可被对应地调整为八个,且每个运算引擎可用来进行相对应数据类别及操作类别的操作运算。
在一实施例中,运算引擎512可例如是用来进行数据类别为float且操作类别为REDUCE加法的操作运算。当地址解析电路511确定出命令所携带的逻辑地址是指向如上方表2中的第一个区段时,也就是地址解析电路511 确定出命令所对应的数据为float且操作类别为REDUCE加法时,则人工智能芯片500通过运算引擎512来执行步骤S630。在步骤S630中,首先,地址解析电路511可将第一区段所对应的起始物理地址提供给对应的运算引擎512,并指示运算引擎512进行操作运算。详细而言,运算引擎512可根据第一区段的起始物理地址以及逻辑地址中的偏移量信息Off_In来确定芯片内存520的物理地址,并读取芯片内存520的物理地址以获得第二数据。运算引擎512将第一数据及第二数据进行REDUCE加法的操作运算之后,再将运算结果写入芯片内存520的物理地址。在上述步骤S600、S610、S620及 S630的过程中,处理电路510不需要将第一数据写入芯片内存520即可确定出命令的数据类别及操作类别,处理电路510仅需要由芯片内存520读取第二数据之后,并在运算完成后将运算结果写回芯片内存520。整体运算过程中,仅需要对芯片内存520进行一次读取(读取第二数据)及一次写入(写入运算结果),故有效减少对芯片内存520的读写次数,以有效缩减人工智能芯片500的操作时延。
在一些实施例中,人工智能芯片500所执行的操作类型并不仅限于 REDUCE操作。在此些实施例中,人工智能芯片500所执行的操作类型还可至少包括比较COMPARE操作、REDUCE操作以及非集合通信操作的至少其中之一。举例来说,当运算引擎512是被用来执行COMPARE时,运算引擎512可例如将第一数据以及第二数据进行COMPARE操作以获得例如大于、小于、相等的比较结果,并将比较结果写入到本地的芯片内存520中。
在步骤S650中,当地址解析电路511确定出命令是指向第二地址空间时,地址解析电路511可确定出命令所对应的操作类别是直接写入,则地址解析电路511可通过查找基址寄存器REG2来获得命令所携带的逻辑地址所指向区段的起始物理地址,并通过偏移量信息Off_In来确定芯片内存520 的物理地址,在第一数据未被存储至芯片内存520的情况下,将命令所携带的第一数据直接写入芯片内存520的物理地址。
最后,在步骤S660中,芯片内存520可通过处理电路510的控制而被写入第一数据,或是第一数据及第二数据的运算结果。
通过人工智能芯片500及操作方法,人工智能芯片500可通过扩展多功能配置空间中的地址空间(第一地址空间)来确定出命令所对应的数据类别和/或操作类别。在不影像人工智能芯片500本身的配置空间中的地址空间 (第二地址空间)的情况下,对于人工智能芯片500本身的配置空间的占用更为节省。由于人工智能芯片500可同时支援远程直接内存访问及其他操作类别,可同时有效降低人工智能芯片500中芯片内存520的读写次数,故有效缩减人工智能芯片500的操作时延,以及对带宽的占用。因此,人工智能芯片500及操作方法具有良好的兼容性,且使用者可在不使用加速运算功能时,可以不开启人工智能芯片500的多功能模式,以避免用户的误操作。同时,使用独立的多区段地址空间定义,可以按需分配区段个数,地址空间利用率高,不存在浪费地址空间的问题。
以上图2~6中的实施例皆说明了人工智能芯片可通过确定逻辑地址是指向第一地址空间的哪一个区段,进而确定出命令所对应的数据类别和/或操作类别,以便把在前述实施例(亦即,将RDMA技术应用至跨节点集合通信操作)中需要经历的3个步骤缩短至2个步骤,即图1B中的步骤S121与步骤S122。在步骤S121中,节点10的人工智能芯片11向网卡16发送数据传输请求,其中该数据传输请求的内存地址是事先注册在网卡16上的“节点10的芯片内存12的地址”。节点10的网卡16根据数据传输请求从芯片内存12读入人工智能芯片11需要传输的第一数据并发送到节点20的网卡 26。在步骤S122中,节点20的网卡26收到了来自节点10的人工智能芯片 11的第一数据,并将第一数据发送给节点20的人工智能芯片(例如GPU) 21。节点20上的人工智能芯片21根据确定出命令所相应的数据类别和/或操作类别(例如集合通信的处理类型)将命令的第一数据发送到对应的运算引擎(例如集合通信引擎)去进行相应的处理。因此,人工智能芯片21可依据确定出的操作类别例如是将第一数据直接写入芯片内存22。或者,人工智能芯片21可在确定出命令是对应于REDUCE操作或COMPARE操作时,人工智能芯片21在不将第一数据写入至芯片内存22的情况下,将第一数据发送给相对应的运算引擎来进行运算,并在运算完成后,人工智能芯片21可将运算结果写入到人工智能芯片21的芯片内存22中。
因此,上述实施例可使用处理电路去解析逻辑地址是指向第一地址空间的哪一个区段,以解析出命令所对应的数据类别和/或操作类别,以在不将第一数据写入芯片内存22的情况下来支持不同处理,使人工智能芯片21及人工智能芯片21的操作方法可在两个步骤中完成。举例来说,在从节点10 的人工智能芯片11到节点20的人工智能芯片21的传输操作是非集合通信处理的情况下,所传输的第一数据不会被人工智能芯片21进一步处理而被直接写入芯片内存22。或者,在从节点10的人工智能芯片11到节点20的人工智能芯片21的传输操作是REDUCE操作或COMPARE操作等的集合通信处理的情况下,所传输的第一数据(节点10的数据)需要和节点20的第二数据进行REDUCE操作或COMPARE操作等。本实施例可以通过地址空间的不同区段来代表数据类别和/或操作类别,以支持以上不同处理。简言之,从节点 10的人工智能芯片11传输第一数据到节点20的人工智能芯片21的过程中可具有不同的操作类别。而本公开的人工智能芯片可兼容不同的操作类别,并在上述的2步骤中完成各种不同操作类别,因而在具有良好兼容性的同时亦可有效降低人工智能芯片21的时延。
综上,本公开的人工智能芯片及操作方法可针对多节点的集群操作来进行优化,对于大量使用到REDUCE操作以及跨节点间的allreduce操作带来帮助,进而提升人工智能芯片及操作方法的整体性能。详细来说,本公开的人工智能芯片及操作方法可通过设置的第一地址空间及第二地址空间来确定出不同的操作类别,因而兼容远程直接内存访问及其他操作类别。同时,通过扩展的第一地址空间来确定出命令所对应的数据类别和/或操作类别,因而有效降低人工智能芯片中芯片内存的读写次数,使不同操作类别的命令皆可在两个步骤中完成,在提升人工智能芯片兼容性的同时更有效缩减人工智能芯片的操作时延以及对带宽的占用。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (18)
1.一种人工智能芯片,适于接收携带有第一数据及逻辑地址的命令,其特征在于,所述人工智能芯片包括:
芯片内存;以及
处理电路,耦接至所述芯片内存,以及接收所述命令,其中所述处理电路包括第一基址寄存器,所述第一基址寄存器分配有第一地址空间,所述处理电路通过确定所述逻辑地址指向所述第一地址空间所包括的多个区段中的哪一个来确定所述命令所对应的数据类别和/或操作类别,所述处理电路将所述第一地址空间的每个区段的起始逻辑地址映射至所述芯片内存对应的起始物理地址,以及所述处理电路通过确定所述逻辑地址指向所述第一地址空间的对应区段中的偏移量来确定所述芯片内存的物理地址,其中,所述偏移量为所述逻辑地址相对于所述对应区段的起始逻辑地址的偏移;
其中,所述第一地址空间的所述多个区段更被区分成多个区段群组,
所述处理电路通过确定所述逻辑地址指向所述第一地址空间的所述多个区段群组的哪一个来判断所述命令所对应的数据类别,每个区段群组中的各个区段对应不同的操作类别,或者,
所述处理电路通过确定所述逻辑地址指向所述第一地址空间的所述多个区段群组的哪一个来判断所述命令所对应的操作类别,每个区段群组中的各个区段对应不同的数据类别。
2.根据权利要求1所述的人工智能芯片,其特征在于,所述第一地址空间的所述多个区段的每一区段的大小相同,且所述每一区段的大小对应于所述芯片内存的物理地址空间的大小。
3.根据权利要求1所述的人工智能芯片,其特征在于,所述操作类别包括数据归约操作。
4.根据权利要求1所述的人工智能芯片,其特征在于,所述处理电路还包括地址解析电路,所述地址解析电路根据指向所述第一地址空间的所述逻辑地址查找所述第一基址寄存器,以确定所述芯片内存的所述物理地址。
5.根据权利要求1所述的人工智能芯片,其特征在于,在所述处理电路接收到指向所述第一地址空间的所述命令时,在所述第一数据未被存储至所述芯片内存的情况下,所述处理电路根据所述逻辑地址由所述芯片内存的所述物理地址读取第二数据,以及所述处理电路根据所述第一数据及所述第二数据产生运算结果后,根据所述逻辑地址将所述运算结果写入所述芯片内存的所述物理地址。
6.根据权利要求5所述的人工智能芯片,其特征在于,所述处理电路更包括运算引擎,所述处理电路根据指向所述第一地址空间的所述命令确定所述命令的所述数据类别和/或所述操作类别,所述运算引擎根据所述数据类别和/或所述操作类别对所述第一数据及所述第二数据产生所述运算结果后,根据所述逻辑地址将所述运算结果写入所述芯片内存的所述物理地址。
7.根据权利要求1所述的人工智能芯片,其特征在于,所述处理电路还包括第二基址寄存器,所述第二基址寄存器分配有第二地址空间,所述处理电路通过确定所述逻辑地址指向所述第二地址空间来确定所述命令的操作类别是直接写入,所述处理电路通过确定所述逻辑地址指向所述第二地址空间的偏移量来确定所述芯片内存的物理地址,以及所述处理电路将所述第一数据直接写入所述芯片内存的所述物理地址。
8.根据权利要求7所述的人工智能芯片,其特征在于,所述处理电路还包括地址解析电路,所述地址解析电路通过所述逻辑地址指向所述第二地址空间的偏移量来确定所述物理地址,并根据所述逻辑地址将所述第一数据写入所述芯片内存的所述物理地址。
9.根据权利要求7所述的人工智能芯片,其特征在于,所述第一地址空间的大小是所述第二地址空间的大小的整数倍,所述第二地址空间的大小对应所述芯片内存的物理地址空间的大小。
10.一种人工智能芯片的操作方法,所述人工智能芯片适于接收携带有第一数据及逻辑地址的命令,其特征在于,所述操作方法包括:
通过确定所述逻辑地址指向第一地址空间所包括的多个区段中的哪一个来确定所述命令所对应的数据类别和/或操作类别,其中所述第一地址空间被分配至所述人工智能芯片的第一基址寄存器,处理电路将所述第一地址空间的每个区段的起始逻辑地址映射至芯片内存对应的起始物理地址;以及
通过确定所述逻辑地址指向所述第一地址空间的对应区段中的偏移量来确定所述人工智能芯片的芯片内存的物理地址,其中,所述偏移量为所述逻辑地址相对于所述对应区段的起始逻辑地址的偏移;
将所述第一地址空间的所述多个区段区分成多个区段群组;
通过确定所述逻辑地址指向所述第一地址空间的所述多个区段群组的哪一个来判断所述命令所对应的数据类别,每个区段群组中的各个区段对应不同的操作类别,或者,
通过确定所述逻辑地址指向所述第一地址空间的所述多个区段群组的哪一个来判断所述命令所对应的操作类别,每个区段群组中的各个区段对应不同的数据类别。
11.根据权利要求10所述的操作方法,其特征在于,所述第一地址空间的所述多个区段的每一区段的大小相同,且所述每一区段的大小对应于所述芯片内存的物理地址空间的大小。
12.根据权利要求10所述的操作方法,其特征在于,所述操作类别包括数据归约操作。
13.根据权利要求10所述的操作方法,其特征在于,所述操作方法还包括:
根据指向所述第一地址空间的所述逻辑地址查找所述第一基址寄存器,以确定所述芯片内存的所述物理地址。
14.根据权利要求10所述的操作方法,其特征在于,所述操作方法还包括:
在接收到指向所述第一地址空间的所述命令时,在所述第一数据未被存储至所述芯片内存的情况下,根据所述逻辑地址由所述芯片内存的所述物理地址读取第二数据;
根据所述第一数据及所述第二数据产生运算结果;以及
根据所述逻辑地址将所述运算结果对所述芯片内存的所述物理地址写入。
15.根据权利要求14所述的操作方法,其特征在于,所述操作方法还包括:
根据指向所述第一地址空间的所述命令确定所述命令的所述数据类别和/或所述操作类别,通过所述人工智能芯片的运算引擎根据所述数据类别和/或所述操作类别对所述第一数据及所述第二数据产生所述运算结果;以及
根据所述芯片内存的所述物理地址将所述运算结果写入所述芯片内存。
16.根据权利要求10所述的操作方法,其特征在于,所述操作方法还包括:
通过确定所述逻辑地址指向第二地址空间来确定所述命令的操作类别是直接写入,其中所述第二地址空间被分配至所述人工智能芯片的第二基址寄存器;以及
通过确定所述逻辑地址指向所述第二地址空间的偏移量来确定所述芯片内存的物理地址,以及将所述第一数据直接写入所述芯片内存的所述物理地址。
17.根据权利要求16所述的操作方法,其特征在于,所述操作方法还包括:
通过所述逻辑地址指向所述第二地址空间的偏移量来确定所述物理地址;以及
根据所述逻辑地址将所述第一数据写入所述芯片内存的所述物理地址。
18.根据权利要求16所述的操作方法,其特征在于,所述第一地址空间的大小是所述第二地址空间的大小的整数倍,所述第二地址空间的大小对应所述芯片内存的物理地址空间的大小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110655700.4A CN113297111B (zh) | 2021-06-11 | 2021-06-11 | 人工智能芯片及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110655700.4A CN113297111B (zh) | 2021-06-11 | 2021-06-11 | 人工智能芯片及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113297111A CN113297111A (zh) | 2021-08-24 |
CN113297111B true CN113297111B (zh) | 2023-06-23 |
Family
ID=77328109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110655700.4A Active CN113297111B (zh) | 2021-06-11 | 2021-06-11 | 人工智能芯片及其操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113297111B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317554A (zh) * | 2014-10-14 | 2015-01-28 | 中国航天科技集团公司第九研究院第七七一研究所 | 用于simd处理器的寄存器文件数据读写装置和方法 |
CN108073363A (zh) * | 2017-12-28 | 2018-05-25 | 深圳市得微电子有限责任公司 | 数据存储方法、存储设备及计算机可读存储介质 |
CN109086193A (zh) * | 2017-06-13 | 2018-12-25 | 阿里巴巴集团控股有限公司 | 监控方法、装置及系统 |
CN111221758A (zh) * | 2019-09-30 | 2020-06-02 | 华为技术有限公司 | 处理远程直接内存访问请求的方法和计算机设备 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645058B (zh) * | 2009-09-04 | 2012-12-19 | 成都市华为赛门铁克科技有限公司 | 命令处理方法、命令发送方法、装置及系统 |
CN102169459B (zh) * | 2010-11-29 | 2013-04-24 | 北京握奇数据系统有限公司 | 一种访问数据的方法、装置和智能卡 |
CN105988773B (zh) * | 2015-02-10 | 2021-03-09 | 恩智浦美国有限公司 | 硬件接口组件和用于硬件接口组件的方法 |
TWI531963B (zh) * | 2015-06-04 | 2016-05-01 | Accelstor Inc | Data storage systems and their specific instruction enforcement methods |
CN106407131B (zh) * | 2016-03-30 | 2019-06-11 | 沈阳泰科易科技有限公司 | 内存访问方法和装置 |
CN108733412B (zh) * | 2017-04-19 | 2021-06-11 | 上海寒武纪信息科技有限公司 | 一种运算装置和方法 |
CN117453594A (zh) * | 2017-04-26 | 2024-01-26 | 上海寒武纪信息科技有限公司 | 数据传输装置及方法 |
CN109086231B (zh) * | 2017-06-14 | 2020-07-07 | 龙芯中科技术有限公司 | 输入输出设备的访问方法及装置 |
CN111886593B (zh) * | 2018-08-31 | 2024-06-11 | 华为技术有限公司 | 数据处理系统和数据处理方法 |
CN109947671B (zh) * | 2019-03-05 | 2021-12-03 | 龙芯中科技术股份有限公司 | 一种地址转换方法、装置、电子设备及储存介质 |
CN112380147B (zh) * | 2020-11-12 | 2022-06-10 | 上海壁仞智能科技有限公司 | 计算装置以及用于加载或更新数据的方法 |
CN112445735A (zh) * | 2020-11-20 | 2021-03-05 | 深圳致星科技有限公司 | 一种联邦学习数据传输方法、计算机设备、系统及存储介质 |
CN112559046A (zh) * | 2020-12-09 | 2021-03-26 | 清华大学 | 数据处理装置及人工智能处理器 |
CN112817735A (zh) * | 2021-03-08 | 2021-05-18 | 上海壁仞智能科技有限公司 | 计算装置、计算设备以及用于线程组累加的方法 |
-
2021
- 2021-06-11 CN CN202110655700.4A patent/CN113297111B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104317554A (zh) * | 2014-10-14 | 2015-01-28 | 中国航天科技集团公司第九研究院第七七一研究所 | 用于simd处理器的寄存器文件数据读写装置和方法 |
CN109086193A (zh) * | 2017-06-13 | 2018-12-25 | 阿里巴巴集团控股有限公司 | 监控方法、装置及系统 |
CN108073363A (zh) * | 2017-12-28 | 2018-05-25 | 深圳市得微电子有限责任公司 | 数据存储方法、存储设备及计算机可读存储介质 |
CN111221758A (zh) * | 2019-09-30 | 2020-06-02 | 华为技术有限公司 | 处理远程直接内存访问请求的方法和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113297111A (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020247042A1 (en) | Network interface for data transport in heterogeneous computing environments | |
CN112463714B (zh) | 远程直接内存访问方法、异构计算系统及电子设备 | |
CN114860329B (zh) | 动态一致性偏置配置引擎及方法 | |
KR101003102B1 (ko) | 멀티 프로세싱 유닛에 대한 메모리 매핑방법, 및 장치 | |
KR20050051672A (ko) | 스케일러블 멀티채널 메모리 액세스를 위한 방법 및 메모리제어기 | |
JP2020087499A (ja) | スタティックランダムアクセスメモリにアクセスするための方法、装置、機器及び記憶媒体 | |
CN115374046B (zh) | 一种多处理器数据交互方法、装置、设备及存储介质 | |
US11029847B2 (en) | Method and system for shared direct access storage | |
US10496422B2 (en) | Serial device emulator using two memory levels with dynamic and configurable response | |
CN112363959B (zh) | 一种数据寻址方法、存储装置、芯片和数据存储系统 | |
CN116700795B (zh) | 一种位操作控制系统及控制方法 | |
WO2023186143A1 (zh) | 一种数据处理方法、主机及相关设备 | |
CN113297111B (zh) | 人工智能芯片及其操作方法 | |
CN117033275A (zh) | 加速卡间的dma方法、装置、加速卡、加速平台及介质 | |
CN116303113A (zh) | 用于拓扑系统间直接存储访问的方法及装置、设备与介质 | |
CN115549858A (zh) | 数据传输方法以及装置 | |
CN113961487A (zh) | 加速存储器存取的电子装置及方法 | |
CN116418848A (zh) | 网络节点的配置和访问请求的处理方法、装置 | |
CN101223511A (zh) | 用于非存储映像式设备存储器的直接访问的方法和系统 | |
CN116745754A (zh) | 一种访问远端资源的系统及方法 | |
CN113377704B (zh) | 人工智能芯片以及数据操作方法 | |
US12001370B2 (en) | Multi-node memory address space for PCIe devices | |
US8892784B2 (en) | Adaptive apparatus | |
CN118363900B (zh) | 一种具备扩展性和灵活性的数据流加速设备及方法 | |
US11372800B2 (en) | System on chip comprising a plurality of central processing units whose mailboxes are set in tightly-coupled memories |
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 | ||
CP03 | Change of name, title or address | ||
CP03 | Change of name, title or address |
Address after: 201100 room 1302, 13 / F, building 16, No. 2388, Chenhang highway, Minhang District, Shanghai Patentee after: Shanghai Bi Ren Technology Co.,Ltd. Country or region after: China Address before: 201100 room 1302, 13 / F, building 16, No. 2388, Chenhang highway, Minhang District, Shanghai Patentee before: Shanghai Bilin Intelligent Technology Co.,Ltd. Country or region before: China |