CN114443137A - 一种集成计算装置、芯片、板卡、设备和计算方法 - Google Patents
一种集成计算装置、芯片、板卡、设备和计算方法 Download PDFInfo
- Publication number
- CN114443137A CN114443137A CN202011197744.9A CN202011197744A CN114443137A CN 114443137 A CN114443137 A CN 114443137A CN 202011197744 A CN202011197744 A CN 202011197744A CN 114443137 A CN114443137 A CN 114443137A
- Authority
- CN
- China
- Prior art keywords
- circuit
- circuits
- computing device
- sequentially
- data state
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- 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
-
- 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
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Neurology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Medical Informatics (AREA)
- Power Sources (AREA)
Abstract
本披露公开了一种集成计算装置、机器学习运算装置、神经网络芯片、板卡、电子设备和方法。该集成计算装置可以包括在组合处理装置中,该组合处理装置还可以包括接口装置和其他处理装置。该集成计算装置与其他处理装置进行交互,共同完成用户指定的计算操作。组合处理装置还可以包括存储装置,该存储装置分别与集成计算装置和其他处理装置连接,用于存储该集成计算装置和其他处理装置的数据。本披露的方案可以按预设规则启动和/或关闭电路,避免同时启动导致的瞬时电流过大问题。
Description
技术领域
本披露一般地涉及计算机技术领域。更具体地,本披露涉及一种集成计算装置、机器学习运算装置、神经网络芯片、板卡、电子设备和方法。
背景技术
现有的人工智能运算往往包含大量的数据运算,如卷积运算、图像处理等。随着数据量的增多,例如矩阵运算的数据运算所涉及的运算量和存储量都会由于数据规模的增大而急剧增加。
因此,在一些运算处理电路中会采用多种硬件架构,以便根据实际需求灵活地选择适合的处理电路。例如,在芯片中会同时存在多个电路,用于并行处理数据。然而,当这种芯片启动时,如果同时启动所有电路,容易造成瞬时电流过大,导致瞬时功耗过大,从而引起硬件上的一些故障现象;甚至可能触发未知错误,导致芯片运行不正常。
发明内容
为了至少解决如上所提到的一个或多个技术问题,本披露在多个方面中提出了让各电路按照预设规则依次启动和/或依次关闭的技术方案,从而避免同时启动导致的瞬时电流过大的问题。
在第一方面,本披露提供一种集成计算装置,包括第一电路和多个第二电路,其中,当启动和/或关闭所述集成计算装置时,所述第一电路配置成:按照预定规则向所述多个第二电路中的全部或部分发送控制信息,以指示所述第二电路按顺序依次启动和/或依次关闭;并且所述第二电路配置成:响应于接收到所述控制信息,按所述顺序依次启动和/或依次关闭所述第二电路。
在第二方面,本披露提供了一种机器学习运算装置,其中所述机器学习运算装置包括一个或多个如本披露第一方面任一实施例的集成计算装置。
在第三方面,本披露提供了一种神经网络芯片,所述神经网络芯片包括如本披露第二方面任一实施例的机器学习运算装置。
在第四方面,本披露提供了一种板卡,所述板卡包括如本披露第三方面任一实施例的神经网络芯片。
在第五方面,本披露提供了一种电子设备,所述电子设备包括如本披露第四方面任一实施例的板卡。
在第六方面,本披露提供了一种用于集成计算装置的方法,所述集成计算装置包括第一电路和多个第二电路,其中,当启动和/或关闭所述集成计算装置时,所述第一电路按照预定规则向所述多个第二电路中的全部或部分发送控制信息,以指示所述第二电路按顺序依次启动和/或依次关闭;以及所述第二电路响应于接收到所述控制信息,按所述顺序依次启动和/或依次关闭所述第二电路。
通过如上所提供的集成计算装置、机器学习运算装置、神经网络芯片、板卡、电子设备和用于集成计算装置的方法,本披露的方案将全部或部分电路按照预设规则依次启动和/或依次关闭,避免了瞬时电流过大可能带来的危害。在一些实施例中,控制启动和/或关闭的信息可以利用各电路之间传输的数据的数据状态来指示,从而减少信号和线路开销。在另一些实施例中,控制启动和/或关闭的信息可以利用专门的使能信号来指示,从而简化控制方法。
附图说明
通过参考附图阅读下文的详细描述,本披露示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本披露的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1示出根据本披露实施例的集成计算装置100的总体架构图;
图2示出根据本披露一个实施例的电路启动方案的示例性示意框图;
图3示出根据本披露另一实施例的电路启动方案的示例性示意框图;
图4示出根据本披露一个实施例的电路关闭方案的示例性示意框图;
图5示出根据本披露又一个实施例的电路启动方案的示例性示意框图;
图6示出根据本披露实施例的第二电路的示例性拓扑结构;
图7示出根据本披露实施例的第二电路的另一种示例性拓扑结构;
图8示出根据本披露实施例的用于集成计算装置的方法800的示例性流程图;
图9示出根据本披露实施例的一种组合处理装置的结构图;以及
图10示出根据本披露实施例的一种板卡的结构示意图。
具体实施方式
下面将结合本披露实施例中的附图,对本披露实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本披露一部分实施例,而不是全部的实施例。基于本披露中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本披露保护的范围。
应当理解,本披露的权利要求、说明书及附图中的术语“第一”和“第二”等是用于区别不同对象,而不是用于描述特定顺序。本披露的说明书和权利要求书中使用的术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本披露说明书中所使用的术语仅仅是出于描述特定实施例的目的,而并不意在限定本披露。如在本披露说明书和权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本披露说明书和权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
下面结合附图来详细描述本公开的具体实施方式。
图1示出根据本披露实施例的集成计算装置100的总体架构图。如图1所示,本披露的集成计算装置100可以用于执行深度学习计算,其可以包括存储电路10、控制电路11和运算电路12,三者之间相互连接以传输各种数据和指令。
控制电路11用以协调并控制运算电路12和存储电路10的工作。控制电路11例如可以包括取指单元(instruction fetch unit,IFU)111及指令译码单元(instructiondecode unit,IDU)112。
在执行例如计算操作的各种运算操作中,控制电路11可以配置成获取计算指令并对计算指令进行解析以获得运算指令,然后将运算指令发送到运算电路12和存储电路10。计算指令可以是一种形式的硬件指令并且包括一个或多个操作码,而每个操作码可以表示将要由运算电路114执行的一个或多个具体的操作。这些操作可以根据应用场景的不同而包括不同类型的操作,例如可以包括加法操作或乘法操作等算术运算、逻辑运算、比较运算或者查表运算,或者前述各类运算的任意多种组合。相应地,运算指令可以是根据计算指令解析后得到的运算电路内部执行的一个或多个微指令。
进一步,根据应用场景的不同,在解析计算指令后获得的运算指令可以是经控制电路11译码后的运算指令或者可以是未经控制电路11译码的运算指令。当运算指令是未经控制电路11译码的运算指令时,则运算电路12内可以包括相应的译码电路来执行运算指令的译码,以例如得到多个微指令。
运算电路12可以包括第一电路121和多个第二电路122。第一电路和第二电路之间以及多个第二电路之间可以通过各种连接相互通信。
第一电路可以配置成主电路,多个第二电路可以配置成从电路,从而第一电路和第二电路可以相互配合,由此实现并行运算处理。在这种配置中,第一电路例如可以用于对输入数据执行前序处理,向一个或多个第二电路传输数据和运算指令,以及从第二电路接收中间结果并执行后续处理,以得到运算指令的最终运算结果。第二电路例如可以用于根据从第一电路传输的数据和运算指令,并行执行中间运算得到多个中间结果,并将多个中间结果传输回第一电路。
在不同的应用场景中,多个第二电路之间的连接方式既可以是通过硬线布置的硬连接方式,也可以是根据例如微指令进行配置的逻辑连接方式,以形成多种第二电路阵列的拓扑结构。后面将结合附图给出第二电路的拓扑结构的几种示例。
通过将运算电路12设置成主从结构(例如一主多从结构,或者多主多从结构,本披露在此方面没有限制),对于正向运算的计算指令,可以根据计算指令将数据进行拆分,从而通过多个第二电路对计算量较大的部分进行并行运算,从而提高运算速度,节省运算时间,进而降低功耗。
为了支持运算功能,第一电路和第二电路可以包括各种计算电路,例如可以包括向量运算单元及矩阵运算单元。向量运算单元用以执行向量运算,可支持向量乘、加、非线性变换等复杂运算;矩阵运算单元负责深度学习算法的核心计算,例如矩阵乘和卷积。
存储电路10用来存储或搬运相关数据。在深度学习中,存储电路例如可用于存储神经元、权值等待运算数据,也可以存储运算结果。存储电路例如可以包括缓存102、寄存器104和直接内存访问模块(Direct Memory Access,DMA)106中的一个或任意组合。直接内存访问模块DMA 106可以用于与片外存储器(未示出)进行数据交互。
上面描述了根据本披露实施例的示例性集成计算装置,在该计算装置中,第一电路和第二电路可以属于同一处理器或芯片的不同模块,也可以属于不同处理器,本披露在此方面没有限制。
为了支持规模越来越大的计算处理,集成计算装置中会包括越来越多的电路。在计算装置启动过程中,如果同时启动多个电路,容易造成瞬时电流过大,很有可能导致硬件错误,从而触发一些未知错误,导致装置运行不正常。鉴于此,在本披露的实施例中,提出一种按照预设规则来依次启动和/或依次关闭集成计算装置中的各电路的方案,从而避免同时启动导致的瞬时电流过大带来的危害。
在一些实施例中,上述第一电路可以配置成按照预定规则向多个第二电路中的全部或部分发送控制信息,以指示第二电路按照顺序依次启动和/或依次关闭。相应地,第二电路可以配置成响应于接收到控制信息,按所指定的顺序依次执行启动和/或关闭操作。
取决于运算处理的规模和任务分配,在执行运算处理时,可能需要第二电路中的全部参与处理,也可能只需要第二电路中的部分参与处理。在一些实施例中,当只需要部分第二电路参与处理时,可以仅在预测启动电流超过预设阈值的情况下,才启用前述依次启动的方案,由此可以在安全的情况下缩短启动时间。
在电路之间传输的信息通常可以分为两类:数据和控制。
在本披露的一些实施例中,上述用于指示第二电路启动和/或关闭的控制信息可以隐式地指示,例如可以经由各电路之间传输的数据的数据状态来指示。在采用隐式指示的方案中,基于第一电路所负责的范围,可以提供至少两种指示机制。
在一种实现中,第一电路负责所有要启动和/或关闭的第二电路的控制信息。在这种实现中,第一电路可以配置成为要启动和/或关闭的第二电路设置相应的数据状态,从而通过这些数据状态来触发相应的第二电路的操作。相应地,第二电路可以配置成响应于接收到的数据状态,相应地执行启动和/或关闭。
在另一种实现中,第一电路只负责一个第二电路的控制信息,这一个第二电路可以是多个第二电路的连接中的首个第二电路。在这种实现中,第一电路可以配置成为要启动和/或关闭的首个第二电路设置相应的数据状态,从而通过该数据状态来触发首个第二电路的操作。用于其余的第二电路的启动和/或关闭的控制信息可以由该首个第二电路来触发和传播。
相应地,在启动过程中,第二电路可以配置成响应于接收到的数据状态指示启动,启动当前第二电路;为后一第二电路设置相应的数据状态;以及将所设置的数据状态向后传递给该后一第二电路。通过这种由前一电路为后一电路设置控制信息的方式,可以依次启动各个第二电路。
在关闭过程中,第二电路可以配置成响应于接收到的数据状态指示关闭,执行相应的数据处理;为前一第二电路设置相应的数据状态;将所设置的数据状态向前传递给该前一第二电路;以及关闭当前第二电路。
注意,在本披露中提到的“前”、“后”都是相对于从第一电路到第二电路的这个方向而言的,其实质都是由传输链路上的当前电路为传输链路上的下一电路设置控制信息。
在采用隐式指示的两种实现中,控制信息都是通过所传输的数据的数据状态来指示的,而数据在电路之间的传输可能存在多种方式。
以第一电路和第二电路配置成主从结构为例,数据传输存在三种情况:(1)主电路向从电路广播数据;(2)主电路向从电路分发数据;以及(3)从电路向主电路发送运算结果。此处,广播是指数据对于所有接收者而言是相同的,也即各从电路接收相同的数据。分发是指数据对于所有接收者而言可以是不同的,例如各从电路接收不同的数据。
在深度学习领域中,输入神经元通常为广播数据,权值通常为分发数据。例如,在卷积运算中,主电路向从电路广播神经元,也即上述第(1)种情况。如果从电路有对应的存储单元,则从电路可以从自己对应的存储单元中获取权值,与接收到的神经元进行卷积运算,得到运算结果。否则,主电路也需要向从电路发送权值数据,也即上述第(2)种情况。各从电路将运算结果发送回主电路,也即上述第(3)种情况。
在隐式指示的实现中,控制信息可以通过广播数据的数据状态来指示,也可以通过分发数据的数据状态来指示,本披露在此方面没有限制。
图2示出根据本披露一个实施例的电路启动方案的示例性示意框图。在图2中,以链式连接或串联连接的一个第一电路和四个第二电路为例,示出根据本披露实施例的电路启动过程。如图2所示,第一电路20向四个第二电路21-1、21-2、21-3和21-4广播数据,例如神经元N。第一电路20准备待传输的神经元N并设置相应的数据状态,例如置位成有效。然后,第一电路20向第二电路21-1传递神经元N及相关的数据状态。为了便于清楚看出各电路的启动顺序,以下按时间周期顺序描述各个周期的动作。
在第一周期,第二电路21-1响应于接收到上述有效的数据状态,启动电路,接收该神经元N,并将神经元N及相关的数据状态传递给下一电路。
在第二周期,第二电路21-2响应于接收到来自第二电路21-1的上述有效的数据状态,启动电路,接收该神经元N,并将神经元N及相关的数据状态传递给下一电路。
在第三周期,第二电路21-3响应于接收到来自第二电路21-2的上述有效的数据状态,启动电路,接收该神经元N,并将神经元N及相关的数据状态传递给下一电路。
在第四周期,第二电路21-4响应于接收到来自第二电路21-3的上述有效的数据状态,启动电路,接收该神经元N。此时,四个第二电路已经依次全部启动。
在上述描述中,第一电路所设置的数据状态可以用于所有的第二电路。本领域技术人员可以理解,上述广播方式的数据传输也适用于由传输链路上的当前第二电路为传输链路上的下一第二电路设置数据状态/控制信息的情形。下面将结合分发方式的数据传输来描述这种由传输链路上的当前第二电路为下一第二电路设置控制信息的情形。
图3示出根据本披露另一实施例的电路启动方案的示例性示意框图。在图3中,同样以链式连接或串联连接的一个第一电路和四个第二电路为例,示出根据本披露实施例的电路启动过程。如图3所示,第一电路20向四个第二电路21-1、21-2、21-3和21-4分发数据,例如相应的数据分别为A、B、C和D。第一电路20准备待传输的数据A、B、C和D,可选地还为第二电路21-1的数据A设置相应的数据状态,例如置位成有效。然后,第一电路20向第二电路21-1传递数据A、B、C和D及相关的数据状态。为了便于清楚看出各电路的启动顺序,以下按时间周期顺序描述各个周期的动作。
在第一周期,第二电路21-1响应于接收到上述有效的数据状态,启动电路,取出自己所需要的数据A。然后,为后一第二电路设置相应的数据状态,并将数据B、C和D及相关的数据状态传递给后一第二电路。
在第二周期,第二电路21-2响应于接收到来自前一第二电路21-1的上述有效的数据状态,启动电路,取出自己所需要的数据B。然后,为后一第二电路设置相应的数据状态,并将数据C和D及相关的数据状态传递给后一第二电路。
在第三周期,第二电路21-3响应于接收到来自第二电路21-2的上述有效的数据状态,启动电路,取出自己所需要的数据C。然后,为后一第二电路设置相应的数据状态,并将数据D及相关的数据状态传递给后一第二电路。
在第四周期,第二电路21-4响应于接收到来自第二电路21-3的上述有效的数据状态,启动电路,取出自己所需要的数据D。此时,四个第二电路已经依次全部启动。
在上述描述中,第一电路所设置的数据状态仅用于首个第二电路21-1,后续的第二电路由连接链路上位于其前面的第二电路来设置。本领域技术人员可以理解,上述分发方式的数据传输也适用于由第一电路为所有要启动的第二电路设置相应的数据状态的情形,此处不再一一描述。
从图2和图3的描述可以看出,在广播方式中,电路间所占用的数据传输带宽是相同的。在分发方式中,电路间所占用的数据传输带宽由大到小,前面的带宽压力较大。
图4示出根据本披露一个实施例的电路关闭方案的示例性示意框图。在图4中,同样以链式连接或串联连接的一个第一电路和四个第二电路为例,示出根据本披露实施例的电路关闭过程。如图4所示,四个第二电路21-1、21-2、21-3和21-4分别完成各自的运算处理,并要将处理结果返回给第一电路。为了便于清楚看出各电路的关闭顺序,以下按时间周期顺序描述各个周期的动作。
在第一周期,第二电路21-4响应于接收到的数据状态指示关闭,执行相应的数据处理;为前一第二电路设置相应的数据状态;将该数据状态向前传递给该前一第二电路。接着,第二电路21-4关闭。
在第二周期,第二电路21-3响应于接收到来自第二电路21-4的数据状态指示关闭,执行相应的数据处理;为前一第二电路设置相应的数据状态;将该数据状态向前传递给该前一第二电路。接着,第二电路21-3关闭。
在第三周期,第二电路21-2响应于接收到来自第二电路21-3的数据状态指示关闭,执行相应的数据处理;为前一第二电路设置相应的数据状态;将该数据状态向前传递给该前一第二电路。接着,第二电路21-2关闭。
在第四周期,第二电路21-1响应于接收到来自第二电路21-2的数据状态指示关闭,执行相应的数据处理;为前一第二电路设置相应的数据状态;将该数据状态向前传递给该前一第二电路。接着,第二电路21-1关闭。此时,四个第二电路已经依次全部启动。
各个第二电路中的数据处理可以包括当前电路中本身的数据处理,和/或对自身数据与从后一第二电路传递过来的数据的融合处理。融合处理例如可以包括相加或拼接等,本披露在此方面没有限制。图4的示例中示出了将各个第二电路的运算结果直接拼接起来,向前传递的例子。
在本披露的另一些实施例中,上述用于指示第二电路启动和/或关闭的控制信息可以显式地指示,例如可以通过专门的使能信号来指示。在这些实施例中,类似地,基于第一电路所负责的范围,也可以提供至少两种使能信号的指示机制。
在一种实现中,第一电路负责所有要启动和/或关闭的第二电路的控制信息。这种方式也可以称为“全局使能/控制”。在这种实现中,第一电路可以配置成为要启动和/或关闭的第二电路设置相应的使能信号,从而通过使能信号来触发对应的第二电路的操作。相应地,第二电路可以配置成响应于接收到的使能信号,相应地执行启动和/或关闭。
在另一种实现中,第一电路只负责一个第二电路的控制信息,这一个第二电路可以是多个第二电路的连接中的首个第二电路。这种方式也可以称为“局部使能/控制”。在这种实现中,第一电路可以配置成为要启动和/或关闭的首个第二电路设置相应的使能信号,从而通过该使能信号来触发首个第二电路的操作。用于其余的第二电路的启动和/或关闭的使能信号可以由该首个第二电路来触发和传播。
相应地,在启动过程中,首个第二电路可以配置成响应于接收到来自第一电路的使能信号指示启动,启动当前第二电路。该第二电路进一步配置成生成当前第二电路的启动确认信息,并将该启动确认信息向后传递给后一第二电路。对于连接中的非首个第二电路,其可以配置成响应于接收的使能信号指示启动并且接收到前一第二电路的启动确认信息,启动当前第二电路。同样地,该第二电路进一步配置成生成当前第二电路的启动确认信息,并将该启动确认信息向后传递给后一第二电路。可以理解,对于最尾端的第二电路,启动之后无需再生成启动确认信息。
类似地,在关闭过程中,首个(对于关闭过程而言,首个实际为连接中的最尾端)第二电路可以配置成响应于接收到来自第一电路的使能信号指示关闭,执行相应的数据处理。该第二电路进一步配置成生成当前第二电路的关闭确认信息,并将该关闭确认信息向前传递给前一第二电路,然后关闭当前第二电路。对于连接中的非首个(此处为非最尾端)第二电路,其可以配置成响应于接收的使能信号指示关闭并且接收到后一第二电路的关闭确认信息,执行相应的数据处理。同样地,该第二电路进一步配置成生成当前第二电路的关闭确认信息,并将该关闭确认信息向前传递给前一第二电路,然后关闭当前第二电路。
与前面类似,各个第二电路中的数据处理可以包括当前电路中本身的数据处理,和/或对自身数据与从后一第二电路传递过来的数据的融合处理。融合处理例如可以包括相加或拼接等,本披露在此方面没有限制。
在一些实施例中,上述关闭确认信息可以随第二电路的运算结果信息一起发送。取决于分配给第二电路的数据处理方式,运算结果信息可以包括以下至少一项:当前第二电路的运算结果;从后一第二电路接收的运算结果;以及当前第二电路的运算结果与后一第二电路的运算结果的融合结果。
图5示出根据本披露又一个实施例的电路启动方案的示例性示意框图。在图5中,同样以链式连接或串联连接的一个第一电路和四个第二电路为例,示出根据本披露实施例的电路启动过程。如图5所示,不管第一电路与第二电路之间的具体数据通路如何(图中用数据互连22表示),第一电路20与四个第二电路21-1、21-2、21-3和21-4之间至少存在用于传输控制信号的通路,如图5中的虚线所示。在此示例中,第一电路20准备使能信号(en),该信号将沿虚线所示的路径传送。
在一种实现中,使能信号例如可以包括4位,分别对应于四个第二电路。通过设置每位的取值,可以控制这四个第二电路的启动和/或关闭。
在另一种实现中,可以基于连接上的前一第二电路的启动/关闭状态来确定当前第二电路的启动和/或关闭。为了便于清楚看出各电路的启动顺序,以下按时间周期顺序描述各个周期的动作。
在第一周期,第二电路21-1响应于接收到使能信号指示启动,启动电路。此时,第二电路21-1也可以通过数据路径接收传递给自己的数据。然后,第二电路21-1将指示自己已启动的使能信号置为有效(例如,置为“1”),并通过虚线路径传递给后一第二电路。
在第二周期,第二电路21-2响应于接收到使能信号指示启动,并且接收到来自前一第二电路21-1的指示其已启动的使能信号,启动电路。此时,第二电路21-2可以通过数据路径接收传递给自己的数据。然后,第二电路21-2将指示自己已启动的使能信号置为有效(例如,置为“1”),并通过虚线路径传递给后一第二电路。
在第三周期,第二电路21-3响应于接收到使能信号指示启动,并且接收到来自前一第二电路21-2的指示其已启动的使能信号,启动电路。此时,第二电路21-3可以通过数据路径接收传递给自己的数据。然后,第二电路21-3将指示自己已启动的使能信号置为有效(例如,置为“1”),并通过虚线路径传递给后一第二电路。
在第四周期,第二电路21-4响应于接收到使能信号指示启动,并且接收到来自前一第二电路21-3的指示其已启动的使能信号,启动电路。此时,第二电路21-4可以通过数据路径接收传递给自己的数据。由此,四个第二电路已经依次全部启动。
关闭过程与前面类似,此处不再一一描述。
可选地或附加的,在一些实施例中,可以对集成计算装置中包括的多个第二电路进行分组,每个第二电路组中包括至少一个第二电路。在这些实施例中,这多个第二电路按顺序依次启动和/或依次关闭可以包括以下至少一种情况:在单个第二电路组内,各个第二电路依次启动和/或依次关闭;和/或在多个第二电路组之间,各个第二电路组依次启动和/或依次关闭。
下面结合多个第二电路之间的具体拓扑连接来描述第二电路的分组示例。
图6示出了根据本披露实施例的第二电路的示例性拓扑结构。如图6所示,多个第二电路61呈阵列分布,包括M行N列个第二电路。在每行电路中,第二电路顺次连接,在每列电路中,第二电路顺次连接,也即每个第二电路与相邻的其他第二电路连接。第一电路60连接该多个第二电路中的K个第二电路,这K个第二电路分别是:第一行的N个第二电路,第M行的N个第二电路以及第一列的M个第二电路。需要说明的是,与第一电路连接的这K个第二电路可以直接从第一电路接收数据和/或控制信号。
在这种阵列式分布中,第二电路可以依据行、列连接关系来划分组别。例如,可以将同一行的第二电路划分为一个第二电路组,也可以将同一列的第二电路划分为一个第二电路组。
在一些实施例中,在每个第二电路组内,各个第二电路可以依照连接关系依次启动和/或关闭,由此避免同时启动而导致大电流。此时,各个第二电路组可以同时启动也可以依次启动。由于通过组别划分,减少了同时启动的电路数量,因此即使各组之间同时启动,相比于全部同时启动,也能极大地降低瞬时电流。取决于第一电路与第二电路之间的连接关系,各个电路组内的首个启动/关闭第二电路可以不同。相应地,电路组内的启动/关闭的顺序也可以存在各种形式,例如可以从首个、末尾端、或中间的第二电路对称地向两边传递控制信息,也可以从任一位置向两边传递控制信息,本披露实施例在此方面没有限制。例如,在图6所示的示例中,当按照列进行分组时,每列电路的首个启动/关闭的第二电路可以是最上面的第二电路,也可以是最下面的第二电路。当按照行进行分组时,每行电路的首个启动的第二电路是最左边的第二电路。
可选地或附加地,在多个第二电路组之间,各个第二电路组可以依次启动和/或依次关闭。例如,可以依次启动/关闭M个电路组(按行);或者依次启动/关闭N个电路组(按列)。同样地,各个电路组内可以同时启动也可以依次启动。
图7示出了根据本披露实施例的第二电路的另一种示例性拓扑结构。如图7所示,第一电路70与多个第二电路71之间可以通过树形互连72来连接。树形互连72可以包括一个根节点、多个子树节点和多个叶节点。根节点连接到第一电路70,多个叶节点分别连接到多个第二电路71中的一个第二电路。基于这种树形互连结构,第二电路组可以包括归属于同一子树节点的叶节点所连接的第二电路。
在这种树形互连结构中,第二电路可以依据所归属于的子树节点来划分。例如,可以将归属于同一子树节点的叶节点所连接的第二电路划分为一个第二电路组。取决于子树节点所处的层级,可以有多种不同的划分方式。
图7示出了二叉树结构的树形互连,本领域技术人员可以理解,还可以是三叉树、四叉树等其他数目的树形互连。
对于图7的示例,在启动过程中,属于同一最高层的子树节点的两两电路可以同时开启。例如,可以根据使能信号或者数据状态来控制每两个第二电路的开启。同样地,在关闭过程中,属于同一最高层的子树节点的两两电路也可以同时关闭。例如,可以根据使能信号的控制,在第一周期,令最高层的第一子树节点的两个电路向前传递运算结果并关闭;在第二周期,令最高层的第二子树节点的两个电路向前传递运算结果并关闭。以此类推。
虽然图6和图7示出了几种具体的拓扑连接结构,并且基于该连接结构给出了几种按顺序启动/关闭的示例,但是本领域技术人员可以理解,这些连接结构可以发生变化,并且启动/关闭的顺序也可以发生变化,只要减少同时启动/关闭的电路数量,就可以实现本披露实施例的目的。
图8示出了根据本披露实施例的用于集成计算装置的方法800的示例性流程图。如前所述,该方法可以用于控制集成计算装置中的多个第二电路按顺序依次启动和/或关闭,由此避免可能产生的瞬时大电流。
如图8所示,在步骤S810中,第一电路按照预定规则向多个第二电路中的全部或部分发送控制信息,以指示这些第二电路按顺序依次启动和/或依次关闭。
接着,在步骤S820中,第二电路响应于接收到上述控制信息,按顺序依次启动和/或依次关闭第二电路。
如前面所提到的,控制信息可以经由各电路之间传输的数据的数据状态来隐式指示。备选地,控制信息也可以直接经由专门的使能信号来显式指示。
当按照隐式指示方式时,可以由第一电路为所有第二电路设置数据状态,全局控制第二电路的启动/关闭顺序;也可以由第一电路仅控制部分第二电路,局部控制第二电路的启动/关闭顺序,例如在第二电路分组的情况下,仅控制每组中的一个第二电路,组内的其他第二电路可以由这一第二电路来传递控制。
在一些实施例中,当第一电路为要启动和/或关闭的首个第二电路设置相应的数据状态时,在启动过程中,第二电路可以响应于接收的数据状态指示启动,启动当前第二电路;然后为后一第二电路设置相应的数据状态,并将该数据状态向后传递给后一第二电路。类似地,在关闭过程中,第二电路响应于接收到的数据状态指示关闭,执行相应的数据处理,为前一第二电路设置相应的数据状态;将该数据状态向前传递给前一第二电路之后关闭当前第二电路。
同样地,当使用使能信号、以显式方式指示时,可以由第一电路为所有第二电路设置使能信号,全局控制第二电路的启动/关闭顺序;也可以由第一电路仅控制部分第二电路,局部控制第二电路的启动/关闭顺序,例如在第二电路分组的情况下,仅控制每组中的一个第二电路,组内的其他第二电路可以由这一第二电路来传递控制。
在采用局部使能的一些实施例中,在启动过程中,第二电路可以响应于接收的使能信号指示启动并且接收到前一第二电路的启动确认信息,启动当前第二电路;生成当前第二电路的启动确认信息;以及将启动确认信息向后传递给后一第二电路。类似地,在关闭过程中,第二电路可以响应于接收的使能信号指示关闭并且接收到后一第二电路的关闭确认信息,执行相应的数据处理;生成当前第二电路的关闭确认信息;将关闭确认信息向前传递给前一第二电路;以及关闭当前第二电路。在一些实施例中,关闭确认信息可以随运算结果信息一起发送。
上面已经参考流程图描述了本披露实施例的用于集成计算装置的方法。应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。相反,流程图中描绘的步骤可以改变执行顺序。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域技术人员可以理解,前面结合装置框图描述的各种特征和细节可以同等地适用于图8的方法,为了简洁起见,在此不再重复。
本披露还提供了一种机器学习运算装置,其包括一个或多个前面描述的集成计算装置,用于从其他处理装置中获取待运算数据和控制信息,执行指定的机器学习运算,执行结果通过I/O接口传递给外围设备。外围设备譬如摄像头,显示器,鼠标,键盘,网卡,wifi接口,服务器。当包含一个以上集成计算装置时,计算装置间可以通过特定的结构进行链接并传输数据,譬如,通过PCIE总线进行互联并传输数据,以支持更大规模的机器学习的运算。此时,可以共享同一控制系统,也可以有各自独立的控制系统;可以共享内存,也可以每个加速器有各自的内存。此外,其互联方式可以是任意互联拓扑。该机器学习运算装置具有较高的兼容性,可通过PCIE接口与各种类型的服务器相连接。
图9是示出根据本披露实施例的一种组合处理装置900的结构图。如图9中所示,该组合处理装置900包括计算处理装置902、接口装置904、其他处理装置906和存储装置908。根据不同的应用场景,计算处理装置中可以包括一个或多个计算装置910,该计算装置可以配置成图1所示的集成计算装置,用于在其上实施本文结合附图所描述的操作。
在不同的实施例中,本披露的计算处理装置可以配置成执行用户指定的操作。在示例性的应用中,该计算处理装置可以实现为多核人工智能处理器。类似地,包括在计算处理装置内的一个或多个计算装置可以实现为人工智能处理器核或者人工智能处理器核的部分硬件结构。当多个计算装置实现为人工智能处理器核或人工智能处理器核的部分硬件结构时,就本披露的计算处理装置而言,其可以视为具有同构多核结构。
在示例性的操作中,本披露的计算处理装置可以通过接口装置与其他处理装置进行交互,以共同完成用户指定的操作。根据实现方式的不同,本披露的其他处理装置可以包括中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics ProcessingUnit,GPU)、人工智能处理器等通用和/或专用处理器中的一种或多种类型的处理器。这些处理器可以包括但不限于数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,并且其数目可以根据实际需要来确定。如前所述,仅就本披露的计算处理装置而言,其可以视为具有同构多核结构。然而,当将计算处理装置和其他处理装置共同考虑时,二者可以视为形成异构多核结构。
在一个或多个实施例中,该其他处理装置可以作为本披露的计算处理装置(其可以具体化为人工智能例如神经网络运算的相关运算装置)与外部数据和控制的接口,执行包括但不限于数据搬运、对计算装置的开启和/或停止等基本控制。在另外的实施例中,其他处理装置也可以和该计算处理装置协作以共同完成运算任务。
在一个或多个实施例中,该接口装置可以用于在计算处理装置与其他处理装置间传输数据和控制指令。例如,该计算处理装置可以经由所述接口装置从其他处理装置中获取输入数据,写入该计算处理装置片上的存储装置(或称存储器)。进一步,该计算处理装置可以经由所述接口装置从其他处理装置中获取控制指令,写入计算处理装置片上的控制缓存中。替代地或可选地,接口装置也可以读取计算处理装置的存储装置中的数据并传输给其他处理装置。
附加地或可选地,本披露的组合处理装置还可以包括存储装置。如图中所示,该存储装置分别与所述计算处理装置和所述其他处理装置连接。在一个或多个实施例中,存储装置可以用于保存所述计算处理装置和/或所述其他处理装置的数据。例如,该数据可以是在计算处理装置或其他处理装置的内部或片上存储装置中无法全部保存的数据。
在一些实施例里,本披露还公开了一种芯片(例如图10中示出的芯片1002)。在一种实现中,该芯片是一种系统级芯片(System on Chip,SoC),并且集成有一个或多个如图9中所示的组合处理装置。该芯片可以通过对外接口装置(如图10中示出的对外接口装置1006)与其他相关部件相连接。该相关部件可以例如是摄像头、显示器、鼠标、键盘、网卡或wifi接口。在一些应用场景中,该芯片上可以集成有其他处理单元(例如视频编解码器)和/或接口模块(例如DRAM接口)等。在一些实施例中,本披露还公开了一种芯片封装结构,其包括了上述芯片。在一些实施例里,本披露还公开了一种板卡,其包括上述的芯片封装结构。下面将结合图10对该板卡进行详细地描述。
图10是示出根据本披露实施例的一种板卡1000的结构示意图。如图10中所示,该板卡包括用于存储数据的存储器件1004,其包括一个或多个存储单元1010。该存储器件可以通过例如总线等方式与控制器件1008和上文所述的芯片1002进行连接和数据传输。进一步,该板卡还包括对外接口装置1006,其配置用于芯片(或芯片封装结构中的芯片)与外部设备1012(例如服务器或计算机等)之间的数据中继或转接功能。例如,待处理的数据可以由外部设备通过对外接口装置传递至芯片。又例如,所述芯片的计算结果可以经由所述对外接口装置传送回外部设备。根据不同的应用场景,所述对外接口装置可以具有不同的接口形式,例如其可以采用标准PCIE接口等。
在一个或多个实施例中,本披露板卡中的控制器件可以配置用于对所述芯片的状态进行调控。为此,在一个应用场景中,该控制器件可以包括单片机(Micro ControllerUnit,MCU),以用于对所述芯片的工作状态进行调控。
根据上述结合图9和图10的描述,本领域技术人员可以理解本披露也公开了一种电子设备或装置,其可以包括一个或多个上述板卡、一个或多个上述芯片和/或一个或多个上述组合处理装置。
根据不同的应用场景,本披露的电子设备或装置可以包括服务器、云端服务器、服务器集群、数据处理装置、机器人、电脑、打印机、扫描仪、平板电脑、智能终端、PC设备、物联网终端、移动终端、手机、行车记录仪、导航仪、传感器、摄像头、相机、摄像机、投影仪、手表、耳机、移动存储、可穿戴设备、视觉终端、自动驾驶终端、交通工具、家用电器、和/或医疗设备。所述交通工具包括飞机、轮船和/或车辆;所述家用电器包括电视、空调、微波炉、冰箱、电饭煲、加湿器、洗衣机、电灯、燃气灶、油烟机;所述医疗设备包括核磁共振仪、B超仪和/或心电图仪。本披露的电子设备或装置还可以被应用于互联网、物联网、数据中心、能源、交通、公共管理、制造、教育、电网、电信、金融、零售、工地、医疗等领域。进一步,本披露的电子设备或装置还可以用于云端、边缘端、终端等与人工智能、大数据和/或云计算相关的应用场景中。在一个或多个实施例中,根据本披露方案的算力高的电子设备或装置可以应用于云端设备(例如云端服务器),而功耗小的电子设备或装置可以应用于终端设备和/或边缘端设备(例如智能手机或摄像头)。在一个或多个实施例中,云端设备的硬件信息和终端设备和/或边缘端设备的硬件信息相互兼容,从而可以根据终端设备和/或边缘端设备的硬件信息,从云端设备的硬件资源中匹配出合适的硬件资源来模拟终端设备和/或边缘端设备的硬件资源,以便完成端云一体或云边端一体的统一管理、调度和协同工作。
需要说明的是,为了简明的目的,本披露将一些方法及其实施例表述为一系列的动作及其组合,但是本领域技术人员可以理解本披露的方案并不受所描述的动作的顺序限制。因此,依据本披露的公开或教导,本领域技术人员可以理解其中的某些步骤可以采用其他顺序来执行或者同时执行。进一步,本领域技术人员可以理解本披露所描述的实施例可以视为可选实施例,即其中所涉及的动作或模块对于本披露某个或某些方案的实现并不一定是必需的。另外,根据方案的不同,本披露对一些实施例的描述也各有侧重。鉴于此,本领域技术人员可以理解本披露某个实施例中没有详述的部分,也可以参见其他实施例的相关描述。
在具体实现方面,基于本披露的公开和教导,本领域技术人员可以理解本披露所公开的若干实施例也可以通过本文未公开的其他方式来实现。例如,就前文所述的电子设备或装置实施例中的各个单元来说,本文在考虑了逻辑功能的基础上对其进行划分,而实际实现时也可以有另外的划分方式。又例如,可以将多个单元或组件结合或者集成到另一个系统,或者对单元或组件中的一些特征或功能进行选择性地禁用。就不同单元或组件之间的连接关系而言,前文结合附图所讨论的连接可以是单元或组件之间的直接或间接耦合。在一些场景中,前述的直接或间接耦合涉及利用接口的通信连接,其中通信接口可以支持电性、光学、声学、磁性或其它形式的信号传输。
在本披露中,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元示出的部件可以是或者也可以不是物理单元。前述部件或单元可以位于同一位置或者分布到多个网络单元上。另外,根据实际的需要,可以选择其中的部分或者全部单元来实现本披露实施例所述方案的目的。另外,在一些场景中,本披露实施例中的多个单元可以集成于一个单元中或者各个单元物理上单独存在。
在一些实现场景中,上述集成的单元可以采用软件程序模块的形式来实现。如果以软件程序模块的形式实现并作为独立的产品销售或使用时,所述集成的单元可以存储在计算机可读取存储器中。基于此,当本披露的方案以软件产品(例如计算机可读存储介质)的形式体现时,该软件产品可以存储在存储器中,其可以包括若干指令用以使得计算机设备(例如个人计算机、服务器或者网络设备等)执行本披露实施例所述方法的部分或全部步骤。前述的存储器可以包括但不限于U盘、闪存盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
在另外一些实现场景中,上述集成的单元也可以采用硬件的形式实现,即为具体的硬件电路,其可以包括数字电路和/或模拟电路等。电路的硬件结构的物理实现可以包括但不限于物理器件,而物理器件可以包括但不限于晶体管或忆阻器等器件。鉴于此,本文所述的各类装置(例如计算装置或其他处理装置)可以通过适当的硬件处理器来实现,例如CPU、GPU、FPGA、DSP和ASIC等。进一步,前述的所述存储单元或存储装置可以是任意适当的存储介质(包括磁存储介质或磁光存储介质等),其例如可以是可变电阻式存储器(Resistive Random Access Memory,RRAM)、动态随机存取存储器(Dynamic RandomAccess 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.根据条款2所述的集成计算装置,其中,
所述第一电路进一步配置成:为要启动和/或关闭的第二电路设置相应的数据状态;并且
所述第二电路进一步配置成:响应于接收到的数据状态,相应地执行启动和/或关闭。
条款4.根据条款2所述的集成计算装置,其中,
所述第一电路进一步配置成:为要启动和/或关闭的首个第二电路设置相应的数据状态;并且
所述第二电路进一步配置成:
响应于接收到的数据状态指示启动,启动当前第二电路;
为后一第二电路设置相应的数据状态;以及
将所述数据状态向后传递给所述后一第二电路;和/或
所述第二电路进一步配置成:
响应于接收到的数据状态指示关闭,执行相应的数据处理;
为前一第二电路设置相应的数据状态;
将所述数据状态向前传递给所述前一第二电路;以及
关闭当前第二电路。
条款5.根据条款2-4任一所述的集成计算装置,其中,在启动所述集成计算装置时,所述传输的数据对于各个第二电路是相同的或不同的。
条款6.根据条款1所述的集成计算装置,其中,所述控制信息经由使能信号来指示。
条款7.根据条款6所述的集成计算装置,其中,
所述第一电路进一步配置成:为要启动和/或关闭的第二电路设置相应的使能信号;并且
所述第二电路进一步配置成:响应于接收到的使能信号,相应地执行启动和/或关闭。
条款8.根据条款6所述的集成计算装置,其中,
所述第一电路进一步配置成:设置用于启动和/或关闭第二电路的使能信号;并且
所述第二电路进一步配置成:
响应于接收的使能信号指示启动并且接收到前一第二电路的启动确认信息,启动当前第二电路;
生成当前第二电路的启动确认信息;以及
将所述启动确认信息向后传递给后一第二电路;和/或
所述第二电路进一步配置成:
响应于接收的使能信号指示关闭并且接收到后一第二电路的关闭确认信息,执行相应的数据处理;
生成当前第二电路的关闭确认信息;
将所述关闭确认信息向前传递给前一第二电路;以及
关闭当前第二电路。
条款9.根据条款8所述的集成计算装置,其中所述关闭确认信息随运算结果信息一起发送。
条款10.根据条款9所述的集成计算装置,其中所述运算结果信息包括以下至少一项:
当前第二电路的运算结果;
从后一第二电路接收的运算结果;以及
当前第二电路的运算结果与后一第二电路的运算结果的融合结果。
条款11.根据条款1-10任一所述的集成计算装置,其中所述多个第二电路分为若干个第二电路组,每个第二电路组中包括至少一个第二电路,并且所述多个第二电路按顺序依次启动和/或依次关闭包括:
在单个第二电路组内,各个第二电路依次启动和/或依次关闭;和/或
在多个第二电路组之间,各个第二电路组依次启动和/或依次关闭。
条款12.根据条款11所述的集成计算装置,其中,所述多个第二电路呈阵列分布,每个第二电路组包括阵列中同一行或同一列的第二电路,所述第一电路与每个第二电路组中的一个第二电路串行连接。
条款13.根据条款11所述的集成计算装置,其中,所述多个第二电路与所述第一电路之间通过树形互连连接,所述树形互连包括一个根节点、多个子树节点和多个叶节点,所述根节点连接所述第一电路,所述多个叶节点分别连接所述多个第二电路中的一个第二电路;所述第二电路组包括归属于同一子树节点的叶节点所连接的第二电路。
条款14、一种机器学习运算装置,其中所述机器学习运算装置包括一个或多个如条款1-13任一所述的集成计算装置。
条款15、一种神经网络芯片,其特征在于,所述神经网络芯片包括如条款14所述的机器学习运算装置。
条款16、一种板卡,其特征在于,所述板卡包括如条款15所述的神经网络芯片。
条款17、一种电子设备,其特征在于,所述电子设备包括如所述条款16所述的板卡。
条款18、一种用于集成计算装置的方法,所述集成计算装置包括第一电路和多个第二电路,其中,当启动和/或关闭所述集成计算装置时,
所述第一电路按照预定规则向所述多个第二电路中的全部或部分发送控制信息,以指示所述第二电路按顺序依次启动和/或依次关闭;以及
所述第二电路响应于接收到所述控制信息,按所述顺序依次启动和/或依次关闭所述第二电路。
条款19.根据条款18所述的方法,其中,所述控制信息经由各电路之间传输的数据的数据状态来指示。
条款20.根据条款19所述的方法,其中,所述方法还包括:
所述第一电路为要启动和/或关闭的第二电路设置相应的数据状态。
条款21.根据条款19所述的方法,其中,所述方法还包括:
所述第一电路为要启动和/或关闭的首个第二电路设置相应的数据状态;并且
所述第二电路响应于接收到的数据状态指示启动,启动当前第二电路;为后一第二电路设置相应的数据状态;以及将所述数据状态向后传递给所述后一第二电路;和/或
所述第二电路响应于接收到的数据状态指示关闭,执行相应的数据处理;为前一第二电路设置相应的数据状态;将所述数据状态向前传递给所述前一第二电路;以及关闭当前第二电路。
条款22.根据条款18所述的方法,其中,所述控制信息经由使能信号来指示。
条款23.根据条款22所述的方法,其中,所述方法还包括:
所述第一电路为要启动和/或关闭的第二电路设置相应的使能信号;并且
所述第二电路响应于接收到的使能信号,相应地执行启动和/或关闭。
条款24.根据条款22所述的方法,其中,所述方法还包括:
所述第一电路设置用于启动和/或关闭第二电路的使能信号;并且
所述第二电路响应于接收的使能信号指示启动并且接收到前一第二电路的启动确认信息,启动当前第二电路;生成当前第二电路的启动确认信息;以及将所述启动确认信息向后传递给后一第二电路;和/或
所述第二电路响应于接收的使能信号指示关闭并且接收到后一第二电路的关闭确认信息,执行相应的数据处理;生成当前第二电路的关闭确认信息;将所述关闭确认信息向前传递给前一第二电路;以及关闭当前第二电路。
条款25.根据条款24所述的方法,其中所述关闭确认信息随运算结果信息一起发送。
条款26.根据条款18-25任一所述的方法,其中所述多个第二电路分为若干个第二电路组,每个第二电路组中包括至少一个第二电路,并且所述多个第二电路按顺序依次启动和/或依次关闭包括:
在单个第二电路组内,各个第二电路依次启动和/或依次关闭;和/或
在多个第二电路组之间,各个第二电路组依次启动和/或依次关闭。
Claims (26)
1.一种集成计算装置,包括第一电路和多个第二电路,其中,当启动和/或关闭所述集成计算装置时,
所述第一电路配置成:按照预定规则向所述多个第二电路中的全部或部分发送控制信息,以指示所述第二电路按顺序依次启动和/或依次关闭;并且
所述第二电路配置成:响应于接收到所述控制信息,按所述顺序依次启动和/或依次关闭所述第二电路。
2.根据权利要求1所述的集成计算装置,其中,所述控制信息经由各电路之间传输的数据的数据状态来指示。
3.根据权利要求2所述的集成计算装置,其中,
所述第一电路进一步配置成:为要启动和/或关闭的第二电路设置相应的数据状态;并且
所述第二电路进一步配置成:响应于接收到的数据状态,相应地执行启动和/或关闭。
4.根据权利要求2所述的集成计算装置,其中,
所述第一电路进一步配置成:为要启动和/或关闭的首个第二电路设置相应的数据状态;并且
所述第二电路进一步配置成:
响应于接收到的数据状态指示启动,启动当前第二电路;
为后一第二电路设置相应的数据状态;以及
将所述数据状态向后传递给所述后一第二电路;和/或
所述第二电路进一步配置成:
响应于接收到的数据状态指示关闭,执行相应的数据处理;
为前一第二电路设置相应的数据状态;
将所述数据状态向前传递给所述前一第二电路;以及
关闭当前第二电路。
5.根据权利要求2-4任一所述的集成计算装置,其中,在启动所述集成计算装置时,所述传输的数据对于各个第二电路是相同的或不同的。
6.根据权利要求1所述的集成计算装置,其中,所述控制信息经由使能信号来指示。
7.根据权利要求6所述的集成计算装置,其中,
所述第一电路进一步配置成:为要启动和/或关闭的第二电路设置相应的使能信号;并且
所述第二电路进一步配置成:响应于接收到的使能信号,相应地执行启动和/或关闭。
8.根据权利要求6所述的集成计算装置,其中,
所述第一电路进一步配置成:设置用于启动和/或关闭第二电路的使能信号;并且
所述第二电路进一步配置成:
响应于接收的使能信号指示启动并且接收到前一第二电路的启动确认信息,启动当前第二电路;
生成当前第二电路的启动确认信息;以及
将所述启动确认信息向后传递给后一第二电路;和/或
所述第二电路进一步配置成:
响应于接收的使能信号指示关闭并且接收到后一第二电路的关闭确认信息,执行相应的数据处理;
生成当前第二电路的关闭确认信息;
将所述关闭确认信息向前传递给前一第二电路;以及
关闭当前第二电路。
9.根据权利要求8所述的集成计算装置,其中所述关闭确认信息随运算结果信息一起发送。
10.根据权利要求9所述的集成计算装置,其中所述运算结果信息包括以下至少一项:
当前第二电路的运算结果;
从后一第二电路接收的运算结果;以及
当前第二电路的运算结果与后一第二电路的运算结果的融合结果。
11.根据权利要求1-10任一所述的集成计算装置,其中所述多个第二电路分为若干个第二电路组,每个第二电路组中包括至少一个第二电路,并且所述多个第二电路按顺序依次启动和/或依次关闭包括:
在单个第二电路组内,各个第二电路依次启动和/或依次关闭;和/或
在多个第二电路组之间,各个第二电路组依次启动和/或依次关闭。
12.根据权利要求11所述的集成计算装置,其中,所述多个第二电路呈阵列分布,每个第二电路组包括阵列中同一行或同一列的第二电路,所述第一电路与每个第二电路组中的一个第二电路串行连接。
13.根据权利要求11所述的集成计算装置,其中,所述多个第二电路与所述第一电路之间通过树形互连连接,所述树形互连包括一个根节点、多个子树节点和多个叶节点,所述根节点连接所述第一电路,所述多个叶节点分别连接所述多个第二电路中的一个第二电路;所述第二电路组包括归属于同一子树节点的叶节点所连接的第二电路。
14.一种机器学习运算装置,其中所述机器学习运算装置包括一个或多个如权利要求1-13任一所述的集成计算装置。
15.一种神经网络芯片,其特征在于,所述神经网络芯片包括如权利要求14所述的机器学习运算装置。
16.一种板卡,其特征在于,所述板卡包括如权利要求15所述的神经网络芯片。
17.一种电子设备,其特征在于,所述电子设备包括如所述权利要求16所述的板卡。
18.一种用于集成计算装置的方法,所述集成计算装置包括第一电路和多个第二电路,其中,当启动和/或关闭所述集成计算装置时,
所述第一电路按照预定规则向所述多个第二电路中的全部或部分发送控制信息,以指示所述第二电路按顺序依次启动和/或依次关闭;以及
所述第二电路响应于接收到所述控制信息,按所述顺序依次启动和/或依次关闭所述第二电路。
19.根据权利要求18所述的方法,其中,所述控制信息经由各电路之间传输的数据的数据状态来指示。
20.根据权利要求19所述的方法,其中,所述方法还包括:
所述第一电路为要启动和/或关闭的第二电路设置相应的数据状态。
21.根据权利要求19所述的方法,其中,所述方法还包括:
所述第一电路为要启动和/或关闭的首个第二电路设置相应的数据状态;并且
所述第二电路响应于接收到的数据状态指示启动,启动当前第二电路;为后一第二电路设置相应的数据状态;以及将所述数据状态向后传递给所述后一第二电路;和/或
所述第二电路响应于接收到的数据状态指示关闭,执行相应的数据处理;为前一第二电路设置相应的数据状态;将所述数据状态向前传递给所述前一第二电路;以及关闭当前第二电路。
22.根据权利要求18所述的方法,其中,所述控制信息经由使能信号来指示。
23.根据权利要求22所述的方法,其中,所述方法还包括:
所述第一电路为要启动和/或关闭的第二电路设置相应的使能信号;并且
所述第二电路响应于接收到的使能信号,相应地执行启动和/或关闭。
24.根据权利要求22所述的方法,其中,所述方法还包括:
所述第一电路设置用于启动和/或关闭第二电路的使能信号;并且
所述第二电路响应于接收的使能信号指示启动并且接收到前一第二电路的启动确认信息,启动当前第二电路;生成当前第二电路的启动确认信息;以及将所述启动确认信息向后传递给后一第二电路;和/或
所述第二电路响应于接收的使能信号指示关闭并且接收到后一第二电路的关闭确认信息,执行相应的数据处理;生成当前第二电路的关闭确认信息;将所述关闭确认信息向前传递给前一第二电路;以及关闭当前第二电路。
25.根据权利要求24所述的方法,其中所述关闭确认信息随运算结果信息一起发送。
26.根据权利要求18-25任一所述的方法,其中所述多个第二电路分为若干个第二电路组,每个第二电路组中包括至少一个第二电路,并且所述多个第二电路按顺序依次启动和/或依次关闭包括:
在单个第二电路组内,各个第二电路依次启动和/或依次关闭;和/或
在多个第二电路组之间,各个第二电路组依次启动和/或依次关闭。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011197744.9A CN114443137A (zh) | 2020-10-30 | 2020-10-30 | 一种集成计算装置、芯片、板卡、设备和计算方法 |
PCT/CN2021/119429 WO2022089092A1 (zh) | 2020-10-30 | 2021-09-18 | 一种集成计算装置、芯片、板卡、设备和计算方法 |
US18/003,820 US20230259737A1 (en) | 2020-10-30 | 2021-09-18 | Integrated computing apparatus, chip, board card, device and computing method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011197744.9A CN114443137A (zh) | 2020-10-30 | 2020-10-30 | 一种集成计算装置、芯片、板卡、设备和计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114443137A true CN114443137A (zh) | 2022-05-06 |
Family
ID=81357731
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011197744.9A Pending CN114443137A (zh) | 2020-10-30 | 2020-10-30 | 一种集成计算装置、芯片、板卡、设备和计算方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20230259737A1 (zh) |
CN (1) | CN114443137A (zh) |
WO (1) | WO2022089092A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115061789A (zh) * | 2022-06-09 | 2022-09-16 | 海光信息技术股份有限公司 | 瞬态电流控制方法及相关装置 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101042606B (zh) * | 2006-03-20 | 2012-04-25 | 佛山市顺德区顺达电脑厂有限公司 | 电源顺序控制电路 |
GB2440356A (en) * | 2006-07-25 | 2008-01-30 | Wolfson Microelectronics Plc | Power Management Circuit |
US8542054B2 (en) * | 2011-10-31 | 2013-09-24 | Apple Inc. | Power switch acceleration scheme for fast wakeup |
US9164560B2 (en) * | 2012-05-01 | 2015-10-20 | Maxim Integrated Products, Inc. | Daisy chain configuration for power converters |
CN112558742A (zh) * | 2020-12-15 | 2021-03-26 | 深兰人工智能(深圳)有限公司 | 上电控制方法、可编程逻辑器件及上电控制系统 |
-
2020
- 2020-10-30 CN CN202011197744.9A patent/CN114443137A/zh active Pending
-
2021
- 2021-09-18 WO PCT/CN2021/119429 patent/WO2022089092A1/zh active Application Filing
- 2021-09-18 US US18/003,820 patent/US20230259737A1/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115061789A (zh) * | 2022-06-09 | 2022-09-16 | 海光信息技术股份有限公司 | 瞬态电流控制方法及相关装置 |
CN115061789B (zh) * | 2022-06-09 | 2024-02-09 | 海光信息技术股份有限公司 | 瞬态电流控制方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
US20230259737A1 (en) | 2023-08-17 |
WO2022089092A1 (zh) | 2022-05-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11797467B2 (en) | Data processing device with transmission circuit | |
CN110096310B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN110119807B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111353124A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN114443137A (zh) | 一种集成计算装置、芯片、板卡、设备和计算方法 | |
CN111061507A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111047005A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111340202B (zh) | 运算方法、装置及相关产品 | |
CN111783954B (zh) | 一种用于确定神经网络的性能的方法、电子设备和存储介质 | |
CN114281558A (zh) | 多核处理器、用于多核处理器的方法及相应产品 | |
CN111275197B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111026440B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111047030A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111353125B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN111338694B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN113033791B (zh) | 用于保序的计算装置、集成电路装置、板卡及保序方法 | |
CN111290789B (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN112396186B (zh) | 执行方法、装置及相关产品 | |
CN111738429B (zh) | 一种计算装置及相关产品 | |
CN115495157A (zh) | 分组运算装置、方法、集成电路芯片、计算装置和板卡 | |
CN111062483A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN113791996A (zh) | 集成电路装置、电子设备、板卡和计算方法 | |
CN116166468A (zh) | 用于处理异构系统中ecc错误的方法、异构系统及其相关产品 | |
CN111124497A (zh) | 运算方法、装置、计算机设备和存储介质 | |
CN113742266A (zh) | 集成电路装置、电子设备、板卡和计算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |