CN114943334A - 芯片、电子设备及数据处理方法、存储介质 - Google Patents
芯片、电子设备及数据处理方法、存储介质 Download PDFInfo
- Publication number
- CN114943334A CN114943334A CN202210343413.4A CN202210343413A CN114943334A CN 114943334 A CN114943334 A CN 114943334A CN 202210343413 A CN202210343413 A CN 202210343413A CN 114943334 A CN114943334 A CN 114943334A
- Authority
- CN
- China
- Prior art keywords
- core
- training
- neural network
- data
- chip
- 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/08—Learning methods
-
- 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
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
Abstract
本公开实施例提供一种芯片、电子设备及数据处理方法、存储介质,所述芯片包括:IO芯粒、训练芯粒和推理芯粒;所述IO芯粒用于将样本数据和初始神经网络的网络参数输出至训练芯粒;所述训练芯粒用于对所述样本数据和所述初始神经网络的网络参数进行第一运算,输出第一运算结果,所述第一运算结果用于对所述初始神经网络进行训练,得到目标神经网络;所述IO芯粒还用于将待处理数据与目标神经网络的网络参数输出至所述推理芯粒;所述推理芯粒用于对所述待处理数据和所述目标神经网络的网络参数进行第二运算,输出第二运算结果,所述第二运算结果用于确定所述目标神经网络对所述待处理数据的推理结果。
Description
技术领域
本公开涉及芯片技术领域,尤其涉及芯片、电子设备及数据处理方法、存储介质。
背景技术
由于训练任务与推理任务对芯片有着不同的需求,因此,往往分别设计训练芯片和推理芯片,以将训练任务与推理任务分开,训练芯片专门执行训练任务,推理芯片专门执行推理任务。在相关技术中,难以通过同一种芯片同时满足训练任务和推理任务的需求。
发明内容
第一方面,本公开实施例提供一种芯片,所述芯片包括:IO芯粒、训练芯粒和推理芯粒;所述IO芯粒用于获取样本数据和初始神经网络的网络参数,将所述样本数据和初始神经网络的网络参数输出至所述训练芯粒;所述训练芯粒用于对所述样本数据和所述初始神经网络的网络参数进行第一运算,输出第一运算结果,所述第一运算结果用于对所述初始神经网络进行训练,得到目标神经网络;所述IO芯粒还用于获取待处理数据,并将所述待处理数据与所述目标神经网络的网络参数输出至所述推理芯粒;所述推理芯粒用于对所述待处理数据和所述目标神经网络的网络参数进行第二运算,输出第二运算结果,所述第二运算结果用于确定所述目标神经网络对所述待处理数据的推理结果。
在一些实施例中,所述IO芯粒通过第一接口单元与所述训练芯粒相连接,并通过第二接口单元与所述推理芯粒相连接;所述IO芯粒还包括:片上网络,用于将所述样本数据和所述初始神经网络的网络参数路由到所述第一接口单元,并将所述待处理数据和所述目标神经网络的网络参数路由到所述第二接口单元。
在一些实施例中,所述IO芯粒还包括:第三接口单元,用于连接存储单元,以从所述存储单元获取所述样本数据、所述初始神经网络的网络参数、所述待处理数据和所述目标神经网络的网络参数。
在一些实施例中,所述芯片还包括处理器和存储器接口控制器;所述处理器用于向所述存储器接口控制器发送控制指令,以使所述存储器接口控制器响应于所述控制指令控制所述第一接口单元、第二接口单元和/或所述第三接口单元进行数据传输。
在一些实施例中,所述IO芯粒、训练芯粒的数量和/或所述推理芯粒的数量可配置。
在一些实施例中,所述训练芯粒包括第四接口单元和第一AI核,所述第四接口单元用于连接所述IO芯粒,以从所述IO芯粒获取所述样本数据和所述初始神经网络的网络参数;所述第一AI核用于进行所述第一运算。
在一些实施例中,所述推理芯粒包括第五接口单元和第二AI核,所述第五接口单元用于连接所述IO芯粒,以从所述IO芯粒获取所述待处理数据与所述目标神经网络的网络参数;所述第二AI核用于进行所述第二运算。
在一些实施例中,所述第一AI核的编程颗粒度小于所述第二AI核的编程颗粒度。
在一些实施例中,所述第一AI核的运算精度高于所述第二AI核的运算精度。
在一些实施例中,所述IO芯粒、训练芯粒和推理芯粒封装在同一个封装体内。
第二方面,本公开实施例提供一种电子设备,所述电子设备包括本公开任一实施例所述的芯片。
第三方面,本公开实施例提供一种数据处理方法,应用于本公开任一实施例所述的芯片,所述方法包括:通过所述IO芯粒获取样本数据和初始神经网络的网络参数,将所述样本数据和初始神经网络的网络参数输出至所述训练芯粒;通过所述训练芯粒对所述样本数据和所述初始神经网络的网络参数进行第一运算,输出第一运算结果,所述第一运算结果用于对所述初始神经网络进行训练,得到目标神经网络;通过所述IO芯粒获取待处理数据,并将所述待处理数据与所述目标神经网络的网络参数输出至所述推理芯粒;通过所述推理芯粒对所述待处理数据和所述目标神经网络的网络参数进行第二运算,输出第二运算结果,所述第二运算结果用于确定所述目标神经网络对所述待处理数据的推理结果。
第四方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机可读指令,所述指令被执行时实现本公开任一实施例所述的芯片中由IO芯粒、训练芯粒或推理芯粒执行的方法。
本公开实施例分别在一块芯片上同时采用训练芯粒和推理芯粒,从而能够通过同一块芯片执行训练任务和推理任务,实现“训推一体”。此外,由于训练任务和推理任务分别在不同的芯粒上执行,因此,可以有针对性地基于训练任务的需求设计训练芯粒,并有针对性地针对推理任务的需求设计推理芯粒,从而使训练任务和推理任务均达到较好的效果,同时满足了训练任务和推理任务的需求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1A是本公开实施例的芯片的示意图。
图1B是本公开另一实施例的芯片的示意图。
图2是本公开实施例的训练芯粒的示意图。
图3是本公开实施例的IO芯粒的示意图。
图4是本公开实施例的电子设备的示意图。
图5是本公开实施例的数据处理方法的流程图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合。
应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
为了使本技术领域的人员更好的理解本公开实施例中的技术方案,并使本公开实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本公开实施例中的技术方案作进一步详细的说明。
训练任务与推理任务对芯片一般有着不同的需求,主要体现在以下几个方面:
(1)训练任务和推理任务对于算子丰富度的需求不同。一般来说,相对于推理任务,训练任务往往需求更高的算子丰富度。
(2)训练任务和推理任务对于运算结果的精度需求不同。训练任务的目标是获取一个性能良好的神经网络,因此,一般对运算精度的需求更高,往往需要采用32位浮点数(FP32)、16位浮点数(FP16)、16位脑浮点数(BF16)等数据的高精度的运算单元;而推理任务对运算精度的需求相对较低,往往只需要采用16位整型数据(INT16)、8位整型数据(INT8)、4位整型数据(INT4)等数据的低精度的运算单元。
(3)训练任务和推理任务对于编程颗粒度的需求不同。训练任务一般对运算精度的需求更高,而推理任务往往要求较高的推理效率,因此,相比于推理任务,具有更细的编程颗粒度需求。
为了满足不同任务的不同需求,在相关技术中,往往分别设计训练芯片和推理芯片,以将训练任务与推理任务分开,训练芯片专门执行训练任务,推理芯片专门执行推理任务。在相关技术中,难以通过同一种芯片同时满足训练任务和推理任务的需求。例如,如果将芯片的编程颗粒度设置得较细,则能够获得较高的训练精度,从而满足训练任务的需求;但与此同时,可能导致推理效率较低,从而不满足推理任务的需求。这样的芯片在一些对实时性要求较高的场景(例如,自动驾驶场景)下,往往不适用。
基于此,本公开提供一种芯片,参见图1A、图1B、图2和图3,所述芯片包括:
IO芯粒101、训练芯粒102和推理芯粒103;
所述IO芯粒101用于获取样本数据和初始神经网络的网络参数,将所述样本数据和初始神经网络的网络参数输出至所述训练芯粒102;
所述训练芯粒102用于对所述样本数据和所述初始神经网络的网络参数进行第一运算,输出第一运算结果,所述第一运算结果用于对所述初始神经网络进行训练,得到目标神经网络;
所述IO芯粒101还用于获取待处理数据,并将所述待处理数据与所述目标神经网络的网络参数输出至所述推理芯粒103;
所述推理芯粒103用于对所述待处理数据和所述目标神经网络的网络参数进行第二运算,输出第二运算结果,所述第二运算结果用于确定所述目标神经网络对所述待处理数据的推理结果。
本公开实施例中的芯片可以是AI芯片或者其他类型的芯片,在芯片为AI芯片的情况下,所执行的训练任务和推理任务可以分别称为AI训练任务和AI推理任务,相应地,训练芯粒和推理芯粒分别称为AI训练芯粒和AI推理芯粒。下面以所述芯片是AI芯片为例,对本公开的方案进行说明。
本公开实施例分别在一块AI芯片上同时采用两种芯粒(die),即AI训练芯粒102和AI推理芯粒103,从而能够通过同一块芯片执行AI训练任务和AI推理任务,实现“训推一体”。此外,由于AI训练任务和AI推理任务分别在不同的芯粒上执行,因此,可以有针对性地基于AI训练任务的需求设计AI训练芯粒102,并有针对性地针对AI推理任务的需求设计AI推理芯粒103,从而使AI训练任务和AI推理任务均达到较好的效果,同时满足了AI训练任务和AI推理任务的需求。
在上述实施例中,IO芯粒101、AI训练芯粒102和AI推理芯粒103的数量均可以大于或等于1,各芯粒的数量均可配置。例如,可以根据所需的AI训练芯粒102和AI推理芯粒103的总数量以及单个IO芯粒101包括的接口单元的数量,来确定IO芯粒101的数量。在一个IO芯粒101包括的接口单元的数量足够满足各个AI训练芯粒102和AI推理芯粒103的需求的情况下,可以采用一个IO芯粒101,否则可以采用多个IO芯粒101。两个IO芯粒101之间可以通过die-2-die接口进行互连,这样,在一个IO芯粒101所提供的接口单元的数量不足时,通过多个IO芯粒101可以提供更多的接口单元,从而连接更多的AI训练芯粒102和/或AI推理芯粒103。图1B示出了IO芯粒101的数量等于2的情况,两个IO芯粒分别记为101a和101b,为了简洁,仅示出了IO芯粒101b所连接的AI训练芯粒102和AI推理芯粒103,本领域技术人员可以理解,IO芯粒101a也可以连接至少一个AI训练芯粒102和/或至少一个AI推理芯粒103。并且,具有互连关系的IO芯粒101的数量不限于2。虽然图中示出了IO芯粒101b所连接的AI训练芯粒102和AI推理芯粒103的数量均大于1的情况,但在实际应用中,任意一个IO芯粒101所连接的AI训练芯粒102和/或AI推理芯粒103的数量均可以等于1,且AI训练芯粒102与AI推理芯粒103的数量可以相同,也可以不同。
AI训练芯粒102的数量可以根据训练阶段的算力需求来设置,AI推理芯粒103的数量可以根据推理阶段的算力需求来设置。以AI训练芯粒102为例,假设训练过程需要并行地采用2N(N为正整数)个乘法运算单元,而单个AI训练芯粒102至多能够提供N个并行处理的乘法单元,则可以设置两个AI训练芯粒102。又例如,假设训练过程中需要采用乘法单元和加法单元,而单个AI训练芯粒102只能提供其中一种运算单元,则可以设置两个AI训练芯粒102。在不同的应用场景下,可以灵活地配置AI训练芯粒102和AI推理芯粒103的数量,以使AI芯片满足该应用场景下的算力需求。
下面通过一些实施例对各芯粒的功能和结构进行说明。其中,IO芯粒101用于实现数据输入和输出。所述数据可以包括但不限于图像数据、语音数据、文本数据等各种类型的数据。IO芯粒101所传输的数据的类型与神经网络执行的任务相关,例如,在神经网络执行图像识别任务的情况下,获取的数据为图像数据;在神经网络执行语音识别任务的情况下,获取的数据为语音数据。根据AI芯片的处理阶段,可以将数据分为样本数据和待处理数据。样本数据用于对性能较差的初始神经网络进行训练,以得到性能较好的目标神经网络。待处理数据是从AI芯片的实际应用场景中获取的,需要通过目标神经网络进行处理的数据。其中,神经网络的性能可以根据其执行的任务来衡量,例如,在执行图像识别任务(如从图像中识别指定对象)的情况下,可以采用识别准确度来衡量神经网络的性能。当然,衡量指标不限于此,例如,还可以根据神经网络执行任务的效率、神经网络的复杂度和/或神经网络的大小等来衡量神经网络的性能。
可以先通过AI芯片执行AI训练任务。训练所需的样本数据以及初始神经网络的网络参数(统称为训练阶段数据)可以存储在存储器中。IO芯粒101可以通过接口单元1011(例如,串行高速接口)与存储器连接,以从存储器中获取训练阶段数据,IO芯粒101与存储器之间的接口单元可以称为对外接口。对外接口的数量可以大于或等于1。在对外接口数量大于1的情况下,各个对外接口可以并行地从存储器获取数据,以提高数据传输效率。
IO芯粒101还可以通过接口单元与AI训练芯粒102相连接,所述接口单元可以是die-2-die接口、串行高速接口或其他类型的接口,IO芯粒101与AI训练芯粒102之间的接口单元可以称为芯粒间接口。IO芯粒101获取训练阶段数据之后,可以通过芯粒间接口将训练阶段数据输出至所述AI训练芯粒102。在AI训练芯粒102的数量大于1的情况下,IO芯粒101上可以包括多个芯粒间接口,每个芯粒间接口均可以连接一个AI训练芯粒102。
所述AI训练芯粒102获取训练阶段数据之后,可以进行第一运算,得到第一运算结果。所述第一运算包括但不限于加法运算、乘法运算、卷积乘运算、取反运算等算术运算以及与运算、或运算等逻辑运算中的至少一种。如图2所示,AI训练芯粒102中可以包括AI核1021,用于执行上述算术运算和/或逻辑运算。AI核(core)也称为AI引擎(engine),是AI芯片中针对人工智能算法进行训练/推理加速的核心组件。其中,AI核1021可以包括至少一个算术运算单元和/或至少一个逻辑运算单元,各个运算单元按照一定的方式连接,从而实现相应的运算处理。在AI训练芯粒102的数量大于1的情况下,不同的AI训练芯粒102中包括的运算单元的数量、类别和/或连接方式可以相同,也可以不同。可以根据神经网络的网络结构采用包括相应运算单元的一个或多个AI训练芯粒102。同一个AI训练芯粒102包括的运算单元可以串行或并行地进行运算,不同AI训练芯粒102之间的运算单元也可以串行或并行地进行运算。
在一些实施例中,AI训练芯粒102上也可以包括接口单元(例如,die-2-die接口)1022,该接口单元的类型与IO芯粒101包括的芯粒间接口的类型相匹配,以便获取IO芯粒101上的芯粒间接口输出的训练阶段数据。AI训练芯粒102在获取第一运算结果之后,可以通过芯粒间接口将第一运算结果输出给IO芯粒101。所述第一运算结果可以是神经网络的隐藏层的输出结果(称为中间结果),也可以是神经网络的输出层的输出结果(称为最终结果)。IO芯粒101可以将第一运算结果发送至其他处理单元(例如,主机)进行处理,或者发送至存储器进行存储。
在训练阶段完成之后,可以进入推理阶段。在推理阶段,IO芯粒101可以获取待处理数据和所述目标神经网络的网络参数(称为推理阶段数据)。推理阶段数据也可以存储在存储器中,并由IO芯粒101通过对外接口从存储器中获取。IO芯粒101上也可以包括接口单元,该接口单元与AI推理芯粒103上的芯粒间接口相匹配,以便将推理阶段数据传输至AI推理芯粒103。IO芯粒101与AI推理芯粒103之间的芯粒间接口的数量可以大于或等于1,每个芯粒间接口可以连接一个AI推理芯粒103。
AI推理芯粒103获取推理阶段数据之后,可以进行第二运算,得到第二运算结果。第二运算也可以包括各种算术运算单元和/或逻辑运算单元等。AI推理芯粒103中也可以包括AI核,用于执行所述第二运算。AI推理芯粒103与AI训练芯粒102的结构类似,但由于AI训练任务与AI推理任务的特点不同,AI训练芯粒102中包括的AI核(称为第一AI核)与AI推理芯粒103中包括的AI核(称为第二AI核)可能存在以下至少一种差异:
(1)所述第一AI核的编程颗粒度小于所述第二AI核的编程颗粒度。编程颗粒度可以理解为实现某种运算处理所需的指令的数量,例如,对于乘加运算处理,可以通过一条乘法指令和一条加法指令这两条指令来实现,也可以仅通过一条乘加指令来实现。实现同一种运算处理所需的指令的数量越多,编程颗粒度越细,运算灵活性越高,但运算效率越低;反之,实现同一种运算处理所需的指令的数量越少,编程颗粒度越粗,运算灵活性越低,但运算效率越高。
(2)所述第一AI核的运算精度高于所述第二AI核的运算精度。例如,第一AI核可以对32位浮点数进行运算,并输出同样为32位浮点数的第一运算结果;第二AI核可以对8位整型数据进行运算,并输出同样为8位整型数据的第二运算结果。当然,在实际应用中,第一AI核和第二AI核所处理的数据不限于此,并且,输入数据和运算结果的精度可以相同,也可以不同。
由于第一AI核和第二AI核具有以上差异,因此,AI训练芯粒102和AI推理芯粒103能够分别满足AI训练任务和AI推理任务的需求,从而使包括AI训练芯粒102和AI推理芯粒103的AI芯片能够同时满足AI训练任务和AI推理任务的需求。
在一些实施例中,由于IO芯粒101需要将不同阶段的数据分别发送给AI训练芯粒102和AI推理芯粒103,且AI训练芯粒102和/或AI推理芯粒103的数量常常大于1,因此,如图3所示,所述IO芯粒101还可以包括片上网络1012,用于将训练阶段数据路由到连接AI训练芯粒102之间的芯粒间接口(称为第一接口单元),并将推理阶段数据路由到连接AI推理芯粒103之间的芯粒间接口(称为第二接口单元)。以AI芯片包括4个AI训练芯粒102和3个AI推理芯粒103为例,IO芯粒101可以通过片上网络1012将训练阶段数据路由到4个AI训练芯粒102中的一个或多个,还可以通过片上网络1012将推理阶段数据路由到3个AI推理芯粒103中的一个或多个。片上网络1012可以采用预先配置的传输协议进行路由。除此之外,IO芯粒101还可以通过片上网络1012将AI训练芯粒102和AI推理芯粒103返回的数据路由到对应的对外接口(称为第三接口单元),以通过该对外接口将AI训练芯粒102和AI推理芯粒103返回的数据输出到存储器。
在一些实施例中,所述AI芯片还包括处理器1013和存储器接口控制器1014;所述处理器1013用于向所述存储器接口控制器1014发送控制指令,以使所述存储器接口控制器1014响应于所述控制指令控制所述第一接口单元、第二接口单元和/或所述第三接口单元进行数据传输。其中,处理器1013和存储器接口控制器1014可以包括在IO芯粒101中,也可以是AI芯片中除各个芯粒以外的部分。所述控制指令可以控制数据的读取时机、每次读取的数据量、读出位置、写入位置等中的至少一者。
下面通过一个实施例对AI芯片的总体工作流程进行说明。IO芯粒101从存储器中获取样本数据和初始神经网络的网络参数,将其中一块样本数据及其对应的网络参数发送给AI训练芯粒D1,并将另一块样本数据及其对应的网络参数发送给AI训练芯粒D2。AI训练芯粒D1和D2运算后分别得到中间结果,并将中间结果返回给IO芯粒,由IO芯粒将中间结果存储到存储器中。然后,IO芯粒从存储器中读取AI训练芯粒D1和D2分别返回的中间结果,将中间结果发送至AI训练芯粒D3进行处理,得到最终结果。IO芯粒将该最终结果发送给主机,主机根据最终结果调整初始神经网络的网络参数。例如,在初始神经网络执行目标检测任务的情况下,样本数据为样本图像,最终结果可以是样本图像中目标对象所在的位置信息,主机基于初始神经网络输出的位置信息与样本图像中标注的位置信息确定损失函数,并基于损失函数调整初始神经网络的网络参数。通过迭代上述过程,最终得到目标神经网络,目标神经网络的网络参数仍可以存储于存储器中。
接着,IO芯粒可以从存储器中读取目标神经网络的网络参数以及待处理数据,并将其发送给相应的AI推理芯粒进行运算。AI推理芯粒可以输出运算结果,IO芯粒将AI推理芯粒输出的运算结果发送给主机,以使主机基于AI推理芯粒输出的运算结果确定AI推理任务的执行结果,所述执行结果可以是目标检测任务中目标对象的位置信息、分类任务中的类别信息等。
应当说明的是,AI训练芯粒不仅可以用于训练阶段对训练阶段数据进行运算,也可以用于推理阶段对推理阶段数据进行运算,只要AI训练芯粒满足AI推理任务的需求(例如,编程颗粒度需求、精度需求等)即可。同理,AI推理芯粒103不仅可以用于推理阶段对推理阶段数据进行运算,也可以用于训练阶段对训练阶段数据进行运算,只要满足AI训练任务的需求即可。AI训练芯粒和AI推理芯粒103均可以在IO接口的调用下进行数据运算。
本公开实施例的方案具有以下优点:
(1)由于AI训练任务和AI推理任务对编程颗粒度的需求不同,相关技术中单一的“训推一体”的AI芯片难以同时获得较好的训练效果和推理效果。不同于传统的“训推一体”的AI芯片,本公开通过不同的芯粒分别执行AI训练任务和AI推理任务,从而能够同时满足AI训练任务和AI推理任务对编程颗粒度的需求。
(2)传统的GPU芯片虽然通过变颗粒度编程能做到训推一体,但是芯片一旦流片,训练和推理性能就已经固定,面对不同用户的算力配比需求,往往需要设计和生产多颗芯片来应对,提高了研发的NRE。而本公开利用高级封装技术,在封装时仍然可以通过灵活配比AI训练芯粒和AI推理芯粒的数量,从而针对不同需求提供灵活的训练和推理算力配比,在多用户需求的情况下,降低了总体的NRE。
(3)不同于传统芯片在一个封装体(Package)内往往只封装有一个SOC die,本公开利用die-2-die接口和高级封装技术,可以把多颗芯粒封装在一个Package内形成系统,从而满足各种用户的需求,应用前景广泛。
(4)本公开中的IO芯粒、AI训练芯粒和AI推理芯粒可以分开设计、分别生产,从而降低各个芯粒的面积,总体取得比单一训练推理芯片更高的良率,从而降低成本,并能够提供比“训推一体”的AI芯片更高的训练和推理能效比。
(5)同一AI芯片上可以采用不同工艺和不同的生产厂家的IO芯粒、AI训练芯粒和/或AI推理芯粒,进一步降低了成本,并提高了供应链产能的灵活性。
下面通过一个具体实施例对本公开的AI芯片的一种应用场景进行举例说明,本领域技术人员可以理解,以下应用场景仅为示例性说明,并非用于限制本公开,本公开的AI芯片还可以应用于其他的应用场景。
在本实施例中,AI芯片为面向人脸识别深度学习模型的训推一体芯粒化的AI芯片,其中,AI训练芯粒中的AI核基于Resnet模型进行设计,人脸识别是该模型的应用之一。IO芯粒中包括存储器接口控制单元和片上网络,片上网络配置有传输协议。AI推理芯粒中的AI核基于Resnet剪枝与量化后得到的模型进行设计。
本公开实施例还提供一种电子设备,参见图4,所述电子设备包括芯片401,所述芯片401可以采用本公开任一实施例所述的芯片。在一些实施例中,所述电子设备还包括编译器402,编译器402能够将由高级语言(例如,C语言、Python)编写的代码编译为计算机可理解的指令流,并将指令流发送给芯片,以使芯片中的IO芯粒基于指令流将各种数据发送至训练芯粒和/或推理芯粒进行处理。所述电子设备还可包括主机403,用于基于芯粒输出的第一运算结果调整初始神经网络的网络参数,得到目标神经网络,以及基于推理芯粒输出的第二运算结果得到待处理数据的推理结果。
本公开实施例还提供一种数据处理方法,应用于本公开任一实施例所述的芯片,参见图5,所述方法包括:
步骤501:通过所述IO芯粒获取样本数据和初始神经网络的网络参数,将所述样本数据和初始神经网络的网络参数输出至所述训练芯粒;
步骤502:通过所述训练芯粒对所述样本数据和所述初始神经网络的网络参数进行第一运算,输出第一运算结果,所述第一运算结果用于对所述初始神经网络进行训练,得到目标神经网络;
步骤503:通过所述IO芯粒获取待处理数据,并将所述待处理数据与所述目标神经网络的网络参数输出至所述推理芯粒;
步骤504:通过所述推理芯粒对所述待处理数据和所述目标神经网络的网络参数进行第二运算,输出第二运算结果,所述第二运算结果用于确定所述目标神经网络对所述待处理数据的推理结果。
在一些实施例中,所述IO芯粒通过第一接口单元与所述训练芯粒相连接,并通过第二接口单元与所述推理芯粒相连接;所述IO芯粒还包括片上网络,所述方法还包括:通过所述片上网络将所述样本数据和所述初始神经网络的网络参数路由到所述第一接口单元,并将所述待处理数据和所述目标神经网络的网络参数路由到所述第二接口单元。
在一些实施例中,所述IO芯粒还包括第三接口单元,用于连接存储单元,所述方法还包括:通过所述第三接口单元从所述存储单元获取所述样本数据、所述初始神经网络的网络参数、所述待处理数据和所述目标神经网络的网络参数。
在一些实施例中,所述芯片还包括处理器和存储器接口控制器;所述方法还包括:通过所述处理器向所述存储器接口控制器发送控制指令,通过所述存储器接口控制器响应于所述控制指令控制所述第一接口单元、第二接口单元和/或所述第三接口单元进行数据传输。
在一些实施例中,所述IO芯粒、训练芯粒的数量和/或所述推理芯粒的数量可配置。
在一些实施例中,所述训练芯粒包括第四接口单元和第一AI核,所述第四接口单元用于连接所述IO芯粒,所述方法还包括:通过所述第四接口单元从所述IO芯粒获取所述样本数据和所述初始神经网络的网络参数;通过所述第一AI核进行所述第一运算。
在一些实施例中,所述推理芯粒包括第五接口单元和第二AI核,所述第五接口单元用于连接所述IO芯粒,所述方法还包括:通过所述第五接口单元从所述IO芯粒获取所述待处理数据与所述目标神经网络的网络参数;所述第二AI核用于进行所述第二运算。
在一些实施例中,所述第一AI核的编程颗粒度小于所述第二AI核的编程颗粒度。
在一些实施例中,所述第一AI核的运算精度高于所述第二AI核的运算精度。
在一些实施例中,所述IO芯粒、训练芯粒和推理芯粒封装在同一个封装体内。
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任一实施例所述的方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,在实施本说明书实施例方案时可以把各模块的功能在同一个或多个软件和/或硬件中实现。也可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本说明书实施例的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本说明书实施例原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本说明书实施例的保护范围。
Claims (12)
1.一种芯片,其特征在于,所述芯片包括:
IO芯粒、训练芯粒和推理芯粒;
所述IO芯粒用于获取样本数据和初始神经网络的网络参数,将所述样本数据和初始神经网络的网络参数输出至所述训练芯粒;
所述训练芯粒用于对所述样本数据和所述初始神经网络的网络参数进行第一运算,输出第一运算结果,所述第一运算结果用于对所述初始神经网络进行训练,得到目标神经网络;
所述IO芯粒还用于获取待处理数据,并将所述待处理数据与所述目标神经网络的网络参数输出至所述推理芯粒;
所述推理芯粒用于对所述待处理数据和所述目标神经网络的网络参数进行第二运算,输出第二运算结果,所述第二运算结果用于确定所述目标神经网络对所述待处理数据的推理结果。
2.根据权利要求1所述的芯片,其特征在于,所述IO芯粒通过第一接口单元与所述训练芯粒相连接,并通过第二接口单元与所述推理芯粒相连接;所述IO芯粒还包括:
片上网络,用于将所述样本数据和所述初始神经网络的网络参数路由到所述第一接口单元,并将所述待处理数据和所述目标神经网络的网络参数路由到所述第二接口单元。
3.根据权利要求2所述的芯片,其特征在于,所述IO芯粒还包括:
第三接口单元,用于连接存储单元,以从所述存储单元获取所述样本数据、所述初始神经网络的网络参数、所述待处理数据和所述目标神经网络的网络参数。
4.根据权利要求3所述的芯片,其特征在于,所述芯片还包括处理器和存储器接口控制器;
所述处理器用于向所述存储器接口控制器发送控制指令,以使所述存储器接口控制器响应于所述控制指令控制所述第一接口单元、第二接口单元和/或所述第三接口单元进行数据传输。
5.根据权利要求1至4任意一项所述的芯片,其特征在于,所述IO芯粒、训练芯粒的数量和/或所述推理芯粒的数量可配置。
6.根据权利要求1至5任意一项所述的芯片,其特征在于,所述训练芯粒包括第四接口单元和第一AI核,所述第四接口单元用于连接所述IO芯粒,以从所述IO芯粒获取所述样本数据和所述初始神经网络的网络参数;所述第一AI核用于进行所述第一运算;
所述推理芯粒包括第五接口单元和第二AI核,所述第五接口单元用于连接所述IO芯粒,以从所述IO芯粒获取所述待处理数据与所述目标神经网络的网络参数;所述第二AI核用于进行所述第二运算。
7.根据权利要求6所述的芯片,其特征在于,所述第一AI核的编程颗粒度小于所述第二AI核的编程颗粒度。
8.根据权利要求6或7所述的芯片,其特征在于,所述第一AI核的运算精度高于所述第二AI核的运算精度。
9.根据权利要求1至8任意一项所述的芯片,其特征在于,所述IO芯粒、训练芯粒和推理芯粒封装在同一个封装体内。
10.一种电子设备,其特征在于,所述电子设备包括权利要求1至9任意一项所述的芯片。
11.一种数据处理方法,其特征在于,应用于权利要求1至9任意一项所述的芯片,所述方法包括:
通过所述IO芯粒获取样本数据和初始神经网络的网络参数,将所述样本数据和初始神经网络的网络参数输出至所述训练芯粒;
通过所述训练芯粒对所述样本数据和所述初始神经网络的网络参数进行第一运算,输出第一运算结果,所述第一运算结果用于对所述初始神经网络进行训练,得到目标神经网络;
通过所述IO芯粒获取待处理数据,并将所述待处理数据与所述目标神经网络的网络参数输出至所述推理芯粒;
通过所述推理芯粒对所述待处理数据和所述目标神经网络的网络参数进行第二运算,输出第二运算结果,所述第二运算结果用于确定所述目标神经网络对所述待处理数据的推理结果。
12.一种计算机可读存储介质,其上存储有计算机可读指令,其特征在于,所述指令被执行时实现权利要求1至9任意一项所述的芯片中由IO芯粒、训练芯粒或推理芯粒执行的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210343413.4A CN114943334A (zh) | 2022-03-31 | 2022-03-31 | 芯片、电子设备及数据处理方法、存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210343413.4A CN114943334A (zh) | 2022-03-31 | 2022-03-31 | 芯片、电子设备及数据处理方法、存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114943334A true CN114943334A (zh) | 2022-08-26 |
Family
ID=82907234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210343413.4A Pending CN114943334A (zh) | 2022-03-31 | 2022-03-31 | 芯片、电子设备及数据处理方法、存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114943334A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048809A (zh) * | 2023-02-02 | 2023-05-02 | 广州万协通信息技术有限公司 | 多芯粒异构安全芯片的任务处理方法及安全芯片装置 |
CN116992820A (zh) * | 2023-09-27 | 2023-11-03 | 之江实验室 | 一种基于芯粒集成的可扩展智能计算芯片结构 |
-
2022
- 2022-03-31 CN CN202210343413.4A patent/CN114943334A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116048809A (zh) * | 2023-02-02 | 2023-05-02 | 广州万协通信息技术有限公司 | 多芯粒异构安全芯片的任务处理方法及安全芯片装置 |
CN116048809B (zh) * | 2023-02-02 | 2023-12-22 | 广州万协通信息技术有限公司 | 多芯粒异构安全芯片的任务处理方法及安全芯片装置 |
CN116992820A (zh) * | 2023-09-27 | 2023-11-03 | 之江实验室 | 一种基于芯粒集成的可扩展智能计算芯片结构 |
CN116992820B (zh) * | 2023-09-27 | 2024-01-09 | 之江实验室 | 一种基于芯粒集成的可扩展智能计算芯片结构 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114943334A (zh) | 芯片、电子设备及数据处理方法、存储介质 | |
EP3612936B1 (en) | Reducing power consumption in a neural network processor by skipping processing operations | |
CN110147251B (zh) | 用于计算神经网络模型的系统、芯片及计算方法 | |
US11551068B2 (en) | Processing system and method for binary weight convolutional neural network | |
US11348004B2 (en) | Method of managing data representation for deep learning, method of processing data for deep learning and deep learning system performing the same | |
TWI811291B (zh) | 深度學習加速器及加快深度學習操作的方法 | |
WO2018171717A1 (zh) | 面向神经网络处理器的自动化设计方法和系统 | |
CN109388595A (zh) | 高带宽存储器系统以及逻辑管芯 | |
KR102038390B1 (ko) | 고효율 병렬 처리를 위한 인공 신경망 모듈 및 이의 스케쥴링 방법 | |
US8458112B2 (en) | Affective model device and method for deciding the behavior of an affective model device | |
US20210166070A1 (en) | Multi-Stage Neural Network Process for Keypoint Detection In An Image | |
CN110991630A (zh) | 一种面向边缘计算的卷积神经网络处理器 | |
KR20200028425A (ko) | 가상 카드 개설 방법 및 시스템, 결제 시스템, 및 카드 발급 시스템 | |
US20200327078A1 (en) | Data processing method and device, dma controller, and computer readable storage medium | |
US20210150325A1 (en) | Data processing method and apparatus, and related product | |
JP2017010255A (ja) | 画像認識装置および画像認識方法 | |
CN110647981B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN111667060B (zh) | 深度学习算法的编译方法、装置及相关产品 | |
CN110458285B (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
KR20210076420A (ko) | 전자 장치 및 그 제어 방법 | |
CN111832714B (zh) | 运算方法及装置 | |
CN111258537B (zh) | 一种防止数据溢出的方法、装置和芯片 | |
CN113282535B (zh) | 量化处理方法和装置、量化处理芯片 | |
CN114154623A (zh) | 基于卷积神经网络的数据移位处理方法、装置及设备 | |
US20200409663A1 (en) | Neural processing element with single instruction multiple data (simd) compute lanes |
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 |