CN111552652B - 基于人工智能芯片的数据处理方法、装置和存储介质 - Google Patents
基于人工智能芯片的数据处理方法、装置和存储介质 Download PDFInfo
- Publication number
- CN111552652B CN111552652B CN202010666493.8A CN202010666493A CN111552652B CN 111552652 B CN111552652 B CN 111552652B CN 202010666493 A CN202010666493 A CN 202010666493A CN 111552652 B CN111552652 B CN 111552652B
- Authority
- CN
- China
- Prior art keywords
- preset weight
- current input
- input data
- buffer
- target buffer
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0893—Caches characterised by their organisation or structure
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Abstract
本发明实施例提供了一种基于人工智能芯片的数据处理方法、装置和存储介质。该基于人工智能芯片的数据处理方法包括:从所述存储器读入当前输入数据;确定所述当前输入数据对应的第一预设权重,所述第一预设权重用于表示所述当前输入数据在剩余处理过程的利用次数或利用频率;根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入所述第一目标缓存器,所述第一目标缓存器为所述多个缓存器的其中一个,所述第一目标缓存器用于存储所述当前输入数据并将所述当前输入数据传输至所述计算模块进行当前计算以得到输出数据。通过当前输入数据对应的第一预设权重选择存储的缓存器,达到提升人工智能芯片的读写效率的效果。
Description
技术领域
本发明实施例涉及人工智能芯片技术领域,尤其涉及一种基于人工智能芯片的数据处理方法、装置和存储介质。
背景技术
随着人工智能芯片的快速发展,如何提高人工智能芯片的处理速度也越来越重要。
目前,常用的方案是从存储器依次读取输入数据给按顺序传输给多个缓存器,缓存器依次将输入数据传输给计算模块进行相应计算。例如,多个缓存器为两个时,第一个缓存器先缓存第一个输入数据,第二个缓存器缓存第二个输入数据,当需要缓存第三个输入数据时,则将第三个输入数据重新缓存至第一个缓存器中,当缓存器没有计算模块需要计算的数据时,又要重新从存储器中读取该需要计算的数据。
然而,目前通过从存储器依次读取输入数据给按顺序传输给多个缓存器,需要频繁在存储器和缓存器之间进行数据的交互,导致读写效率十分低下。
发明内容
本发明实施例提供一种基于人工智能芯片的数据处理方法、装置和存储介质,以实现提升人工智能芯片的读写效率。
第一方面,本发明实施例提供了一种基于人工智能芯片的数据处理方法,应用于人工智能芯片,所述人工智能芯片包括存储器、计算模块和多个缓存器,所述多个缓存器分别与所述存储器连接,所述缓存器的传输速度大于所述存储器的传输速度,所述方法包括:
从所述存储器读入当前输入数据;
确定所述当前输入数据对应的第一预设权重,所述第一预设权重用于表示所述当前输入数据在剩余处理过程的利用次数或利用频率;
根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入所述第一目标缓存器,所述第一目标缓存器为所述多个缓存器的其中一个,所述第一目标缓存器用于存储所述当前输入数据并将所述当前输入数据传输至所述计算模块进行当前计算以得到输出数据。
可选的,所述根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入所述第一目标缓存器,包括:
若所述多个缓存器都存储有数据时,确定每个缓存器存储的数据各自对应的第二预设权重;
将所述第二预设权重小于所述第一预设权重对应的缓存器作为第一候选缓存器;
将所述第一候选缓存器的其中一个作为所述第一目标缓存器,以向所述第一目标缓存器写入所述当前输入数据。
可选的,将所述第一候选缓存器的其中一个作为所述第一目标缓存器,包括:
将所述第一候选缓存器中,对应的第二预设权重最小的第一候选缓存器作为所述第一目标缓存器。
可选的,所述方法还包括:
若所述每个缓存器存储的数据对应的第二预设权重均大于所述第一预设权重,则将所述多个缓存器中对应的第二预设权重最小的缓存器作为所述第一目标缓存器。
可选的,所述方法还包括:
确定所述输出数据对应的第三预设权重;
根据第三预设权重选取存储所述输出数据的输出存储器,所述输出存储器为所述存储器和所述多个缓存器的其中一个,且所述输出存储器和所述第一目标缓存器不相同;
将所述输出数据定义为当前输入数据,重复利用所述计算模块进行计算,直至完成所有计算。
可选的,所述根据第三预设权重选取存储所述输出数据的输出存储器,包括:
将所述多个缓存器中与所述第一目标缓存器不相同的作为第二候选缓存器;
确定所述第二候选缓存器中的第二目标缓存器,所述第二目标缓存器为所述第二候选缓存器中对应的第二预设权重最小的第二候选缓存器;
判断所述第三预设权重是否大于所述第二目标缓存器对应的第二预设权重;
若所述第三预设权重大于所述第二目标缓存器对应的第二预设权重,则将所述输出数据写入所述第二目标缓存器;
若所述第三预设权重不大于所述第二目标缓存器对应的第二预设权重,则将所述输出数据写入所述存储器。
第二方面,本发明实施例提供了一种基于人工智能芯片的数据处理装置,应用于人工智能芯片,所述人工智能芯片包括存储器、计算模块和多个缓存器,所述多个缓存器分别与所述存储器连接,所述装置包括:
读取模块,用于从所述存储器读入当前输入数据;
配置模块,用于确定所述当前输入数据对应的第一预设权重,所述第一预设权重用于表示所述当前输入数据在剩余处理过程的利用次数或利用频率;
写入模块,用于根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入所述第一目标缓存器,所述第一目标缓存器为所述多个缓存器的其中一个,所述第一目标缓存器用于存储所述当前输入数据并将所述当前输入数据传输至所述计算模块进行当前计算以得到输出数据。
可选的,所述配置模块具体用于若所述多个缓存器都存储有数据时,确定每个缓存器存储的数据对应的第二预设权重;所述写入模块具体用于将所述第二预设权重小于所述第一预设权重对应的缓存器作为第一候选缓存器;将所述第一候选缓存器的其中一个作为所述第一目标缓存器,以向所述第一目标缓存器写入所述当前输入数据。
可选的,所述写入模块具体用于将所述第一候选缓存器中,对应的第二预设权重最小的第一候选缓存器作为所述第一目标缓存器。
第三方面,本发明实施例提供了一种人工智能芯片,包括:
一个或多个处理器;
存储装置,用于存储一个或多个计算机程序,
当所述一个或多个计算机程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本发明任意实施例所述的基于人工智能芯片的数据处理方法。
第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本发明任意实施例所述的基于人工智能芯片的数据处理方法。
本发明实施例通过从所述存储器读入当前输入数据;确定所述当前输入数据对应的第一预设权重,所述第一预设权重用于表示所述当前输入数据在剩余处理过程的利用次数或利用频率;根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入所述第一目标缓存器,所述第一目标缓存器为所述多个缓存器的其中一个,所述第一目标缓存器用于存储所述当前输入数据并将所述当前输入数据传输至所述计算模块进行当前计算以得到输出数据,解决了目前通过从存储器依次读取输入数据给按顺序传输给多个缓存器,需要频繁在存储器和缓存器之间进行数据的交互,导致读写效率十分低下的问题,实现了提升人工智能芯片的读写效率的效果。
附图说明
图1是本发明实施例一提供的一种基于人工智能芯片的数据处理方法的流程示意图;
图2是本发明实施例一提供的一种人工智能芯片的结构示意图;
图3是本发明实施例二提供的一种基于人工智能芯片的数据处理方法的流程示意图;
图4是本发明实施例三提供的一种基于人工智能芯片的数据处理装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时处理可以被终止,但是还可以具有未包括在附图中的附加步骤。处理可以对应于方法、函数、规程、子例程、子计算机程序等等。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一预设权重为第二预设权重,且类似地,可将第二预设权重称为第一预设权重。第一预设权重和第二预设权重两者都是预设权重,但其不是同一预设权重。术语“第一”、“第二”等而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
实施例一
图1为本发明实施例一提供的一种基于人工智能芯片的数据处理方法的流程示意图,可适用于在人工智能芯片内进行数据读写的场景,该方法可以由基于人工智能芯片的数据处理装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成在人工智能芯片上。
如图1所示,本发明实施例一提供的基于人工智能芯片的数据处理方法包括:
S110、从所述存储器读入当前输入数据;
其中,存储器可以是SDRAM或DDR等,此处不作具体限制。其中,当前输入数据是指计算模块在当前计算所需要的数据。具体的,存储器中存储有所有计算完成所需要的完整数据。
S120、确定所述当前输入数据对应的第一预设权重,所述第一预设权重用于表示所述当前输入数据在剩余处理过程的利用次数或利用频率;
其中,第一预设权重表征当前输入数据在剩余处理过程的利用次数或利用频率。具体的,在人工智能的训练或预测过程中,本质上是对数据的计算,并且有些数据是需要重复利用进行计算。利用次数是指剩余计算过程,被计算模块利用以进行计算的次数。利用频率是指剩余计算过程,被计算模块利用以进行计算的频率,利用频率可以通过以下公式确定:利用频率=利用次数/剩余计算总次数。可以理解的是,本实施例的预设权重均是标识对应的数据在剩余处理过程的利用次数或利用频率,本实施例的其他预设权重不作过多赘述。
S130、根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入所述第一目标缓存器,所述第一目标缓存器为所述多个缓存器的其中一个,所述第一目标缓存器用于存储所述当前输入数据并将所述当前输入数据传输至所述计算模块进行当前计算以得到输出数据。
其中,第一目标缓存器是指多个缓存器中,根据第一预设权重确定的用于存储当前输入数据的缓存器。具体的,第一目标缓存器在读取当前输入数据后,将当前计算数据写入至计算模块,以供计算模块对当前输入数据进行计算以得到输出数据。可选的,缓存器可以是RAM、寄存器和buffer等,此处不作具体限制。具体的,缓存器的传输速度远大于存储器的传输速度。
具体的,本实施例的方法应用于人工智能芯片,该人工智能芯片包括存储器、计算模块和多个缓存器,所述多个缓存器分别与所述存储器连接。
参考图2,图2是本发明实施例提供的人工智能芯片的结构示意图。通过图2可知,人工智能芯片包括存储器210、计算模块230和多个缓存器220,其中存储器210分别和多个缓存器220连接,多个缓存器220一次和计算模块230连接,以从存储器210传输数据给多个缓存器220,缓存器220再传输给计算模块230进行计算,从而降低计算模块230的等待数据的时间。其中,存储器210还与计算模块230连接,存储器210还用于接收计算模块230计算得到的输出数据,同理,缓存器220也用于接收计算模块230的数据,具体需要根据缓存数据对应的第三预设权重确定输出数据存储在哪里。
在一个可选的实施方式中,根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入所述第一目标缓存器,包括:
若所述多个缓存器都存储有数据时,确定每个缓存器存储的数据各自对应的第二预设权重;将所述第二预设权重小于所述第一预设权重对应的缓存器作为第一候选缓存器;将所述第一候选缓存器的其中一个作为所述第一目标缓存器,以向所述第一目标缓存器写入所述当前输入数据。
具体的,当多个缓存器中有空闲缓存器时,可以将当前输入数据存入空闲数据即可。当多个缓存器的每个缓存器都存储有数据时,就需要考虑每个存储器存储的数据各自对应的第二预设权重,以减少后续计算时存储器和缓存器之间的交互次数,从而提高读写的效率。其中,第一候选缓存器是指对应的第二预设权重小于第一预设权重的缓存器。具体的,当第一候选缓存器为多个时,将第一候选缓存器的其中一个作为第一目标缓存器进行当前输入数据的缓存,以供计算模块在需要利用该当前输入数据时读取该当前输入数据进行计算。可以理解的是,选择对应的第二预设权重小于第一预设权重的其中一个第一候选缓存器进行缓存,在缓存器存储的都是后续利用次数较多的数据,则计算模块计算时可以直接从缓存器中读取,不需要从存储器读入缓存器后在写入计算模块中,减少了缓存器和存储器之间的交互次数。
可选的,将所述第一候选缓存器的其中一个作为所述第一目标缓存器,包括:
将所述第一候选缓存器中,对应的第二预设权重最小的第一候选缓存器作为所述第一目标缓存器。可以理解的是,将第二预设权重最小的作为第一目标缓存器,可以最大化减少交互次数。
在一个可选的实施方式中,若所述每个缓存器存储的数据对应的第二预设权重均大于所述第一预设权重,则将所述多个缓存器中对应的第二预设权重最小的缓存器作为所述第一目标缓存器。
在本实施方式中,当每个缓存器中存储的数据对应的第二预设权重均大于第一预设权重时,由于数据必须通过缓存器转发给计算模块进行计算,则将所述多个缓存器中对应的第二预设权重最小的缓存器作为所述第一目标缓存器,可以尽量减少缓存器和存储器之间的交互次数。
本发明实施例的技术方案,通过从所述存储器读入当前输入数据;确定所述当前输入数据对应的第一预设权重,所述第一预设权重用于表示所述当前输入数据在剩余处理过程的利用次数或利用频率;根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入所述第一目标缓存器,所述第一目标缓存器为所述多个缓存器的其中一个,所述第一目标缓存器用于存储所述当前输入数据并将所述当前输入数据传输至所述计算模块进行当前计算以得到输出数据,通过比对预设权重后确定存储数据的缓存器,可以减少后续计算时存储器和缓存器之间的交互次数,从而达到提升人工智能芯片的读写效率的技术效果。
实施例二
图3是本发明实施例二提供的一种基于人工智能芯片的数据处理方法的流程示意图。本实施例是在上述技术方案的进一步细化。该方法可以由基于人工智能芯片的数据处理装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成在人工智能芯片上。
如图3所示,本发明实施例二提供的基于人工智能芯片的数据处理方法包括:
S310、从所述存储器读入当前输入数据;
S320、确定所述当前输入数据对应的第一预设权重,所述第一预设权重用于表示所述当前输入数据在剩余处理过程的利用次数或利用频率;
S330、根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入所述第一目标缓存器,所述第一目标缓存器为所述多个缓存器的其中一个,所述第一目标缓存器用于存储所述当前输入数据并将所述当前输入数据传输至所述计算模块进行当前计算以得到输出数据。
S340、确定所述输出数据对应的第三预设权重;
其中,第三预设权重是指输出数据的预设权重。
S350、根据第三预设权重选取存储所述输出数据的输出存储器,所述输出存储器为所述存储器和所述多个缓存器的其中一个,且所述输出存储器和所述第一目标缓存器不相同;
在本步骤中,根据第三预设权重在存储器和多个缓存器中选择一个与第一目标缓存器不相同的输出存储器。具体的,计算模块是一边接收第一目标缓存器的部分数据进行计算得到部分输出数据,因此在开始有输出数据时,第一目标缓存器的剩余数据没有被全部用于计算,若选择第一目标缓存器作为输出存储器,会使得第一目标缓存器的剩余数据丢失,无法完成正常计算。
在一个可选的实施方式中,所述根据第三预设权重选取存储所述输出数据的输出存储器,包括:
将所述多个缓存器中与所述第一目标缓存器不相同的作为第二候选缓存器;确定所述第二候选缓存器中的第二目标缓存器,所述第二目标缓存器为所述第二候选缓存器中对应的第二预设权重最小的第二候选缓存器;判断所述第三预设权重是否大于所述第二目标缓存器对应的第二预设权重;若所述第三预设权重大于所述第二目标缓存器对应的第二预设权重,则将所述输出数据写入所述第二目标缓存器;若所述第三预设权重不大于所述第二目标缓存器对应的第二预设权重,则将所述输出数据写入所述存储器。
在本实施方式中,第二候选缓存器是指多个缓存器中与第一目标缓存器不相同的缓存器。第二目标缓存器是指第二候选缓存器中对应的第二预设权重最小的。在本实施方式中,若第三预设权重大于第二目标缓存器对应的第二预设权重,则将输出数据写入第二目标缓存器;若第三预设权重不大于第二目标缓存器对应的第二预设权重,则将输出数据写入存储器。
S360、将所述输出数据定义为当前输入数据,重复利用所述计算模块进行计算,直至完成所有计算。
其中,输出数据可以选择存储在存储器或缓存器中,重新作为当前输入数据进行计算。具体的,若输出数据存储在存储器中,则在后续计算需要利用该输出数据时,从存储器读入该输出数据至缓存器后,再传输给计算模块进行计算;若输出数据存储在缓存器中,则可以通过缓存器直接获取该输出数据进行计算,不再需要存储器和缓存器进行数据交互。
本发明实施例的技术方案,通过从所述存储器读入当前输入数据;确定所述当前输入数据对应的第一预设权重,所述第一预设权重用于表示所述当前输入数据在剩余处理过程的利用次数或利用频率;根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入所述第一目标缓存器,所述第一目标缓存器为所述多个缓存器的其中一个,所述第一目标缓存器用于存储所述当前输入数据并将所述当前输入数据传输至所述计算模块进行当前计算以得到输出数据,通过比对预设权重后确定存储数据的缓存器,可以减少后续计算时存储器和缓存器之间的交互次数,从而达到提升人工智能芯片的读写效率的技术效果。
实施例三
图4是本发明实施例三提供的一种基于人工智能芯片的数据处理装置的结构示意图,本实施例可适用于在人工智能芯片内进行数据读写的场景,该装置可以采用软件和/或硬件的方式实现,并可集成在人工智能芯片上。
如图4所示,本实施例提供的基于人工智能芯片的数据处理装置可以包括读取模块410、配置模块420和写入模块430,其中:
读取模块410,用于从所述存储器读入当前输入数据;
配置模块420,用于确定所述当前输入数据对应的第一预设权重,所述第一预设权重用于表示所述当前输入数据在剩余处理过程的利用次数或利用频率;
写入模块430,用于根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入所述第一目标缓存器,所述第一目标缓存器为所述多个缓存器的其中一个,所述第一目标缓存器用于存储所述当前输入数据并将所述当前输入数据传输至所述计算模块进行当前计算以得到输出数据。
可选的,所述配置模块420具体用于若所述多个缓存器都存储有数据时,确定每个缓存器存储的数据对应的第二预设权重;所述写入模块430具体用于将所述第二预设权重小于所述第一预设权重对应的缓存器作为第一候选缓存器;将所述第一候选缓存器的其中一个作为所述第一目标缓存器,以向所述第一目标缓存器写入所述当前输入数据。
可选的,所述写入模块430具体用于将所述第一候选缓存器中,对应的第二预设权重最小的第一候选缓存器作为所述第一目标缓存器。
可选的,写入模块430还用于若所述每个缓存器存储的数据对应的第二预设权重均大于所述第一预设权重,则将所述多个缓存器中对应的第二预设权重最小的缓存器作为所述第一目标缓存器。
可选的,配置模块420还用于确定所述输出数据对应的第三预设权重;写入模块430还用于根据第三预设权重选取存储所述输出数据的输出存储器,所述输出存储器为所述存储器和所述多个缓存器的其中一个,且所述输出存储器和所述第一目标缓存器不相同;将所述输出数据定义为当前输入数据,重复利用所述计算模块进行计算,直至完成所有计算。
可选的,写入模块430具体还用于将所述多个缓存器中与所述第一目标缓存器不相同的作为第二候选缓存器;确定所述第二候选缓存器中的第二目标缓存器,所述第二目标缓存器为所述第二候选缓存器中对应的第二预设权重最小的第二候选缓存器;判断所述第三预设权重是否大于所述第二目标缓存器对应的第二预设权重;若所述第三预设权重大于所述第二目标缓存器对应的第二预设权重,则将所述输出数据写入所述第二目标缓存器;若所述第三预设权重不大于所述第二目标缓存器对应的第二预设权重,则将所述输出数据写入所述存储器。
本发明实施例所提供的基于人工智能芯片的数据处理装置可执行本发明任意实施例所提供的基于人工智能芯片的数据处理方法,具备执行方法相应的功能模块和有益效果。本发明实施例中未详尽描述的内容可以参考本发明任意方法实施例中的描述。
实施例四
本发明实施例四还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本发明任意实施例所提供的一种基于人工智能芯片的数据处理方法,该方法可以包括:
从所述存储器读入当前输入数据;
确定所述当前输入数据对应的第一预设权重,所述第一预设权重用于表示所述当前输入数据在剩余处理过程的利用次数或利用频率;
根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入所述第一目标缓存器,所述第一目标缓存器为所述多个缓存器的其中一个,所述第一目标缓存器用于存储所述当前输入数据并将所述当前输入数据传输至所述计算模块进行当前计算以得到输出数据。
本发明实施例的计算机可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是,但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取输出存储器(缓存器)、只读输出存储器(ROM)、可擦式可编程只读输出存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读输出存储器(CD-ROM)、光输出存储器件、磁输出存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储计算机程序的有形介质,该计算机程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的计算机程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的计算机程序。
存储介质上包含的计算机程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种计算机程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述计算机程序设计语言包括面向对象的计算机程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式计算机程序设计语言—诸如“C”语言或类似的计算机程序设计语言。计算机程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或终端上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本发明实施例的技术方案,通过从所述存储器读入当前输入数据;确定所述当前输入数据对应的第一预设权重,所述第一预设权重用于表示所述当前输入数据在剩余处理过程的利用次数或利用频率;根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入所述第一目标缓存器,所述第一目标缓存器为所述多个缓存器的其中一个,所述第一目标缓存器用于存储所述当前输入数据并将所述当前输入数据传输至所述计算模块进行当前计算以得到输出数据,通过比对预设权重后确定存储数据的缓存器,可以减少后续计算时存储器和缓存器之间的交互次数,从而达到提升人工智能芯片的读写效率的技术效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (8)
1.一种基于人工智能芯片的数据处理方法,其特征在于,应用于人工智能芯片,所述人工智能芯片包括存储器、计算模块和多个缓存器,所述多个缓存器分别与所述存储器连接,所述缓存器的传输速度大于所述存储器的传输速度,所述方法包括:
从所述存储器读入当前输入数据;
确定所述当前输入数据对应的第一预设权重,所述第一预设权重用于表示所述当前输入数据在剩余处理过程的利用次数或利用频率;
根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入第一目标缓存器,所述第一目标缓存器为所述多个缓存器的其中一个,所述第一目标缓存器用于存储所述当前输入数据并将所述当前输入数据传输至所述计算模块进行当前计算以得到输出数据;
所述根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入所述第一目标缓存器,包括:若所述多个缓存器都存储有数据时,确定每个缓存器存储的数据各自对应的第二预设权重;将所述第二预设权重小于所述第一预设权重对应的缓存器作为第一候选缓存器;将所述第一候选缓存器的其中一个作为所述第一目标缓存器,以向所述第一目标缓存器写入所述当前输入数据。
2.如权利要求1所述的方法,其特征在于,将所述第一候选缓存器的其中一个作为所述第一目标缓存器,包括:
将所述第一候选缓存器中,对应的第二预设权重最小的第一候选缓存器作为所述第一目标缓存器。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
若所述每个缓存器存储的数据对应的第二预设权重均大于所述第一预设权重,则将所述多个缓存器中对应的第二预设权重最小的缓存器作为所述第一目标缓存器。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述输出数据对应的第三预设权重;
根据第三预设权重选取存储所述输出数据的输出存储器,所述输出存储器为所述存储器和所述多个缓存器的其中一个,且所述输出存储器和所述第一目标缓存器不相同;
将所述输出数据定义为当前输入数据,重复利用所述计算模块进行计算,直至完成所有计算。
5.如权利要求4所述的方法,其特征在于,所述根据第三预设权重选取存储所述输出数据的输出存储器,包括:
将所述多个缓存器中与所述第一目标缓存器不相同的作为第二候选缓存器;
确定所述第二候选缓存器中的第二目标缓存器,所述第二目标缓存器为所述第二候选缓存器中对应的第二预设权重最小的第二候选缓存器;
判断所述第三预设权重是否大于所述第二目标缓存器对应的第二预设权重;
若所述第三预设权重大于所述第二目标缓存器对应的第二预设权重,则将所述输出数据写入所述第二目标缓存器;
若所述第三预设权重不大于所述第二目标缓存器对应的第二预设权重,则将所述输出数据写入所述存储器。
6.一种基于人工智能芯片的数据处理装置,其特征在于,应用于人工智能芯片,所述人工智能芯片包括存储器、计算模块和多个缓存器,所述多个缓存器分别与所述存储器连接,所述缓存器的传输速度大于所述存储器的传输速度,所述装置包括:
读取模块,用于从所述存储器读入当前输入数据;
配置模块,用于确定所述当前输入数据对应的第一预设权重,所述第一预设权重用于表示所述当前输入数据在剩余处理过程的利用次数或利用频率;
写入模块,用于根据所述当前输入数据对应的第一预设权重将所述当前输入数据写入第一目标缓存器,所述第一目标缓存器为所述多个缓存器的其中一个,所述第一目标缓存器用于存储所述当前输入数据并将所述当前输入数据传输至所述计算模块进行当前计算以得到输出数据;
所述配置模块具体用于若所述多个缓存器都存储有数据时,确定每个缓存器存储的数据对应的第二预设权重;所述写入模块具体用于将所述第二预设权重小于所述第一预设权重对应的缓存器作为第一候选缓存器;将所述第一候选缓存器的其中一个作为所述第一目标缓存器,以向所述第一目标缓存器写入所述当前输入数据。
7.如权利要求6所述的装置,其特征在于,所述写入模块具体用于将所述第一候选缓存器中,对应的第二预设权重最小的第一候选缓存器作为所述第一目标缓存器。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-5中任一项所述的基于人工智能芯片的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010666493.8A CN111552652B (zh) | 2020-07-13 | 2020-07-13 | 基于人工智能芯片的数据处理方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010666493.8A CN111552652B (zh) | 2020-07-13 | 2020-07-13 | 基于人工智能芯片的数据处理方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111552652A CN111552652A (zh) | 2020-08-18 |
CN111552652B true CN111552652B (zh) | 2020-11-17 |
Family
ID=72005425
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010666493.8A Active CN111552652B (zh) | 2020-07-13 | 2020-07-13 | 基于人工智能芯片的数据处理方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111552652B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114757328A (zh) * | 2021-01-08 | 2022-07-15 | 中国科学院微电子研究所 | 一种卷积神经网络的卷积操作方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346712A (zh) * | 2010-07-30 | 2012-02-08 | 株式会社东芝 | 存储器管理装置、信息处理装置、存储器管理方法 |
CN103345452A (zh) * | 2013-07-18 | 2013-10-09 | 四川九成信息技术有限公司 | 一种在多个缓冲存储器中根据权重信息缓存数据方法 |
CN103548005A (zh) * | 2011-12-13 | 2014-01-29 | 华为技术有限公司 | 替换缓存对象的方法和装置 |
CN106649139A (zh) * | 2016-12-29 | 2017-05-10 | 北京奇虎科技有限公司 | 一种基于多个缓存的数据淘汰方法及装置 |
CN110716751A (zh) * | 2018-07-12 | 2020-01-21 | 赛灵思公司 | 高并行度计算平台、系统及计算实现方法 |
CN111124315A (zh) * | 2019-12-25 | 2020-05-08 | 中国平安人寿保险股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170017576A1 (en) * | 2015-07-16 | 2017-01-19 | Qualcomm Incorporated | Self-adaptive Cache Architecture Based on Run-time Hardware Counters and Offline Profiling of Applications |
-
2020
- 2020-07-13 CN CN202010666493.8A patent/CN111552652B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346712A (zh) * | 2010-07-30 | 2012-02-08 | 株式会社东芝 | 存储器管理装置、信息处理装置、存储器管理方法 |
CN103548005A (zh) * | 2011-12-13 | 2014-01-29 | 华为技术有限公司 | 替换缓存对象的方法和装置 |
CN103345452A (zh) * | 2013-07-18 | 2013-10-09 | 四川九成信息技术有限公司 | 一种在多个缓冲存储器中根据权重信息缓存数据方法 |
CN106649139A (zh) * | 2016-12-29 | 2017-05-10 | 北京奇虎科技有限公司 | 一种基于多个缓存的数据淘汰方法及装置 |
CN110716751A (zh) * | 2018-07-12 | 2020-01-21 | 赛灵思公司 | 高并行度计算平台、系统及计算实现方法 |
CN111124315A (zh) * | 2019-12-25 | 2020-05-08 | 中国平安人寿保险股份有限公司 | 一种数据处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111552652A (zh) | 2020-08-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110852438B (zh) | 模型生成方法和装置 | |
RU2643499C2 (ru) | Управление памятью | |
WO2017124649A1 (zh) | 用于向量运算的数据读写调度器及保留站 | |
KR102287677B1 (ko) | 데이터 액세스 방법, 장치, 기기 및 저장 매체 | |
KR102371844B1 (ko) | 인공 지능 칩에 적용되는 산출 방법 및 인공 지능 칩 | |
US10643736B2 (en) | Method, apparatus and electronic device for read/write speed testing | |
CN113723618B (zh) | 一种shap的优化方法、设备及介质 | |
WO2019019926A1 (zh) | 系统参数的优化方法、装置及设备、可读介质 | |
CN110825435B (zh) | 用于处理数据的方法和装置 | |
CN110827208A (zh) | 卷积神经网络的通用池化增强方法、装置、设备及介质 | |
CN113220606A (zh) | 神经网络权值存储方法、读取方法及相关设备 | |
CN111552652B (zh) | 基于人工智能芯片的数据处理方法、装置和存储介质 | |
CN115098412A (zh) | 外设访问控制器、数据访问装置及对应方法、介质和芯片 | |
CN116432778A (zh) | 一种数据处理的方法、装置、存储介质及电子设备 | |
US9158545B2 (en) | Looking ahead bytecode stream to generate and update prediction information in branch target buffer for branching from the end of preceding bytecode handler to the beginning of current bytecode handler | |
US8656120B2 (en) | Device, method and computer-readable medium relocating remote procedure call data in heterogeneous multiprocessor system on chip | |
CN106649143B (zh) | 一种访问缓存的方法、装置及电子设备 | |
CN111913812B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN115269199A (zh) | 数据处理方法、装置、电子设备及计算机可读存储介质 | |
CN115049003A (zh) | 一种预训练模型微调方法、装置、设备和存储介质 | |
CN114237705A (zh) | 验证方法、装置、电子设备和计算机可读存储介质 | |
US10366049B2 (en) | Processor and method of controlling the same | |
CN114518841A (zh) | 存储器中处理器和使用存储器中处理器输出指令的方法 | |
CN115905236B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN115130675B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |