CN113419989B - 人工智能芯片及其操作方法 - Google Patents
人工智能芯片及其操作方法 Download PDFInfo
- Publication number
- CN113419989B CN113419989B CN202110655529.7A CN202110655529A CN113419989B CN 113419989 B CN113419989 B CN 113419989B CN 202110655529 A CN202110655529 A CN 202110655529A CN 113419989 B CN113419989 B CN 113419989B
- Authority
- CN
- China
- Prior art keywords
- data
- engine
- artificial intelligence
- chip
- engines
- 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 97
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000006854 communication Effects 0.000 claims abstract description 135
- 238000004891 communication Methods 0.000 claims abstract description 132
- 238000012545 processing Methods 0.000 claims abstract description 25
- 230000015654 memory Effects 0.000 claims description 85
- 238000004364 calculation method Methods 0.000 claims description 31
- 230000009467 reduction Effects 0.000 claims description 26
- 230000008569 process Effects 0.000 claims description 17
- 239000006185 dispersion Substances 0.000 claims 2
- 238000013461 design Methods 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 102100030148 Integrator complex subunit 8 Human genes 0.000 description 2
- 101710092891 Integrator complex subunit 8 Proteins 0.000 description 2
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/173—Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (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是依照本发明的一实施例的一种集合通信的***示意图。
图1B是依照本发明的一实施例的一种远程直接内存访问(RDMA)技术的***示意图。
图2是依照本发明的一实施例的一种人工智能芯片的电路方块(circuit block)示意图。
图3是依照本发明的一实施例的一种人工智能芯片的操作方法的流程示意图。
附图标记说明
10、20:节点
11、21、200:人工智能芯片
12、22、230:芯片内存
13、24:芯片组
14、25:中央处理器
15、25:***内存
16、26、30:网卡
40:总线
210:集合通信引擎选择器
220:集合通信引擎
S111~S114、S121~S122、S310、S320、S330、S340:步骤
具体实施方式
现将详细地参考本发明的示范性实施例,示范性实施例的实例说明于附图中。只要有可能,相同元件符号在图式和描述中用来表示相同或相似部分。
在本案说明书全文(包括权利要求)中所使用的“耦接(或连接)”一词可指任何直接或间接的连接手段。举例而言,若文中描述第一装置耦接(或连接)于第二装置,则应该被解释成该第一装置可以直接连接于该第二装置,或者该第一装置可以透过其他装置或某种连接手段而间接地连接至该第二装置。本案说明书全文(包括权利要求)中提及的“第一”、“第二”等用语是用以命名组件(element)的名称,或区别不同实施例或范围,而并非用来限制组件数量的上限或下限,亦非用来限制组件的次序。另外,凡可能之处,在图式及实施方式中使用相同标号的组件/构件/步骤代表相同或类似部分。不同实施例中使用相同标号或使用相同用语的组件/构件/步骤可以相互参照相关说明。
图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)值的计算,节点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读写的负担,占用了更多的内存读写操作带宽。
以下实施例将说明在数据串中加入操作码的技术,以便把在前述实施例(亦即,将RDMA技术应用至跨节点集合通信操作)中需要经历的3个步骤缩短至2个步骤,即下述步骤A与步骤B。步骤A:节点10的人工智能芯片11向网卡16发送数据传输请求,其中该数据传输请求的内存地址是事先注册在网卡16上的“节点10的芯片内存12的地址”。节点10的网卡16根据数据传输请求从芯片内存12读入人工智能芯片11需要传输的数据并发送到节点20的网卡26。步骤B:节点20的网卡26收到了来自节点10的人工智能芯片11的数据,并将数据发送给节点20的人工智能芯片(例如GPU)21,节点20上的人工智能芯片21根据集合通信的处理类型将数据串的数据发送到对应的集合通信引擎去进行相应的集合通信处理。例如,在进行数据归约(REDUCE)集合通信时,人工智能芯片21将数据和操作码发送给REDUCE计算引擎;在进行数据广播(BROADCAST)集合通信时,人工智能芯片21将数据和操作码发送给BROADCAST引擎。然后,人工智能芯片21将集合通信处理的结果数据写入到人工智能芯片21的芯片内存22中。
从节点10的人工智能芯片11传输数据到节点20的人工智能芯片21的过程中有发生不同处理的可能。举例来说,在从节点10的人工智能芯片11到节点20的人工智能芯片21的传输操作是数据分散(SCATTER)集合通信处理的情况下,所传输的数据不会被人工智能芯片21进一步处理而直接被写入芯片内存22。或者,在从节点10的人工智能芯片11到节点20的人工智能芯片21的传输操作是REDUCE集合通信处理的情况下,所传输的数据(节点10的数据)需要和节点20的数据进行REDUCE处理。或者,在从节点10的人工智能芯片11到节点20的人工智能芯片21的操作是BROADCAST集合通信处理的情况下,所传输的数据(节点10的数据)不仅需要被写到芯片内存22,还需要被写到节点20的其他人工智能芯片的芯片内存。本实施例可以在数据流中加入操作码,以支持以上不同处理。本实施例使用集合通信引擎选择器去解析操作码来支持不同处理。
图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。不同的集合通信引擎220可以进行集合通信(Collective Communication)的不同处理。举例来说,依据实际设计,集合通信引擎220可以包括REDUCE计算引擎、SCATTER引擎、BROADCAST引擎以及(或是)其他集合通信引擎。在本实施例中,集合通信引擎220可以用硬件方式实现。在其他实施例中,集合通信引擎220可以用固件(或软件)方式实现。人工智能芯片200还包括芯片内存230。芯片内存230耦接至集合通信引擎220。依据实际设计,图2所示芯片内存230可以参照图1A和(或)图1B所示芯片内存22(或者,芯片内存12)的相关说明,以及(或是),图1A和(或)图1B所示芯片内存22(或者,芯片内存12)可以参照图2所示芯片内存230的相关说明。
图3是依照本发明的一实施例的一种人工智能芯片的操作方法的流程示意图。请参照图2与图3。在步骤S310中,集合通信引擎选择器210可以接收网卡30所传输的数据串。举例来说,人工智能芯片200可以基于远程直接内存访问(Remote Direct Memory Access,RDMA)的规范与集合通信(Collective Communication)的规范,从网卡30接收数据串。所述数据串带有数据以及操作码。集合通信引擎选择器210可以解析所述操作码(步骤S320),以便依据所述操作码从这些集合通信引擎220中选择一个引擎(步骤S330)。依据在网卡30所传输的数据串中的操作码,集合通信引擎选择器210可以将在网卡30所传输的数据串中的数据提供给被选择引擎去进行集合通信的对应处理(步骤S340)。在本实施例中,集合通信引擎选择器210可以用固件(或软件)方式实现。在其他实施例中,集合通信引擎选择器210可以用硬件方式实现。
在网卡30所传输的数据串中的操作码的具体数据结构可以依照实际设计去决定。举例来说,在一些实施例中,所述操作码可以包含操作类型字段。所述操作类型字段可以依照实际设计而具有若干字节。以占用一个字节为例,在一些实施例中,所述操作类型字段可以被定义如下述表1。在表1所示实施例中,操作类型字段的内容为“0”表示,在网卡30所传输的数据串中的数据应该进行SCATTER处理。操作类型字段的内容为“2”表示,在网卡30所传输的数据串中的数据应该进行BROADCAST处理。操作类型字段的内容为“3”表示,在网卡30所传输的数据串中的数据应该进行REDUCE处理。
表1:在操作码中的操作类型字段的定义范例
依照实际设计,所述操作码还可以包含REDUCE类型字段。所述REDUCE类型字段可以依照实际设计而具有若干字节。以占用一个字节为例,在一些实施例中,所述REDUCE类型字段可以被定义如下述表2。在表2所示实施例中,REDUCE类型字段的内容为“0”表示,所传输的数据和本地数据做完加法计算后写入本地芯片内存。REDUCE类型字段的内容为“1”表示,所传输的数据和本地数据做完乘法计算后写入本地芯片内存。REDUCE类型字段的内容为“2”表示,所传输的数据和本地数据做完取最大值后写入本地芯片内存。REDUCE类型字段的内容为“3”表示,所传输的数据和本地数据做完取最小值后写入本地芯片内存。
表2:在操作码中的REDUCE类型字段的定义范例
依照实际设计,所述操作码还可以包含数据类型字段。所述数据类型字段可以依照实际设计而具有若干字节。以占用一个字节为例,在一些实施例中,所述数据类型字段可以被定义如下述表3。在表3所示实施例中,数据类型字段的内容为“0”表示,所传输的数据属于“Int8”类型(8位整数)。数据类型字段的内容为“10”表示,所传输的数据属于“Float”类型(浮点数)。
表3:在操作码中的数据类型字段的定义范例
数据类型字段 | 数据类型 |
0 | Int8 |
1 | Uint8 |
2 | Int16 |
3 | Uint16 |
4 | Int32 |
5 | Uint32 |
6 | Int64 |
7 | Uint64 |
8 | Int128 |
9 | Uint128 |
10 | Float |
11 | Double |
12 | Half |
… | … |
举例来说,所述集合通信引擎220包括REDUCE计算引擎,其中所述REDUCE计算引擎耦接至芯片内存230。依据在网卡30所传输的数据串的操作码中的操作类型字段,集合通信引擎选择器210可以决定所述REDUCE计算引擎作为“被选择引擎”。集合通信引擎选择器210可以依据所述操作码中的REDUCE类型字段去设定集合通信引擎220中的所述REDUCE计算引擎的REDUCE类型。集合通信引擎选择器210可以依据所述操作码中的数据类型字段去将在网卡30所传输的数据串中的数据的数据类型通知给集合通信引擎220中的所述REDUCE计算引擎。在所述REDUCE计算引擎接收到网卡30所传输的数据(第一数据)时,在所述第一数据未被存储至芯片内存230的情况下,所述REDUCE计算引擎可以依据网卡30所传输的数据串中的地址字段从芯片内存230读取本地数据(第二数据)。所述REDUCE计算引擎可以依据所述REDUCE类型去对所述第一数据及所述第二数据进行REDUCE计算以产生运算结果。所述REDUCE计算引擎依据所述数据串中的所述地址字段将所述运算结果写入芯片内存230。
再举例来说,所述集合通信引擎220包括SCATTER引擎,其中所述SCATTER引擎耦接至芯片内存230。集合通信引擎选择器210可以依据网卡30所传输的数据串的所述操作码中的操作类型字段去决定所述SCATTER引擎作为“被选择引擎”。所述集合通信引擎选择器210可以依据所述操作码中的数据类型字段去将在网卡30所传输的数据串中的数据的数据类型通知给集合通信引擎220中的SCATTER引擎。所述SCATTER引擎将网卡30所传输的数据(第一数据)写入芯片内存230。
依照实际设计,所述操作码还可以包含芯片编号字段。所述芯片编号字段可以依照实际设计而具有若干字节。以占用2个字节为例,在一些实施例中,所述芯片编号字段可以表示一个无符号短整型数。在所述无符号短整型数中,每一个位表示一个人工智能芯片。举例来说,所述无符号短整型数的值为11(二进制表示为0b1011),因为二进制值中从右向左第0、1、3位的值为“1”,所以所述无符号短整型数的值“11”指出芯片编号为“0”、“1”、“3”的人工智能芯片。
举例来说,所述集合通信引擎220包括BROADCAST引擎。集合通信引擎选择器210可以依据所述操作码中的操作类型字段决定BROADCAST引擎作为“被选择引擎”。所述集合通信引擎选择器210可以依据所述操作码中的数据类型字段将在网卡30所传输的数据串中的数据的数据类型通知给集合通信引擎220中的BROADCAST引擎。集合通信引擎选择器210可以依据所述操作码中的芯片编号字段将集合通信的广播处理的广播对象信息提供给BROADCAST引擎。BROADCAST引擎可以将网卡30所传输的数据(第一数据)写入芯片内存230,以及BROADCAST引擎可以依据所述广播对象信息将所述第一数据传递给人工智能芯片200所在平台的其他芯片。例如,所述操作码的芯片编号字段的内容为无符号短整型数“11”,集合通信引擎选择器210可以将集合通信的广播处理的广播对象信息“0”、“1”、“3”提供给BROADCAST引擎。那么,BROADCAST引擎可以知道广播处理的广播对象为芯片编号“0”、“1”、“3”的人工智能芯片。
综上所述,实施例所述人工智能芯片200的多个集合通信引擎220可以进行集合通信的不同处理。集合通信引擎选择器210解析数据串中的操作码,以便依据操作码从这些集合通信引擎220中选择一个引擎。集合通信引擎选择器210将数据串中的数据提供给被选择引擎去进行集合通信的对应处理。因此,人工智能芯片200可以有效率地进行集合通信。集合通信引擎选择器210解析操作码,以及依据解析结果去进行多节点集合通信操作。因此,人工智能芯片200可以提高在大规模芯片集群场景下跨节点集合通信的操作性能。对于人工智能训练等市场典型应用场景的整体性能提升做出贡献。实施例提供了灵活丰富的扩展机制。在一些实施例中,无需硬件支持即可支持操作类型和数据类型的扩展。在另一些实施例中,也可以在硬件支持某种扩展之后进行相应的软件扩展,支持在现有硬件框架下进行功能扩展。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (12)
1.一种位于第一节点中的人工智能芯片,适于从所述第一节点的网卡接收来自第二节点的数据串,其特征在于,所述人工智能芯片包括:
多个集合通信引擎,经配置以进行集合通信的不同处理;以及
集合通信引擎选择器,经配置以从所述第一节点的网卡接收所述来自第二节点的数据串,其中所述数据串带有第一数据以及操作码,所述集合通信引擎选择器解析所述操作码以便从所述多个集合通信引擎中选择一个引擎,以及将所述第一数据提供给被选择引擎去进行所述集合通信的对应处理。
2.根据权利要求1所述的人工智能芯片,其特征在于,所述多个集合通信引擎包括数据归约计算引擎,所述集合通信引擎选择器依据所述操作码中的操作类型字段决定所述数据归约计算引擎作为所述被选择引擎,所述集合通信引擎选择器依据所述操作码中的数据归约类型字段设定所述数据归约计算引擎的数据归约类型,以及所述集合通信引擎选择器依据所述操作码中的数据类型字段将所述第一数据的数据类型通知给所述数据归约计算引擎。
3.根据权利要求2所述的人工智能芯片,其特征在于,所述人工智能芯片还包括:
芯片内存,耦接至所述数据归约计算引擎,其中
在所述数据归约计算引擎接收到所述第一数据时,在所述第一数据未被存储至所述芯片内存的情况下,所述数据归约计算引擎依据所述数据串中的地址字段从所述芯片内存读取第二数据,所述数据归约计算引擎依据所述数据归约类型去对所述第一数据及所述第二数据进行数据归约计算以产生运算结果,以及所述数据归约计算引擎依据所述数据串中的所述地址字段将所述运算结果写入所述芯片内存。
4.根据权利要求1所述的人工智能芯片,其特征在于,所述人工智能芯片还包括:
芯片内存,其中所述多个集合通信引擎包括数据分散引擎,所述集合通信引擎选择器依据所述操作码中的操作类型字段决定所述数据分散引擎作为所述被选择引擎,所述集合通信引擎选择器依据所述操作码中的数据类型字段将所述第一数据的数据类型通知给所述数据分散引擎,以及所述数据分散引擎将所述第一数据写入所述芯片内存。
5.根据权利要求1所述的人工智能芯片,其特征在于,所述人工智能芯片还包括:
芯片内存,其中所述多个集合通信引擎包括数据广播引擎,所述集合通信引擎选择器依据所述操作码中的操作类型字段决定所述数据广播引擎作为所述被选择引擎,所述集合通信引擎选择器依据所述操作码中的数据类型字段将所述第一数据的数据类型通知给所述数据广播引擎,所述集合通信引擎选择器依据所述操作码中的芯片编号字段将所述集合通信的数据广播处理的数据广播对象信息提供给所述数据广播引擎,所述数据广播引擎将所述第一数据写入所述芯片内存,以及所述数据广播引擎依据所述数据广播对象信息将所述第一数据传递给所述人工智能芯片所在平台的其他芯片。
6.根据权利要求1所述的人工智能芯片,其特征在于,所述人工智能芯片基于远程直接内存访问的规范与所述集合通信的规范从所述第一节点的网卡接收所述来自第二节点的数据串。
7.一种位于第一节点中的人工智能芯片的操作方法,所述人工智能芯片适于从所述第一节点的网卡接收来自第二节点的数据串,其特征在于,所述人工智能芯片包括多个集合通信引擎,所述多个集合通信引擎经配置以进行集合通信的不同处理,所述数据串带有第一数据以及操作码,以及所述操作方法包括:
解析所述操作码,以便从所述多个集合通信引擎中选择一个引擎;以及
将所述第一数据提供给被选择引擎去进行所述集合通信的对应处理。
8.根据权利要求7所述的操作方法,其特征在于,所述多个集合通信引擎包括数据归约计算引擎,以及所述操作方法还包括:
依据所述操作码中的操作类型字段,决定所述数据归约计算引擎作为所述被选择引擎;
依据所述操作码中的数据归约类型字段,设定所述数据归约计算引擎的数据归约类型;以及
依据所述操作码中的数据类型字段,将所述第一数据的数据类型通知给所述数据归约计算引擎。
9.根据权利要求8所述的操作方法,其特征在于,所述人工智能芯片还包括芯片内存,以及所述操作方法还包括:
在所述数据归约计算引擎接收到所述第一数据时,在所述第一数据未被存储至所述芯片内存的情况下,依据所述数据串中的地址字段,由所述数据归约计算引擎从所述芯片内存读取第二数据;
依据所述数据归约类型,由所述数据归约计算引擎对所述第一数据及所述第二数据进行数据归约计算,以产生运算结果;以及
依据所述数据串中的所述地址字段,由所述数据归约计算引擎将所述运算结果写入所述芯片内存。
10.根据权利要求7所述的操作方法,其特征在于,所述多个集合通信引擎包括数据分散引擎,所述人工智能芯片还包括芯片内存,以及所述操作方法还包括:
依据所述操作码中的操作类型字段,决定所述数据分散引擎作为所述被选择引擎;
依据所述操作码中的数据类型字段,将所述第一数据的数据类型通知给所述数据分散引擎;以及
由所述数据分散引擎将所述第一数据写入所述芯片内存。
11.根据权利要求7所述的操作方法,其特征在于,所述多个集合通信引擎包括数据广播引擎,所述人工智能芯片还包括芯片内存,以及所述操作方法还包括:
依据所述操作码中的操作类型字段,决定所述数据广播引擎作为所述被选择引擎;
依据所述操作码中的数据类型字段,将所述第一数据的数据类型通知给所述数据广播引擎;
依据所述操作码中的芯片编号字段,将所述集合通信的数据广播处理的数据广播对象信息提供给所述数据广播引擎;
由所述数据广播引擎将所述第一数据写入所述芯片内存;以及
由所述数据广播引擎依据所述数据广播对象信息将所述第一数据传递给所述人工智能芯片所在平台的其他芯片。
12.根据权利要求7所述的操作方法,其特征在于,所述人工智能芯片基于远程直接内存访问的规范与所述集合通信的规范从所述第一节点的网卡接收所述来自第二节点的数据串。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110655529.7A CN113419989B (zh) | 2021-06-11 | 2021-06-11 | 人工智能芯片及其操作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110655529.7A CN113419989B (zh) | 2021-06-11 | 2021-06-11 | 人工智能芯片及其操作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113419989A CN113419989A (zh) | 2021-09-21 |
CN113419989B true CN113419989B (zh) | 2023-01-20 |
Family
ID=77788312
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110655529.7A Active CN113419989B (zh) | 2021-06-11 | 2021-06-11 | 人工智能芯片及其操作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113419989B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237346A (zh) * | 2008-02-29 | 2008-08-06 | 中兴通讯股份有限公司 | 网络处理器及网络处理器的读写串口的方法 |
CN108418688A (zh) * | 2017-02-09 | 2018-08-17 | 英特尔公司 | 用于椭圆曲线加密硬件加速的技术 |
CN110275859A (zh) * | 2018-03-15 | 2019-09-24 | 明日娱乐欧洲公司 | 游戏引擎以及芯片上的人工智能引擎 |
CN110430444A (zh) * | 2019-08-12 | 2019-11-08 | 北京中科寒武纪科技有限公司 | 一种视频流处理方法及*** |
CN111352896A (zh) * | 2020-03-03 | 2020-06-30 | 腾讯科技(深圳)有限公司 | 人工智能加速器、设备、芯片以及数据处理方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324382B (zh) * | 2018-12-13 | 2023-03-03 | 华为技术有限公司 | 指令处理方法和芯片 |
CN109885577B (zh) * | 2019-03-11 | 2021-07-13 | Oppo广东移动通信有限公司 | 数据处理方法、装置、终端及存储介质 |
CN110991634B (zh) * | 2019-12-04 | 2022-05-10 | 腾讯科技(深圳)有限公司 | 人工智能加速器、设备、芯片及数据处理方法 |
-
2021
- 2021-06-11 CN CN202110655529.7A patent/CN113419989B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237346A (zh) * | 2008-02-29 | 2008-08-06 | 中兴通讯股份有限公司 | 网络处理器及网络处理器的读写串口的方法 |
CN108418688A (zh) * | 2017-02-09 | 2018-08-17 | 英特尔公司 | 用于椭圆曲线加密硬件加速的技术 |
CN110275859A (zh) * | 2018-03-15 | 2019-09-24 | 明日娱乐欧洲公司 | 游戏引擎以及芯片上的人工智能引擎 |
CN110430444A (zh) * | 2019-08-12 | 2019-11-08 | 北京中科寒武纪科技有限公司 | 一种视频流处理方法及*** |
CN111352896A (zh) * | 2020-03-03 | 2020-06-30 | 腾讯科技(深圳)有限公司 | 人工智能加速器、设备、芯片以及数据处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113419989A (zh) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9148485B2 (en) | Reducing packet size in a communication protocol | |
KR101642086B1 (ko) | 고성능 인터커넥트 링크 계층 | |
CN113485823A (zh) | 数据传输方法、装置、网络设备、存储介质 | |
US7702827B2 (en) | System and method for a credit based flow device that utilizes PCI express packets having modified headers wherein ID fields includes non-ID data | |
US20100064070A1 (en) | Data transfer unit for computer | |
CN1997987A (zh) | 用于在互连网络路由器内进行分组合并的方法和设备 | |
US20230017643A1 (en) | Composable infrastructure enabled by heterogeneous architecture, delivered by cxl based cached switch soc | |
CN109478171B (zh) | 提高openfabrics环境中的吞吐量 | |
CN114936087B (zh) | 一种嵌入向量预取的方法、装置、***及相关设备 | |
CN215769533U (zh) | 一种基于cxl加速计算的板卡 | |
US11308005B2 (en) | Cache coherent, high-throughput input/output controller | |
CN113419989B (zh) | 人工智能芯片及其操作方法 | |
US20230403232A1 (en) | Data Transmission System and Method, and Related Device | |
CN113177015A (zh) | 基于帧头的串口通讯方法和串口芯片 | |
CN115269174A (zh) | 一种数据传输方法、数据处理方法及相关产品 | |
US11960437B2 (en) | Systems and methods for multi-branch routing for interconnected chip networks | |
US20230244626A1 (en) | Parallel dataflow routing scheme systems and methods | |
CN113900793B (zh) | 一种服务器集群及其深度学习的集合通信***和方法 | |
CN114445260B (zh) | 基于fpga的分布式gpu通信的方法及装置 | |
US11636061B2 (en) | On-demand packetization for a chip-to-chip interface | |
US11275683B2 (en) | Method, apparatus, device and computer-readable storage medium for storage management | |
CN111917656A (zh) | 传输数据的方法和设备 | |
CN113377704B (zh) | 人工智能芯片以及数据操作方法 | |
CN114827151B (zh) | 一种异构服务器集群以及数据转发方法、装置和设备 | |
US20220350526A1 (en) | Flexible memory extension systems and methods |
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 |