WO2022001496A1 - 计算装置、集成电路芯片、板卡、电子设备和计算方法 - Google Patents
计算装置、集成电路芯片、板卡、电子设备和计算方法 Download PDFInfo
- Publication number
- WO2022001496A1 WO2022001496A1 PCT/CN2021/095699 CN2021095699W WO2022001496A1 WO 2022001496 A1 WO2022001496 A1 WO 2022001496A1 CN 2021095699 W CN2021095699 W CN 2021095699W WO 2022001496 A1 WO2022001496 A1 WO 2022001496A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- instruction
- circuit
- slave
- data
- arithmetic
- Prior art date
Links
- 238000004364 calculation method Methods 0.000 title claims description 47
- 238000012545 processing Methods 0.000 claims abstract description 260
- 238000000034 method Methods 0.000 claims abstract description 57
- 238000007781 pre-processing Methods 0.000 claims abstract description 52
- 238000012805 post-processing Methods 0.000 claims abstract description 36
- 230000004044 response Effects 0.000 claims abstract description 18
- 238000006243 chemical reaction Methods 0.000 claims description 55
- 239000013598 vector Substances 0.000 claims description 16
- 239000011159 matrix material Substances 0.000 description 29
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 12
- 238000013473 artificial intelligence Methods 0.000 description 11
- 238000013528 artificial neural network Methods 0.000 description 7
- 210000002569 neuron Anatomy 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 3
- 230000010354 integration Effects 0.000 description 3
- 230000017105 transposition Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000011176 pooling Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 238000005481 NMR spectroscopy Methods 0.000 description 1
- 240000007594 Oryza sativa Species 0.000 description 1
- 235000007164 Oryza sativa Nutrition 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 235000009566 rice Nutrition 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000005406 washing Methods 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline, look ahead using instruction pipelines
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline, look ahead using a slave processor, e.g. coprocessor
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
-
- 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
- G06N3/063—Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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/08—Learning methods
- G06N3/098—Distributed learning, e.g. federated learning
-
- 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
Abstract
一种计算装置、集成电路芯片、板卡、电子设备和使用所述计算装置来执行计算操作的方法。其中所述计算装置包括主处理电路(102)和至少一个从处理电路(104, 106, 108),所述方法包括:将所述主处理电路配置成响应于主指令来执行主运算操作,将所述从处理电路配置成响应于从指令来执行从运算操作,其中,所述主运算操作包括针对于所述从运算操作的前处理操作和/或后处理操作,所述主指令和所述从指令根据所述计算装置接收的计算指令解析得到。利用该方法可以高效地执行与主运算操作和从运算操作相关的主指令和从指令,从而加速运算操作的执行,主运算操作和从运算操作的结合使得计算装置可以支持更多类型的运算和操作,基于流水线运算布置可以对计算指令进行灵活地配置以满足计算的要求。
Description
相关申请的交叉引用
本申请要求于2020年6月30日申请的,申请号为2020106181129,名称为“计算装置、集成电路芯片、板卡、电子设备和计算方法”的中国专利申请的优先权,在此将其全文引入作为参考。
本披露一般地涉及计算领域。更具体地,本披露涉及一种计算装置、集成电路芯片、板卡、电子设备和计算方法。
在计算系统中,指令集是用于执行计算和对计算系统进行控制的一套指令的集合,并且在提高计算系统中计算芯片(例如处理器)的性能方面发挥着关键性的作用。当前的各类计算芯片(特别是人工智能领域的芯片)利用相关联的指令集,可以完成各类通用或特定的控制操作和数据处理操作。然而,当前的指令集还存在诸多方面的缺陷。例如,现有的指令集受限于硬件架构而在灵活性方面表现较差。进一步,许多指令仅能完成单一的操作,而多个操作的执行则通常需要多条指令,这潜在地导致片内I/O数据吐吞量增大。另外,当前的指令在执行速度、执行效率和对芯片造成的功耗方面还有改进之处。
发明内容
为了至少解决上述现有技术中存在的问题,本披露提供一种硬件构架平台和相关指令的解决方案。利用本披露公开的方案,可以增加指令的灵活性,提高指令执行的效率并且降低计算成本和开销。
在第一方面中,本披露公开了一种计算装置,包括主处理电路和至少一个从处理电路,其中:所述主处理电路配置成响应于主指令来执行主运算操作,所述从处理电路配置成响应于从指令来执行从运算操作,其中所述主运算操作包括针对于所述从运算操作的前处理操作和/或后处理操作,所述主指令和所述从指令根据所述计算装置接收到的计算指令解析得到。
在第二方面中,本披露公开了一种集成电路芯片,其包括前一方面中提及并且在稍后的多个实施例中描述的计算装置。
在第三方面中,本披露公开了一种板卡,其包括前一方面中提及并且在稍后的多个实施例中描述的集成电路芯片。
在第四方面中,本披露公开了一种电子设备,其包括前一方面中提及并且在稍后的多个实施例中描述的电子设备。
在第五方面中,本披露公开了一种使用前述的计算装置来执行计算操作的方法,其中所述计算装置包括主处理电路和至少一个从处理电路,所述方法包括:将所述主处理电路配置成响应于主指令来执行主运算操作,将所述从处理电路配置成响应于从指令来执行从运算操作,其中,所述主运算操作包括针对于所述从运算操作的前处理操作和/或后处理操作,所述主指令和所述从指令根据所述计算装置接收的计算指令解 析得到。
利用本披露公开的计算装置、集成电路芯片、板卡、电子设备和方法,可以高效地执行与主运算操作和从运算操作相关的主指令和从指令,从而加速运算操作的执行。进一步,由于主运算操作和从运算操作的结合,使得本披露的计算装置可以支持更多类型的运算和操作。另外,基于本披露的计算装置的流水线运算布置,可以对计算指令进行灵活地配置以满足计算的要求。
通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分其中:
图1是示出根据本披露实施例的计算装置的概略图;
图2是示出根据本披露实施例的计算装置的框图;
图3是示出根据本披露实施例的计算装置的主处理电路的框图;
图4a,4b和4c是示出根据本披露实施例的数据转换电路所执行的矩阵转换示意图;
图5是示出根据本披露实施例的计算装置的从处理电路的框图;
图6是示出根据本披露实施例的一种组合处理装置的结构图;以及
图7是示出根据本披露实施例的一种板卡的结构示意图。
本披露的方案利用主处理电路和至少一个从处理电路的硬件架构来执行相关联的数据操作,从而可以利用相对灵活、简化的计算指令来完成相对复杂的运算。具体来说,本披露的方案利用从计算指令解析获得的主指令和从指令,并且令主处理电路执行主指令以实现主运算操作,而令从处理电路执行从指令以实现从运算操作,以便实现包括例如向量运算的各种复杂运算。这里,主运算操作可以包括针对于从运算操作的前处理操作和/或后处理操作。在一个实施例中,该前处理操作可以例如是数据转换操作和/或数据拼接操作。在另一个实施例中,该后处理操作可以例如是对从处理电路输出结果的算术操作。另外,根据主处理电路中运算电路或运算器的不同,本披露的计算指令支持灵活和个性化的配置,以满足不同的应用场景。
下面将结合附图对本披露的技术方案进行详细地描述。
图1是示出根据本披露实施例的计算装置100的概略图。如图1中所示,计算装置100可以包括主处理电路102和从处理电路,例如图中所示出的从处理电路104、106和108。尽管这里示出三个从处理电路,但本领域技术人员可以理解本披露的计算装置100可以包括任意合适数目的从处理电路,且多个从处理电路之间、多个从处理电路和主处理电路之间可以以不同方式连接,本披露不做任何的限制。在一个或多个实施例中,本披露的多个从处理电路可以并行地执行各类从指令(例如由计算指令解析获得),以提高计算装置的处理效率。
在本披露的上下文中,计算指令可以是软件和硬件的交互接口的指令系统中的指令,其可以是二进制或其他形式的、供处理器(或称处理电路)等硬件接收并处理的机器语言。计算指令可以包括用于指示处理器操作的操作码和操作数。根据不同的应 用场景,计算指令可以包括一个或多个操作码,而当前述计算指令包括一个操作码时,该操作码可以用于指示处理器的多个操作。
在一个实施例中,可以通过解析计算装置接收到的计算指令来获得主指令和从指令。在操作中,主处理电路可以配置成响应于主指令来执行主运算操作,而所述从处理电路可以配置成响应于从指令来执行从运算操作。根据本披露的方案,前述的主指令或从指令可以是在处理器内部运行的微指令或控制信号,并且可以包括(或者说指示)一个或多个操作。
在一个实施例中,前述主运算操作可以包括针对于所述从运算操作的前处理操作和/或后处理操作。具体而言,对于由主处理电路执行的主指令,其可以包括例如对将参与运算的数据进行数据转换和/或数据拼接的前处理操作。在一些应用场景中,主指令也可以包括仅仅对数据的选择性读取的前处理操作,例如将专用或私有缓存器中所存储的数据读出并发送到从处理电路,或者为从处理电路的运算生成相应的随机数。在另外一些应用场景中,依据主处理电路中包括的运算器的类型和数目,所述主指令可以包括一个或多个与运算器的功能相关联的多个后处理操作。例如,主指令可以包括对从处理电路执行从指令后获得的中间运算结果或最终运算结果进行相加、相乘、查表、比较、求平均、过滤等多种类型的操作。
为了便于识别前处理操作和/或后处理操作,在一些应用场景中,所述主指令可以包括用于标识所述前处理操作和/或后处理操作的标识位。由此,当获取主指令时,主处理电路可以根据所述标识位来确定对运算数据执行前处理操作还是后处理操作。附加地或替代地,可以通过所述计算指令的预设位置(或称指令域段)来对所述主指令中的所述前处理操作和后处理操作进行匹分。例如,当计算指令中设置有包括(主指令+从指令)的预设位置时,则可以确定此计算指令中的主指令涉及针对于从操作的前处理操作。又例如,当计算指令中设置有包括(从指令+主指令)的预设位置时,则可以确定此计算指令中的主指令涉及对从操作的后处理操作。为了便于理解,假设计算指令具有三段预定位宽(即前述的预设位置)的长度,则可以将位于第一段预定位宽的指令指定为用于前处理操作的主指令,位于中间位置的第二段预定位宽的指令指定为用于从操作的从指令,而位于最后位置的第三段预定位宽的指令指定为用于后处理操作的主指令。
对于由从处理电路执行的从指令,其可以包括与从处理电路中的一个或多个运算电路的功能关联的一个或多个操作。所述从指令可以包括对经主处理电路执行前处理操作后的数据执行运算的操作。在一些应用场景中,所述从指令可以包括算术运算、逻辑运算、数据类型转换等各种操作。例如,从指令可以包括对经所述前处理操作后的数据执行向量相关的各类乘加操作,包括例如卷积操作。在另一些应用场景中,当前述计算指令中不包括关于前处理操作的主指令时,从处理电路也可以根据从指令来对输入数据直接进行从运算操作。
在一个或多个实施例中,主处理电路102可以配置成获得计算指令并且对其进行解析,从而得到前述的主指令和从指令,并且将从指令发送到从处理电路。具体来说,主处理电路可以包括用于解析计算指令的一个或多个译码电路(或称译码器)。通过内部的译码电路,主处理电路可以将接收到的计算指令解析成一个或多个主指令和/或从指令,并且将相应的从指令发送到从处理电路,以便从处理电路执行从运算操作。 这里,根据应用场景的不同,可以以多种方式将从指令发送到从处理电路。例如,当计算装置中包括存储电路时,主处理电路可以将从指令发送到存储电路,并且经由存储电路来向从处理电路发送。又例如,当多个从处理电路执行并行操作时,主处理电路可以向多个从处理电路广播相同的从指令。附加地或可选地,在一些硬件架构场景中,计算装置还可以包括单独的电路、单元或模块来专用于对计算装置接收到的计算指令进行解析,如稍后结合图2所描述的架构。
在一个或多个实施例中,本披露的从处理电路可以包括用于执行从运算操作的多个运算电路,其中所述多个运算电路可以被连接并且配置成执行多级流水的运算操作。根据运算场景的不同,运算电路可以包括用于至少执行向量运算的乘法电路、比较电路、累加电路和转数电路中的一个或多个。在一个实施例中,当本披露的计算装置应用于人工智能领域的计算时,从处理电路可以根据从指令来执行神经网络中的多维卷积运算。
以上结合图1对本披露的计算装置进行了描述,通过利用本披露的计算装置以及主指令和从指令,可以利用一条计算指令完成多个操作,减少了多个操作需由多个指令完成所导致的每个指令需要进行的数据搬运,解决计算装置IO瓶颈问题,有效地提高计算的效率和降低计算的开销。另外,本披露的方案还可以根据主处理电路中配置的运算器的类型、从处理电路中配置的运算电路的功能,并通过主处理电路和从处理电路的协作,灵活设置计算指令中所包括的操作的类型和数量,以使计算装置可以执行多种类型的计算操作,从而扩展和丰富了计算装置的应用场景,满足不同的计算需求。另外,由于主处理电路和从处理电路可以配置成支持多级流水运算,从而提升了主处理电路和从处理电路中运算器的执行效率,进一步缩短计算的时间。根据上文的描述,本领域技术人员可以理解图1所示硬件架构仅仅是示例性而非限制性的。在本披露的公开和教导下,本领域技术人员也可以基于该架构来增加新的电路或器件,以实现更多的功能或操作。例如,可以在图1所示的架构中增加存储电路,以存储各类指令和数据。进一步,也可以将主处理电路和从处理电路布置于不同的物理或逻辑位置,并且二者之间可以通过各种数据接口或互联单元来连接,以便通过二者的交互来完成上文的主运算操作和从运算操作。
图2是示出根据本披露实施例的计算装置200的框图。可以理解的是,图2中所示出的计算装置200是图1所示计算装置100的一种具体实现方式,因此结合图1所描述的计算装置100的主处理电路和从处理电路的细节也同样适用于图2所示出的计算装置200。
如图2中所示,根据本披露的计算装置200包括主处理电路202和多个从处理电路204、206和208。由于前文结合图1对主处理电路和从处理电路的操作进行了详细的描述,此处将不再赘述。除了包括与图1所示计算装置100相同的主处理电路和从处理电路,图2的计算装置200还包括控制电路210和存储电路212。在一个实施例中,控制电路可以配置成获取所述计算指令并且对该计算指令进行解析,以得到所述主指令和从指令,并且将所述主指令发送至所述主处理电路202并且将所述从指令发送至所述多个从处理电路204、206和208中的一个或多个。在一个场景中,控制电路可以通过主处理电路将解析后得到的从指令发送至从处理电路,即如图2中所示出的。替代地,当控制电路和从处理电路之间存在连接时,控制电路也可以直接向从处 理电路发送解析后的从指令。类似地,当存储电路与从处理电路之间存在连接时,控制电路也可以经由存储电路将从指令发送到从处理电路。
在一个或多个实施例中,存储电路212可以存储各类与计算相关的数据或指令。例如,存储电路可以存储与神经网络运算相关的神经元或权值数据,或者存储经主处理电路执行后处理操作后获得的最终运算结果。又例如,存储电路可以存储经主处理电路执行前处理操作后所获得的中间结果,或经从处理电路执行运算操作后所获得的中间结果。在一些应用场景中,存储电路可以用作计算装置200的片上存储器来与片外存储器执行数据读写操作,例如通过直接存储器访问(“DMA”)接口。在一些场景中,当计算指令由控制电路来解析时,存储电路可以存储由控制电路解析后所得到的运算指令,例如主指令和/或从指令。另外,尽管图2中以一个框图示出存储电路,但根据应用场景的不同,存储电路可以实现为包括主存储器和主缓存器的存储器,其中主存储器可以用于存储相关的运算数据例如神经元、权值和各类常数项,而主缓存模块可以用于临时存储中间数据,例如经所述前处理操作后的数据和后处理操作前的数据,而这些中间数据根据设置可以对于操作人员不可见。
在主存储器与主处理电路的交互应用中,主处理电路中的流水运算电路还可以借助于存储在主存储电路中的掩码进行对应的操作。例如,在执行流水运算的过程中,该运算电路可以从主存储电路中读取一个掩码,并且可以利用该掩码来表示该运算电路中执行运算操作的数据是否有效。主存储电路不仅可以进行内部的存储应用,还具有与本披露的计算装置外的存储装置进行数据交互的功能,例如可以通过直接存储器访问(“DMA”)与外部的存储装置进行数据交换。
图3是示出根据本披露实施例的计算装置的主处理电路300的框图。可以理解的是图3所示出的主处理电路300也即结合图1和图2所示和描述的主处理电路,因此对图1和图2中的主处理电路的描述也同样适用于下文结合图3的描述。
如图3中所示,所述主处理电路300可以包括数据处理单元302、第一组流水运算电路304和最后一组流水运算电路306以及位于二组之间的一组或多组流水运算电路(以黑圈替代)。在一个实施例中,数据处理单元302包括数据转换电路3021和数据拼接电路3022。如前所述,当主运算操作包括针对于从运算操作的前处理操作时,例如数据转换操作或数据拼接操作时,数据转换电路3021或数据拼接电路3022将根据相应的主指令来执行相应的转换操作或拼接操作。下面将以示例来说明转换操作和拼接操作。
就数据转换操作而言,当输入到数据转换电路的数据位宽较高时(例如数据位宽为1024比特位宽),则数据转换电路可以根据运算要求将输入数据转换为较低比特位宽的数据(例如输出数据的位宽为512比特位宽)。根据不同的应用场景,数据转换电路可以支持多种数据类型之间的转换,例如可以进行FP16(浮点数16位)、FP32(浮点数32位)、FIX8(定点数8位)、FIX4(定点数4位)、FIX16(定点数16位)等具有不同比特位宽的数据类型间转换。当输入到数据转换电路的数据是矩阵时,数据转换操作可以是针对矩阵元素的排列位置进行的变换。该变换可以例如包括矩阵转置与镜像(稍后结合图4a-图4c描述)、矩阵按照预定的角度(例如是90度、180度或270度)旋转和矩阵维度的转换。
就数据拼接操作而言,数据拼接电路可以根据例如指令中设定的位长对数据中提 取的数据块进行奇偶拼接等操作。例如,当数据位长为32比特位宽时,数据拼接电路可以按照4比特的位宽长度将数据分为1~8共8个数据块,然后将数据块1、3、5和7共四个数据块拼接在一起,并且将数据2、4、6和8共四个数据块拼接在一起以用于运算。
在另一些应用场景中,还可以针对执行运算后获得的数据M(例如可以是向量)执行上述的数据拼接操作。假设数据拼接电路可以将数据M偶数行的低256位先以8位比特位宽作为1个单位数据进行拆分,以得到32个偶数行单位数据(分别表示为M_2i
0至M_2i
31)。类似地,可以将数据M奇数行的低256位也以8位比特位宽作为1个单位数据进行拆分,以得到32个奇数行单位数据(分别表示为M_(2i+1)
0至M_(2i+1)
31)。进一步,根据数据位由低到高、先偶数行后奇数行的顺序依次交替布置拆分后的32个奇数行单位数据与32个偶数行单位数据。具体地,将偶数行单位数据0(M_2i
0)布置在低位,再顺序布置奇数行单位数据0(M_(2i+1)
0)。接着,布置偶数行单位数据1(M_2i
1)……。以此类推,当完成奇数行单位数据31(M_(2i+1)
31)的布置时,64个单位数据拼接在一起以组成一个512位比特位宽的新数据。
根据不同的应用场景,数据处理单元中的数据转换电路和数据拼接电路可以配合使用,以便更加灵活地进行数据前处理。例如,根据主指令中包括的不同操作,数据处理单元可以仅执行数据转换而不执行数据拼接操作、仅执行数据拼接操作而不执行数据转换、或者既执行数据转换又执行数据拼接操作。在一些场景中,当所述主指令中并不包括针对于从运算操作的前处理操作时,则数据处理单元可以配置成禁用所述数据转换电路和数据拼接电路。
如前所述,根据本披露的主处理电路可以包括一组或多组多级流水运算电路,如图3中示出的两组多级流水运算电路304和306,其中每组多级流水运算电路执行包括第一级到第N级的多级流水操作,其中每一级可以包括一个或多个运算器,以便根据所述主指令来执行多级流水运算。在一个实施例中,本披露的主处理电路可以实现为单指令多数据(Single Instruction Multiple Data,SIMD)模块,并且每组多级流水运算电路可以形成一条运算流水线。该运算流水线根据运算需求可以逐级设置数量不等的、不同的或相同的功能模块(也即本披露的运算器),例如加法模块(或加法器)、乘法模块(或乘法器)、查表模块(或查表器)等各种类型的功能模块。
在一些应用场景中,当满足流水线的顺序要求时,可以将一条流水线上的不同功能模块组合使用,一级流水完成一个微指令中的一个操作码(“op”)所代表的操作。由此,本披露的SIMD可以支持不同级别的流水操作。即,基于运算流水线上运算器的设置,本披露的SIMD可以灵活地支持不同数量的op的组合。
假设存在与第一组多级流水运算电路304和第二组多级流水线运算电路306相类似的一条流水线(以“stage1”来表示其名称),其按照从上到下的顺序设置有六个功能模块以形成六级流水线,具体可以为:stage1-1-加法器1(第一级加法器)、stage1-2-加法器2(第二级加法器)、stage1-3-乘法器1(第一级乘法器)、stage1-4-乘法器2(第二级乘法器)、stage1-5-加法器1(第一级加法器)、stage1-6-加法器2(第二级加法器)。可以看出,第一级加法器(其作为流水线的第一级)和第二级加法器(其作为流水线的第二级)配合使用,以便完成加法操作的两级运算。同样地,第一级乘法器和第二级乘法器也执行类似地两级运算。当然,此处的两级加法器或乘法器仅仅 是示例性地而非限制性地,在一些应用场景中,也可以在多级流水线中仅设置一级加法器或乘法器。
在一些实施例中,还可以设置两条或更多条如上所述的流水线,其中每条流水线中可以包括若干个相同或不同的运算器,以实现相同或不同的功能。进一步,不同的流水线可以包括不同的运算器,以便各个流水线实现不同功能的运算操作。实现前述不同功能的运算器或电路可以包括但不限于随机数处理电路、加减电路、减法电路、查表电路、参数配置电路、乘法器、除法器、池化器、比较器、求绝对值电路、逻辑运算器、位置索引电路或过滤器。这里以池化器为例,其可以示例性由加法器、除法器、比较器等运算器来构成,以便执行神经网络中的池化操作。
在一些应用场景中,主处理电路中的多级流水运算可以支持一元运算(即只有一项输入数据的情形)。以神经网络中的scale层+relu层处的运算操作为例,假设待执行的计算指令表达为result=relu(a*ina+b),其中ina是输入数据(例如可以是向量或矩阵),a、b均为运算常量。对于该计算指令,可以应用本披露的包括乘法器、加法器、非线性运算器的一组三级流水运算电路来执行运算。具体来说,可以利用第一级流水的乘法器计算输入数据ina与a的乘积,以获得第一级流水运算结果。接着,可以利用第二级流水的加法器,对该第一级流水运算结果(a*ina)与b执行加法运算获得第二级流水运算结果。最后,可以利用第三级流水的relu激活函数,对该第二级流水运算结果(a*ina+b)进行激活操作,以获得最终的运算结果result。
在一些应用场景中,主处理电路中的多级流水运算电路可以支持二元运算(例如卷积计算指令result=conv(ina,inb))或三元运算(例如卷积计算指令result=conv(ina,inb,bias)),其中输入数据ina、inb与bias既可以是向量(例如可以是整型、定点型或浮点型数据),也可以是矩阵。这里以卷积计算指令result=conv(ina,inb)为例,可以利用三级流水运算电路结构中包括的多个乘法器、至少一个加法树和至少一个非线性运算器来执行该计算指令所表达的卷积运算,其中两个输入数据ina和inb可以例如是神经元数据。具体来说,首先可以利用三级流水运算电路中的第一级流水乘法器进行计算,从而可以获得第一级流水运算结果product=ina*inb(视为运算指令中的一条微指令,其对应于乘法操作)。继而可以利用第二级流水运算电路中的加法树对第一级流水运算结果“product”执行加和操作,以获得第二级流水运算结果sum。最后,利用第三级流水运算电路的非线性运算器对“sum”执行激活操作,从而得到最终的卷积运算结果。
在一些应用场景中,可以对运算操作中将不使用的一级或多级流水运算电路执行旁路操作,即可以根据运算操作的需要选择性地使用多级流水运算电路的一级或多级,而无需令运算操作经过所有的多级流水操作。以计算欧式距离的运算操作为例,假设其计算指令表示为dis=sum((ina-inb)^2),可以只使用由加法器、乘法器、加法树和累加器构成的若干级流水运算电路来进行运算以获得最终的运算结果,而对于未使用的流水运算电路,可以在流水运算操作前或操作中予以旁路。
在前述的流水操作中,每组流水运算电路可以独立地执行所述流水操作。然而,多组中的每组流水运算电路也可以协同地执行所述流水操作。例如,第一组流水运算电路中的第一级、第二级执行串行流水运算后的输出可以作为另一组流水运算电路的第三级流水的输入。又例如,第一组流水运算电路中的第一级、第二级执行并行流水 运算,并分别输出各自流水运算的结果,作为另一组流水运算电路的第一级和/或第二级流水操作的输入。
图4a,4b和4c是示出根据本披露实施例的数据转换电路所执行的矩阵转换示意图。为了更好地理解主处理电路中的数据转换电路3021执行的转换操作,下面将以原始矩阵进行的转置操作与水平镜像操作为例做进一步描述。
如图4a所示,原始矩阵是(M+1)行×(N+1)列的矩阵。根据应用场景的需求,数据转换电路可以对图4a中示出的原始矩阵进行转置操作转换,以获得如图4b所示出的矩阵。具体来说,数据转换电路可以将原始矩阵中元素的行序号与列序号进行交换操作以形成转置矩阵。具体来说,在图4a示出的原始矩阵中坐标是第1行第0列的元素“10”,其在图4b示出的转置矩阵中的坐标则是第0行第1列。以此类推,在图4a示出的原始矩阵中坐标是第M+1行第0列的元素“M0”,其在图4b示出的转置矩阵中的坐标则是第0行第M+1列。
如图4c所示,数据转换电路可以对图4a示出的原始矩阵进行水平镜像操作以形成水平镜像矩阵。具体来说,所述数据转换电路可以通过水平镜像操作,将原始矩阵中从首行元素到末行元素的排列顺序转换成从末行元素到首行元素的排列顺序,而对原始矩阵中元素的列号保持不变。具体来说,图4a示出的原始矩阵中坐标分别是第0行第0列的元素“00”与第1行第0列的元素“10”,在图4c中示出的水平镜像矩阵中的坐标则分别是第M+1行第0列与第M行第0列。以此类推,在图4a示出的原始矩阵中坐标是第M+1行第0列的元素“M0”,在图4c示出的水平镜像矩阵中的坐标则是第0行第0列。
图5是示出根据本披露实施例的计算装置的从处理电路500的框图。可以理解的是图中所示结构仅仅是示例性的而非限制性的,本领域技术人员基于本披露的教导也可以想到增加更多的运算器来形成更多级的流水运算电路。
如图5中所示,从处理电路500包括乘法器502、比较器504、选择器506、累加器508和转换器510构成的四级流水运算电路。在一个应用场景中,该从处理电路整体上可以执行向量(包括例如矩阵)运算。
当执行向量运算中,从处理电路500根据接收到的微指令(如图中所示出的控制信号)来控制包括权值数据和神经元数据的向量数据输入到乘法器中。在执行完乘法操作后,乘法器将结果输入到选择器506。此处,选择器506选择将乘法器的结果而非来自于比较器的结果传递至累加器508,执行向量运算中的累加操作。接着,累加器将累加后的结果传递至转换器510执行前文描述的数据转换操作。最终,由转换器将累加和(即图中所示“ACC_SUM”)作为最终结果输出。
除了执行上述的神经元数据和权值数据之间的矩阵乘加(“MAC”)运算以外,图5所示的四级流水运算电路还可以用于执行神经网络运算中的直方图运算、depthwise层乘加运算、积分和winograd乘加运算等运算。当执行直方图运算时,在第一级运算中,从处理电路根据微指令来将输入数据输入到比较器。相应地,此处选择器506选择将比较器的结果而非乘法器的结果传递至累加器以执行后续的操作。
通过上述的描述,本领域技术人员可以理解就硬件布置来说,本披露的从处理电路可以包括用于执行从运算操作的多个运算电路,并且所述多个运算电路被连接并配置成执行多级流水的运算操作。在一个或多个实施例中,前述的运算电路可以包括但 不限于乘法电路、比较电路、累加电路和转数电路中的一个或多个,以至少执行向量运算,例如神经网络中的多维卷积运算。
在一个运算场景中,本披露的从处理电路可以根据从指令(实现为例如一个或多个微指令或控制信号)对经主处理电路执行前处理操作的数据进行运算,以获得预期的运算结果。在另一个运算场景中,从处理电路可以将其运算后获得的中间结果发送(例如经由互联接口发送)到主处理电路中的数据处理单元,以便由数据处理单元中的数据转换电路来对中间结果执行数据类型转换或者以便由数据处理单元中的数据拼接电路来对中间结果执行数据拆分和拼接操作,从而获得最终的运算结果。下面将结合几个示例性的指令来描述本披露的主处理电路和从处理电路的操作。
以包括前处理操作的计算指令“COSHLC”为例,其执行的操作(包括主处理电路执行的前处理操作和从处理电路执行的从运算操作)可以表达为:
COSHLC=FPTOFIX+SHUFFLE+LT3DCONV,
其中FPTOFIX表示主处理电路中的数据转换电路执行的数据类型转换操作,即将输入数据从浮点型数转换成定点型数,SHUFFLE表示数据拼接电路执行的数据拼接操作,而LT3DCONV表示从处理电路(以“LT”指代)执行的3DCONV操作,即3维数据的卷积操作。可以理解的是,当仅执行3维数据的卷积操作时,则作为主操作一部分的FPTOFIX和SHUFFLE均可以设置为可选的操作。
以包括后处理操作的计算指令LCSU为例,其执行的操作(包括从处理电路执行的从运算操作和主处理电路执行的后处理操作)可以表达为:
LCSU=LT3DCONV+SUB,
其中在从处理电路执行LT3DCONV操作以获得3D卷积结果后,可以由主处理电路中的减法器对3D卷积结果执行减法操作SUB。由此,在每个指令的执行周期,可以输入1个2元操作数(即卷积结果和减数),输出1个1元操作数(即执行LCSU指令后获得的最终结果)。
再以包括前处理操作、从运算操作和后处理操作的计算指令SHLCAD为例,其执行的操作(包括主处理电路执行的前处理操作、从处理电路执行的从运算操作和主处理电路执行的后处理操作)可以表达为:
SHLCAD=SHUFFLE+LT3DCONV+ADD
其中在所述前处理操作中,数据拼接电路执行SHUFFLE表示的数据拼接操作。接着,由从处理电路对拼接后的数据执行LT3DCONV操作以获得以3D卷积结果。最后,由主处理电路中的加法器对3D卷积结果执行加法操作ADD以获得最终的计算结果。
从上面的例子可以,本领域技术人员可以理解在对计算指令解析后,本披露所获得的运算指令根据具体的运算操作包括以下组合中的一项:前处理指令和从处理指令;从处理指令和后处理指令;以及前处理指令、从处理指令和后处理指令。基于此,在一些实施例中,所述前处理指令可以包括数据转换指令和/或数据拼接指令。在另一些实施例中,所述后处理指令包括以下中的一项或多项:随机数处理指令、加法指令、减法指令、查表指令、参数配置指令、乘法指令、池化指令、激活指令、比较指令、求绝对值指令、逻辑运算指令、位置索引指令或过滤指令。在另一些实施例中,所述从处理指令可以包括各种类型的运算指令,包括但不限于与后处理指令中相类似的指 令以及针对于复杂数据处理的指令,例如向量运算指令。
基于前文结合图1-图5的描述,本领域技术人员可以理解到本披露实际上也公开了一种使用前述的计算装置来执行计算操作的方法。在不同的实现场景中,该计算装置可以例如包括主处理电路和至少一个从处理电路。基于此,该方法可以包括:将所述主处理电路配置成响应于主指令来执行主运算操作,将所述从处理电路配置成响应于从指令来执行从运算操作,其中所述主运算操作包括针对于所述从运算操作的前处理操作和/或后处理操作,所述主指令和所述从指令根据所述计算装置接收的计算指令解析得到。
在一个实施例中,上述方法可以将所述主处理电路配置成获取所述计算指令并对所述计算指令进行解析,以得到所述主指令和所述从指令;以及将所述从指令发送至所述从处理电路。在另一个实施例中,当上述计算装置包括前文所述的控制电路时,所述方法还包括将控制电路配置成:获取所述计算指令并对所述计算指令进行解析,以得到所述主指令和所述从指令;以及将所述主指令发送至所述主处理电路并且将所述从指令发送至所述从处理电路。这里为了简明的目的,对于本披露的方法可执行的步骤不再做进一步描述,本领域技术人员可以理解本披露的方法可以包括执行前文结合图1-图5描述的各类操作步骤。
图6是示出根据本披露实施例的一种组合处理装置600的结构图。如图6中所示,该组合处理装置600包括计算处理装置602、接口装置604、其他处理装置606和存储装置608。根据不同的应用场景,计算处理装置中可以包括一个或多个计算装置610,该计算装置可以配置用于执行本文结合图1-图5所描述的操作。
在不同的实施例中,本披露的计算处理装置可以配置成执行用户指定的操作。在示例性的应用中,该计算处理装置可以实现为单核人工智能处理器或者多核人工智能处理器。类似地,包括在计算处理装置内的一个或多个计算装置可以实现为人工智能处理器核或者人工智能处理器核的部分硬件结构。当多个计算装置实现为人工智能处理器核或人工智能处理器核的部分硬件结构时,就本披露的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。
在示例性的操作中,本披露的计算处理装置可以通过接口装置与其他处理装置进行交互,以共同完成用户指定的操作。根据实现方式的不同,本披露的其他处理装置可以包括中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器。这些处理器可以包括但不限于数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算处理装置而言,其可以视为具有单核结构或者同构多核结构。然而,当将计算处理装置和其他处理装置共同考虑时,二者可以视为形成异构多核结构。
在一个或多个实施例中,该其他处理装置可以作为本披露的计算处理装置(其可以具体化为人工智能例如神经网络运算的相关运算装置)与外部数据和控制的接口,执行包括但不限于数据搬运、对计算装置的开启和/或停止等基本控制。在另外的实施例中,其他处理装置也可以和该计算处理装置协作以共同完成运算任务。
在一个或多个实施例中,该接口装置可以用于在计算处理装置与其他处理装置间传输数据和控制指令。例如,该计算处理装置可以经由所述接口装置从其他处理装置中获取输入数据,写入该计算处理装置片上的存储装置(或称存储器)。进一步,该计算处理装置可以经由所述接口装置从其他处理装置中获取控制指令,写入计算处理装置片上的控制缓存中。替代地或可选地,接口装置也可以读取计算处理装置的存储装置中的数据并传输给其他处理装置。
附加地或可选地,本披露的组合处理装置还可以包括存储装置。如图中所示,该存储装置分别与所述计算处理装置和所述其他处理装置连接。在一个或多个实施例中,存储装置可以用于保存所述计算处理装置和/或所述其他处理装置的数据。例如,该数据可以是在计算处理装置或其他处理装置的内部或片上存储装置中无法全部保存的数据。
在一些实施例里,本披露还公开了一种芯片(例如图7中示出的芯片702)。在一种实现中,该芯片是一种系统级芯片(System on Chip,SoC),并且集成有一个或多个如图6中所示的组合处理装置。该芯片可以通过对外接口装置(如图7中示出的对外接口装置706)与其他相关部件相连接。该相关部件可以例如是摄像头、显示器、鼠标、键盘、网卡或wifi接口。在一些应用场景中,该芯片上可以集成有其他处理单元(例如视频编解码器)和/或接口模块(例如DRAM接口)等。在一些实施例中,本披露还公开了一种芯片封装结构,其包括了上述芯片。在一些实施例里,本披露还公开了一种板卡,其包括上述的芯片封装结构。下面将结合图7对该板卡进行详细地描述。
图7是示出根据本披露实施例的一种板卡700的结构示意图。如图7中所示,该板卡包括用于存储数据的存储器件704,其包括一个或多个存储单元710。该存储器件可以通过例如总线等方式与控制器件708和上文所述的芯片702进行连接和数据传输。进一步,该板卡还包括对外接口装置706,其配置用于芯片(或芯片封装结构中的芯片)与外部设备712(例如服务器或计算机等)之间的数据中继或转接功能。例如,待处理的数据可以由外部设备通过对外接口装置传递至芯片。又例如,所述芯片的计算结果可以经由所述对外接口装置传送回外部设备。根据不同的应用场景,所述对外接口装置可以具有不同的接口形式,例如其可以采用标准PCIE接口等。
在一个或多个实施例中,本披露板卡中的控制器件可以配置用于对所述芯片的状态进行调控。为此,在一个应用场景中,该控制器件可以包括单片机(Micro Controller Unit,MCU),以用于对所述芯片的工作状态进行调控。
根据上述结合图6和图7的描述,本领域技术人员可以理解本披露也公开了一种电子设备或装置,其可以包括一个或多个上述板卡、一个或多个上述芯片和/或一个或多个上述组合处理装置。
根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、 燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行划分,而实际实现时也可以有另外的划分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在一些实现场景中,上述集成的单元可以采用软件程序模块的形式来实现。如果以软件程序模块的形式实现并作为独立的产品销售或使用时,所述集成的单元可以存储在计算机可读取存储器中。基于此,当本披露的方案以软件产品(例如计算机可读存储介质)的形式体现时,该软件产品可以存储在存储器中,其可以包括若干指令用以使得计算机设备(例如个人计算机、服务器或者网络设备等)执行本披露实施例所述方法的部分或全部步骤。前述的存储器可以包括但不限于U盘、闪存盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如CPU、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic Random Access Memory,DRAM)、静态随机存取存储器(Static Random Access Memory,SRAM)、增强动态随机存取存储器(Enhanced Dynamic Random Access Memory,EDRAM)、高带宽存储器(High Bandwidth Memory,HBM)、混合存储器立方体(Hybrid Memory Cube,HMC)、ROM和RAM等。
依据以下条款可更好地理解前述内容:
条款1、一种计算装置,包括主处理电路和至少一个从处理电路,其中:所述主处理电路配置成响应于主指令来执行主运算操作,所述从处理电路配置成响应于从指令来执行从运算操作,其中,所述主运算操作包括针对于所述从运算操作的前处理操作和/或后处理操作,所述主指令和所述从指令根据所述计算装置接收的计算指令解析得到。
条款2、根据条款1所述的计算装置,其中所述主处理电路配置成:获取所述计算指令并对所述计算指令进行解析,以得到所述主指令和所述从指令;以及将所述从指令发送至所述从处理电路。
条款3、根据条款1所述的计算装置,还包括控制电路,所述控制电路配置成:获取所述计算指令并对所述计算指令进行解析,以得到所述主指令和所述从指令;以及将所述主指令发送至所述主处理电路并且将所述从指令发送至所述从处理电路。
条款4、根据条款1所述的计算装置,其中所述主指令包括用于标识所述前处理操作和/或所述后处理操作的标识位。
条款5、根据条款1所述的计算装置,其中所述计算指令包括用于区分所述主指令中的所述前处理操作和所述后处理操作的预设位。
条款6、根据条款1所述的计算装置,其中所述主处理电路包括用于执行所述主运算操作的数据处理单元,并且所述数据处理单元包括用于执行数据转换操作的数据转换电路和/或用于执行数据拼接操作的数据拼接电路。
条款7、根据条款6所述的计算装置,其中所述数据转换电路包括一个或多个转换器,用于实现计算数据在多种不同数据类型之间的转换。
条款8、根据条款6所述的计算装置,其中所述数据拼接电路配置成以预定的位长对计算数据进行拆分,并且将拆分后获得的多个数据块按照预定顺序进行拼接。
条款9、根据条款1所述的计算装置,其中所述主处理电路包括一组或多组流水运算电路,所述每组流水运算电路形成一条运算流水线并且包括一个或多个运算器,其中当所述每组流水运算电路包括多个运算器时,所述多个运算器被连接并配置成根据所述主指令选择性地参与以执行所述主运算操作。
条款10、根据条款9所述的计算装置,其中所述主处理电路包括至少两条运算流水线,并且每条运算流水线包括以下中的一个或多个运算器或电路:随机数处理电路、 加减电路、减法电路、查表电路、参数配置电路、乘法器、除法器、池化器、比较器、求绝对值电路、逻辑运算器、位置索引电路或过滤器。
条款11、根据条款1所述的计算装置,其中所述从处理电路包括用于执行所述从运算操作的多个运算电路,并且所述多个运算电路被连接并配置成执行多级流水的运算操作,其中所述运算电路包括乘法电路、比较电路、累加电路和转数电路中的一个或多个,以至少执行向量运算。
条款12、根据条款11所述的计算装置,其中所述从指令包括对经所述前处理操作的计算数据执行卷积运算的卷积指令,所述从处理电路配置成:根据所述卷积指令对经所述前处理操作的计算数据执行卷积运算。
条款13、一种集成电路芯片,包括根据条款1-12的任意一项所述的计算装置。
条款14、一种板卡,包括根据条款13所述的集成电路芯片。
条款15、一种电子设备,包括根据条款13所述的集成电路芯片。
条款16、一种使用计算装置来执行计算操作的方法,其中所述计算装置包括主处理电路和至少一个从处理电路,所述方法包括:将所述主处理电路配置成响应于主指令来执行主运算操作,将所述从处理电路配置成响应于从指令来执行从运算操作,其中,所述主运算操作包括针对于所述从运算操作的前处理操作和/或后处理操作,所述主指令和所述从指令根据所述计算装置接收的计算指令解析得到。
条款17、根据条款16所述的方法,其中将所述主处理电路配置成:获取所述计算指令并对所述计算指令进行解析,以得到所述主指令和所述从指令;以及将所述从指令发送至所述从处理电路。
条款18、根据条款16所述的方法,其中计算装置包括控制电路,所述方法还包括将控制电路配置成:获取所述计算指令并对所述计算指令进行解析,以得到所述主指令和所述从指令;以及将所述主指令发送至所述主处理电路并且将所述从指令发送至所述从处理电路。
条款19、根据条款16所述的方法,其中所述主指令包括用于标识所述前处理操作和/或所述后处理操作的标识位。
条款20、根据条款16所述的方法,其中所述计算指令包括用于区分所述主指令中的所述前处理操作和所述后处理操作的预设位。
条款21、根据条款16所述的方法,其中所述主处理电路包括数据处理单元,并且所述数据处理单元包括数据转换电路和/或数据拼接电路,所述方法包括将数据处理单元配置成执行所述主运算操作,并且将所述数据转换电路配置成执行数据转换操作,以及将所述数据拼接电路配置成执行数据拼接操作。
条款22、根据条款21所述的方法,其中所述数据转换电路包括一个或多个转换器,所述方法包括将一个或多个转换器配置成实现计算数据在多种不同数据类型之间的转换。
条款23、根据条款21所述的方法,其中将所述数据拼接电路配置成以预定的位长对计算数据进行拆分,并且将拆分后获得的多个数据块按照预定顺序进行拼接。
条款24、根据条款16所述的方法,其中所述主处理电路包括一组或多组流水运算电路,所述每组流水运算电路形成一条运算流水线并且包括一个或多个运算器,其中当所述每组流水运算电路包括多个运算器时,所述方法包括将所述多个运算器进行 连接并且配置成根据所述主指令选择性地参与以执行所述主运算操作。
条款25、根据条款24所述的方法,其中所述主处理电路包括至少两条运算流水线,并且每条运算流水线包括以下中的一个或多个运算器或电路:
随机数处理电路、加减电路、减法电路、查表电路、参数配置电路、乘法器、除法器、池化器、比较器、求绝对值电路、逻辑运算器、位置索引电路或过滤器。
条款26、根据条款16所述的方法,其中所述从处理电路包括多个运算电路,所述方法包括将所述多个运算电路配置成执行所述从运算操作,并且所述方法还包括将所述多个运算电路连接并配置成执行多级流水的运算操作,其中所述运算电路包括乘法电路、比较电路、累加电路和转数电路中的一个或多个,以至少执行向量运算。
条款27、根据条款26所述的方法,其中所述从指令包括对经所述前处理操作的计算数据执行卷积运算的卷积指令,所述方法包括将所述从处理电路配置成:
根据所述卷积指令对经所述前处理操作的计算数据执行卷积运算。
虽然本文已经示出和描述了本披露的多个实施例,但对于本领域技术人员显而易见的是,这样的实施例只是以示例的方式来提供。本领域技术人员可以在不偏离本披露思想和精神的情况下想到许多更改、改变和替代的方式。应当理解的是在实践本披露的过程中,可以采用对本文所描述的本披露实施例的各种替代方案。所附权利要求书旨在限定本披露的保护范围,并因此覆盖这些权利要求范围内的等同或替代方案。
Claims (27)
- 一种计算装置,包括主处理电路和至少一个从处理电路,其中:所述主处理电路配置成响应于主指令来执行主运算操作,所述从处理电路配置成响应于从指令来执行从运算操作,其中,所述主运算操作包括针对于所述从运算操作的前处理操作和/或后处理操作,所述主指令和所述从指令根据所述计算装置接收的计算指令解析得到。
- 根据权利要求1所述的计算装置,其中所述主处理电路配置成:获取所述计算指令并对所述计算指令进行解析,以得到所述主指令和所述从指令;以及将所述从指令发送至所述从处理电路。
- 根据权利要求1所述的计算装置,还包括控制电路,所述控制电路配置成:获取所述计算指令并对所述计算指令进行解析,以得到所述主指令和所述从指令;以及将所述主指令发送至所述主处理电路并且将所述从指令发送至所述从处理电路。
- 根据权利要求1所述的计算装置,其中所述主指令包括用于标识所述前处理操作和/或所述后处理操作的标识位。
- 根据权利要求1所述的计算装置,其中所述计算指令包括用于区分所述主指令中的所述前处理操作和所述后处理操作的预设位。
- 根据权利要求1所述的计算装置,其中所述主处理电路包括用于执行所述主运算操作的数据处理单元,并且所述数据处理单元包括用于执行数据转换操作的数据转换电路和/或用于执行数据拼接操作的数据拼接电路。
- 根据权利要求6所述的计算装置,其中所述数据转换电路包括一个或多个转换器,用于实现计算数据在多种不同数据类型之间的转换。
- 根据权利要求6所述的计算装置,其中所述数据拼接电路配置成以预定的位长对计算数据进行拆分,并且将拆分后获得的多个数据块按照预定顺序进行拼接。
- 根据权利要求1所述的计算装置,其中所述主处理电路包括一组或多组流水运算电路,所述每组流水运算电路形成一条运算流水线并且包括一个或多个运算器,其中当所述每组流水运算电路包括多个运算器时,所述多个运算器被连接并配置成根据所述主指令选择性地参与以执行所述主运算操作。
- 根据权利要求9所述的计算装置,其中所述主处理电路包括至少两条运算流水线,并且每条运算流水线包括以下中的一个或多个运算器或电路:随机数处理电路、加减电路、减法电路、查表电路、参数配置电路、乘法器、除法器、池化器、比较器、求绝对值电路、逻辑运算器、位置索引电路或过滤器。
- 根据权利要求1所述的计算装置,其中所述从处理电路包括用于执行所述从运算操作的多个运算电路,并且所述多个运算电路被连接并配置成执行多级流水的运算操作,其中所述运算电路包括乘法电路、比较电路、累加电路和转数电路中的一个或多个,以至少执行向量运算。
- 根据权利要求11所述的计算装置,其中所述从指令包括对经所述前处理操作的计算数据执行卷积运算的卷积指令,所述从处理电路配置成:根据所述卷积指令对经所述前处理操作的计算数据执行卷积运算。
- 一种集成电路芯片,包括根据权利要求1-12的任意一项所述的计算装置。
- 一种板卡,包括根据权利要求13所述的集成电路芯片。
- 一种电子设备,包括根据权利要求13所述的集成电路芯片。
- 一种使用计算装置来执行计算操作的方法,其中所述计算装置包括主处理电路和至少一个从处理电路,所述方法包括:将所述主处理电路配置成响应于主指令来执行主运算操作,将所述从处理电路配置成响应于从指令来执行从运算操作,其中所述主运算操作包括针对于所述从运算操作的前处理操作和/或后处理操作,所述主指令和所述从指令根据所述计算装置接收的计算指令解析得到。
- 根据权利要求16所述的方法,其中将所述主处理电路配置成:获取所述计算指令并对所述计算指令进行解析,以得到所述主指令和所述从指令;以及将所述从指令发送至所述从处理电路。
- 根据权利要求16所述的方法,其中计算装置包括控制电路,所述方法还包括将控制电路配置成:获取所述计算指令并对所述计算指令进行解析,以得到所述主指令和所述从指令;以及将所述主指令发送至所述主处理电路并且将所述从指令发送至所述从处理电路。
- 根据权利要求16所述的方法,其中所述主指令包括用于标识所述前处理操作和/或所述后处理操作的标识位。
- 根据权利要求16所述的方法,其中所述计算指令包括用于区分所述主指令中的所述前处理操作和所述后处理操作的预设位。
- 根据权利要求16所述的方法,其中所述主处理电路包括数据处理单元,并且所述数据处理单元包括数据转换电路和/或数据拼接电路,所述方法包括将数据处理单元配置成执行所述主运算操作,并且将所述数据转换电路配置成执行数据转换操作,以及将所述数据拼接电路配置成执行数据拼接操作。
- 根据权利要求21所述的方法,其中所述数据转换电路包括一个或多个转换器,所述方法包括将一个或多个转换器配置成实现计算数据在多种不同数据类型之间的转换。
- 根据权利要求21所述的方法,其中将所述数据拼接电路配置成以预定的位长对计算数据进行拆分,并且将拆分后获得的多个数据块按照预定顺序进行拼接。
- 根据权利要求16所述的方法,其中所述主处理电路包括一组或多组流水运算电路,所述每组流水运算电路形成一条运算流水线并且包括一个或多个运算器,其中当所述每组流水运算电路包括多个运算器时,所述方法包括将所述多个运算器进行连接并且配置成根据所述主指令选择性地参与以执行所述主运算操作。
- 根据权利要求24所述的方法,其中所述主处理电路包括至少两条运算流水线,并且每条运算流水线包括以下中的一个或多个运算器或电路:随机数处理电路、加减电路、减法电路、查表电路、参数配置电路、乘法器、除法器、池化器、比较器、求绝对值电路、逻辑运算器、位置索引电路或过滤器。
- 根据权利要求16所述的方法,其中所述从处理电路包括多个运算电路,所述方法包括将所述多个运算电路配置成执行所述从运算操作,并且所述方法还包括将所述多个 运算电路连接并配置成执行多级流水的运算操作,其中所述运算电路包括乘法电路、比较电路、累加电路和转数电路中的一个或多个,以至少执行向量运算。
- 根据权利要求26所述的方法,其中所述从指令包括对经所述前处理操作的计算数据执行卷积运算的卷积指令,所述方法包括将所述从处理电路配置成:根据所述卷积指令对经所述前处理操作的计算数据执行卷积运算。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21831851.7A EP4174644A4 (en) | 2020-06-30 | 2021-05-25 | COMPUTER APPARATUS, INTEGRATED CIRCUIT CHIP, CIRCUIT BOARD, ELECTRONIC DEVICE AND CALCULATION METHOD |
JP2022581721A JP2023532573A (ja) | 2020-06-30 | 2021-05-25 | 計算装置、集積回路チップ、ボードカード、電子機器と計算方法 |
KR1020227046378A KR20230038429A (ko) | 2020-06-30 | 2021-05-25 | 계산 장치, 집적 회로 칩, 보드 카드, 전자 기기 및 계산 방법 |
US18/013,807 US20230297386A1 (en) | 2020-06-30 | 2021-05-25 | Computing apparatus, integrated circuit chip, board card, electronic device, and computing method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010618112.9 | 2020-06-30 | ||
CN202010618112.9A CN113867797A (zh) | 2020-06-30 | 2020-06-30 | 计算装置、集成电路芯片、板卡、电子设备和计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022001496A1 true WO2022001496A1 (zh) | 2022-01-06 |
Family
ID=78981847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2021/095699 WO2022001496A1 (zh) | 2020-06-30 | 2021-05-25 | 计算装置、集成电路芯片、板卡、电子设备和计算方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20230297386A1 (zh) |
EP (1) | EP4174644A4 (zh) |
JP (1) | JP2023532573A (zh) |
KR (1) | KR20230038429A (zh) |
CN (1) | CN113867797A (zh) |
WO (1) | WO2022001496A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590356A (en) * | 1994-08-23 | 1996-12-31 | Massachusetts Institute Of Technology | Mesh parallel computer architecture apparatus and associated methods |
CN105468335A (zh) * | 2015-11-24 | 2016-04-06 | 中国科学院计算技术研究所 | 流水级运算装置、数据处理方法及片上网络芯片 |
CN109062609A (zh) * | 2018-02-05 | 2018-12-21 | 上海寒武纪信息科技有限公司 | 神经网络处理装置及其执行运算指令的方法 |
CN111047045A (zh) * | 2018-10-12 | 2020-04-21 | 中科寒武纪科技股份有限公司 | 机器学习运算的分配系统及方法 |
CN111178492A (zh) * | 2018-11-09 | 2020-05-19 | 中科寒武纪科技股份有限公司 | 计算装置及相关产品、执行人工神经网络模型的计算方法 |
CN111242321A (zh) * | 2019-04-18 | 2020-06-05 | 中科寒武纪科技股份有限公司 | 一种数据处理方法及相关产品 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11106598B2 (en) * | 2018-02-13 | 2021-08-31 | Shanghai Cambricon Information Technology Co., Ltd. | Computing device and method |
-
2020
- 2020-06-30 CN CN202010618112.9A patent/CN113867797A/zh active Pending
-
2021
- 2021-05-25 KR KR1020227046378A patent/KR20230038429A/ko unknown
- 2021-05-25 JP JP2022581721A patent/JP2023532573A/ja active Pending
- 2021-05-25 EP EP21831851.7A patent/EP4174644A4/en active Pending
- 2021-05-25 US US18/013,807 patent/US20230297386A1/en active Pending
- 2021-05-25 WO PCT/CN2021/095699 patent/WO2022001496A1/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5590356A (en) * | 1994-08-23 | 1996-12-31 | Massachusetts Institute Of Technology | Mesh parallel computer architecture apparatus and associated methods |
CN105468335A (zh) * | 2015-11-24 | 2016-04-06 | 中国科学院计算技术研究所 | 流水级运算装置、数据处理方法及片上网络芯片 |
CN109062609A (zh) * | 2018-02-05 | 2018-12-21 | 上海寒武纪信息科技有限公司 | 神经网络处理装置及其执行运算指令的方法 |
CN111047045A (zh) * | 2018-10-12 | 2020-04-21 | 中科寒武纪科技股份有限公司 | 机器学习运算的分配系统及方法 |
CN111178492A (zh) * | 2018-11-09 | 2020-05-19 | 中科寒武纪科技股份有限公司 | 计算装置及相关产品、执行人工神经网络模型的计算方法 |
CN111242321A (zh) * | 2019-04-18 | 2020-06-05 | 中科寒武纪科技股份有限公司 | 一种数据处理方法及相关产品 |
Non-Patent Citations (1)
Title |
---|
See also references of EP4174644A4 * |
Also Published As
Publication number | Publication date |
---|---|
EP4174644A1 (en) | 2023-05-03 |
JP2023532573A (ja) | 2023-07-28 |
KR20230038429A (ko) | 2023-03-20 |
CN113867797A (zh) | 2021-12-31 |
EP4174644A4 (en) | 2024-01-10 |
US20230297386A1 (en) | 2023-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109522052B (zh) | 一种计算装置及板卡 | |
CN109543832B (zh) | 一种计算装置及板卡 | |
CN110119807B (zh) | 运算方法、装置、计算机设备和存储介质 | |
TW202321999A (zh) | 一種計算裝置及方法 | |
CN110059797B (zh) | 一种计算装置及相关产品 | |
CN109711540B (zh) | 一种计算装置及板卡 | |
WO2022001500A1 (zh) | 计算装置、集成电路芯片、板卡、电子设备和计算方法 | |
CN109740730B (zh) | 运算方法、装置及相关产品 | |
WO2022001497A1 (zh) | 计算装置、集成电路芯片、板卡、电子设备和计算方法 | |
CN109711538B (zh) | 运算方法、装置及相关产品 | |
CN111047005A (zh) | 运算方法、装置、计算机设备和存储介质 | |
WO2022001496A1 (zh) | 计算装置、集成电路芯片、板卡、电子设备和计算方法 | |
WO2021082746A1 (zh) | 运算装置及相关产品 | |
WO2022001455A1 (zh) | 计算装置、集成电路芯片、板卡、电子设备和计算方法 | |
CN111047030A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111353124A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111026440B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111290788B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111353125B (zh) | 运算方法、装置、计算机设备和存储介质 | |
WO2022001454A1 (zh) | 集成计算装置、集成电路芯片、板卡和计算方法 | |
CN118012505A (zh) | 人工智能处理器、集成电路芯片、板卡、电子设备 | |
CN111124497B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN113746471B (zh) | 运算电路、芯片和板卡 | |
CN113792867B (zh) | 运算电路、芯片和板卡 | |
CN113469365B (zh) | 基于神经网络模型的推理和编译方法及其相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 21831851 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2022581721 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2021831851 Country of ref document: EP Effective date: 20230130 |