CN115827552A - 计算任务处理方法、装置以及存储介质 - Google Patents
计算任务处理方法、装置以及存储介质 Download PDFInfo
- Publication number
- CN115827552A CN115827552A CN202211319945.0A CN202211319945A CN115827552A CN 115827552 A CN115827552 A CN 115827552A CN 202211319945 A CN202211319945 A CN 202211319945A CN 115827552 A CN115827552 A CN 115827552A
- Authority
- CN
- China
- Prior art keywords
- latch
- weight data
- weight
- loading
- random access
- 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
-
- 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
Landscapes
- Complex Calculations (AREA)
Abstract
本公开提出一种计算任务处理方法、装置以及存储介质,包括:响应于接收到多个计算任务,将前一个计算任务所需的第一权值数据从片上存储器加载至权值缓存器的静态随机存取存储器,将静态随机存取存储器中的第一权值数据加载至权值缓存器的锁存器,在第一权值数据全部加载至锁存器的情况下,从锁存器读取第一权值数据以对前一个计算任务进行神经网络运算,并将后一个计算任务所需的第二权值数据从片上存储器加载至静态随机存取存储器以等待运算,能够利用静态随机存取存储器实现权值缓存器的部分缓存功能,并且保证运算过程中权值数据从锁存器中读取,从而在保持低功耗特性的前提下,达到了缩小权值缓存器面积的目的,实现了降低芯片成本的效果。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种计算任务处理方法、装置以及存储介质。
背景技术
随着人工智能技术的发展,卷积神经网络在人工智能应用中具有极大的潜力,而应用这种算法时需要克服极大的计算处理需求,特别是在实时系统中,要求算法需要提供高算力,而高算力要求一次性提供给算法计算单元的权值(weight)比特数较多,因此运算过程中从神经网络加速器芯片的权值缓存器weight buffer中读取weight的功耗较大。相关技术中,为降低运算过程中从weight buffer中读取weight的功耗,卷积神经网络加速器的weight buffer一般由全寄存器组成或全锁存器构成,并且为了降低加载weight所需时间对算法效率的影响,weight buffer采用ping-pong结构。因此,weight buffer在整个芯片面积占比较大,影响芯片成本。
发明内容
本公开提出了一种计算任务处理方法、装置以及存储介质,旨在至少在一定程度上解决相关技术中的技术问题之一。
本公开第一方面实施例提出了一种计算任务处理方法,包括:响应于接收到多个计算任务,将前一个计算任务所需的第一权值数据从片上存储器加载至权值缓存器的静态随机存取存储器,将静态随机存取存储器中的第一权值数据加载至权值缓存器的锁存器,在第一权值数据全部加载至锁存器的情况下,从锁存器读取第一权值数据以对前一个计算任务进行神经网络运算,并将后一个计算任务所需的第二权值数据从片上存储器加载至静态随机存取存储器以等待运算。
本公开第二方面实施例提出了一种计算任务处理装置,包括:第一加载模块,用于响应于接收到多个计算任务,将前一个计算任务所需的第一权值数据从片上存储器加载至权值缓存器的静态随机存取存储器,第二加载模块,用于将静态随机存取存储器中的第一权值数据加载至权值缓存器的锁存器,第一运算模块,用于在第一权值数据全部加载至锁存器的情况下,从锁存器读取第一权值数据以对前一个计算任务进行神经网络运算,并将后一个计算任务所需的第二权值数据从片上存储器加载至静态随机存取存储器以等待运算。
本公开第三方面实施例提出了一种权值缓存器,包括:静态随机存取存储器和锁存器。
本公开第四方面实施例提出了一种计算机设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本公开实施例的计算任务处理方法。
本公开第五方面实施例提出了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使所述计算机执行本公开实施例公开的计算任务处理方法。
本实施例中,在接收到多个计算任务时,可以将前一个计算任务所需的第一权值数据从片上存储器加载至权值缓存器的静态随机存取存储器,并将静态随机存取存储器中的第一权值数据加载至权值缓存器的锁存器,并在第一权值数据全部加载至锁存器的情况下,从锁存器读取第一权值数据以对前一个计算任务进行神经网络运算,并将后一个计算任务所需的第二权值数据从片上存储器加载至静态随机存取存储器以等待运算,由于权值缓存器由静态随机存取存储器和锁存器组成,因此能够利用静态随机存取存储器实现权值缓存器的部分缓存功能,并且保证运算过程中权值数据从锁存器中读取,从而在保持低功耗特性的前提下,达到了缩小权值缓存器面积的目的,实现了降低芯片成本的效果。
本公开附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
本公开上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是根据本公开一实施例提供的计算任务处理方法的流程示意图;
图2是根据本公开实施例提供的权值缓存器操作流程示意图;
图3是根据本公开另一实施例提供的计算任务处理方法的流程示意图;
图4是根据本公开另一实施例提供的计算任务处理装置的示意图;
图5示出了适于用来实现本公开实施方式的示例性计算机设备的框图。
具体实施方式
下面详细描述本公开的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本公开,而不能理解为对本公开的限制。相反,本公开的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
其中,需要说明的是,本实施例的计算任务处理方法的执行主体可以为计算任务处理装置,该装置可以由软件和/或硬件的方式实现,该装置可以配置在电子设备中,电子设备可以包括但不限于终端、服务器端等。
图1是根据本公开一实施例提供的计算任务处理方法的流程示意图,如图1所示,该方法包括:
S101:响应于接收到多个计算任务,将前一个计算任务所需的第一权值数据从片上存储器加载至权值缓存器的静态随机存取存储器。
本公开实施例的计算任务处理方法可以由神经网络加速器芯片执行,其中,神经网络加速器芯片可以包括片上存储器、权值缓存器(weight buffer)以及其它任意可能的元器件,对此不作限制。
其中,本实施例的权值缓存器(weight buffer)例如可以由静态随机存取存储器(Static Random-Access Memory,SRAM)和锁存器构成,并且采用SRAM-锁存器构成ping-pong结构,由SRAM构成的权值缓存器(weight buffer)的数据端口位宽较低时,可大幅度降低布局布线的难度。一些实施例,可以配置容量相同SRAM与锁存器。
其中,神经网络所要执行的任务可以被称为计算任务(job),该计算任务可以是任意的需要神经网络(例如卷积神经网络)执行运算的任务,例如人脸识别任务、图像分类任务以及其它任意可能的任务,对此不作限制。并且,本实施例的计算任务的数量可以是多个,图2是根据本公开实施例提供的权值缓存器操作流程示意图,如图2所示,多个计算任务例如job0、job1、job2...等,对此不作限制。
在实际应用中,多个计算任务可以有对应的处理顺序,例如上述的多个计算任务的处理顺序依次是:job0、job1、job2...,而根据处理顺序的相对关系,可以将相邻两个计算任务分别作为前一个计算任务和后一个计算任务。
举例而言,相邻两个计算任务为job0和job1,则job0相对于job1可以作为前一个计算任务,对应的,job1作为job0的后一个计算任务;又例如,相邻两个计算任务为job1和job2,则job1相对于job2可以作为前一个计算任务,对应的,job2作为job1的后一个计算任务,依次类推,每个计算任务都可以被称为前一个计算任务和后一个计算任务,可以理解的是,第一个计算任务只作为前一个计算任务,最后一个计算任务只作为后一个计算任务。
其中,卷积神经网络中每层的权值(或者称为权重)可以被称为权值数据(weight),神经网络加速器芯片所用的所有神经网络及权值数据weight是重用的,并且存储在片上存储器。一些实施例,不同的计算任务例如可以由不同的卷积神经网络进行运算,则不同的计算任务所需的权值数据不同。
其中,前一个计算任务所需的权值数据可以被称为第一权值数据,对应的,后一个计算任务所需的权值数据可以被称为第二权值数据。
本公开实施例的芯片在接收到多个计算任务的情况下,首先可以将前一个计算任务所需的第一权值数据从片上存储器加载至权值缓存器(weight buffer)的静态随机存取存储器(SRAM)。
如图2所示,每个计算任务可以包括两步处理过程,第一步为weight加载过程(执行时间为Sub time1),第二步为job计算过程(执行时间为Sub time2),其中,加载过程是将权值数据加载至SRAM。例如,job0为前一个计算任务,则本实施例首先可以将job0的第一权值数据(job0 weight)从片上存储器加载至SRAM,即:加载job0所需的weight至SRAM,完成job weight加载过程。
S102:将静态随机存取存储器中的第一权值数据加载至权值缓存器的锁存器。
进一步地,上述完成weight加载过程后,进入job计算过程。其中,进入job计算过程后,首先将静态随机存取存储器中的第一权值数据加载至权值缓存器的锁存器,即:将job0 weight从SRAM中移至锁存器。
一些实施例,在向锁存器加载第一权值数据(job0 weight)之前,可以判断第一权值数据(job0 weight)是否全部加载至静态随机存取存储器,在确定第一权值数据全部加载至静态随机存取存储器的情况下,将静态随机存取存储器中的第一权值数据加载至权值缓存器的锁存器,也即是说,全部job0 weight写入SRAM后,weight加载过程结束,可设置进入计算过程。
S103:在第一权值数据全部加载至锁存器的情况下,从锁存器读取第一权值数据以对前一个计算任务进行神经网络运算,并将后一个计算任务所需的第二权值数据从片上存储器加载至静态随机存取存储器以等待运算。
具体地,上述进入计算过程后,在SRAM中的第一权值数据(job0 weight)全部加载至锁存器的情况下,进一步地,本公开实施例可以从锁存器读取第一权值数据(job0weight),以对前一个计算任务(job0)进行神经网络运算(例如卷积神经网络运算),即:job0卷积神经网络运算,其中运算过程中所需weight从锁存器中实时读取;并且,在运算过程启动的同时,开启后一个计算任务(job1)的weight加载过程,将后一个计算任务(job1)所需的第二权值数据(job1 weight)从片上存储器加载至静态随机存取存储器SRAM,以等待对job1的运算。
一些实施例,在前一个计算任务运算完成、且第二权值数据全部加载至静态随机存取存储器的情况下,启动将静态随机存取存储器中的第二权值数据加载至锁存器的过程,并在第二权值数据全部加载至锁存器后启动对后一个计算任务的运算。
具体地,在前一个计算任务(job0)运算完成、且第二权值数据(job1 weight)全部加载至静态随机存取存储器(SRAM)的情况下,启动对后一个计算任务(job1)的运算,即:将第二权值数据(job1 weight)从SRAM中移至锁存器,进一步从锁存器读取weight并启动job1卷积神经网络运算,可以理解的是,在这种情况下,job1作为job2的前一个计算任务,job2作为后一个计算任务。同理,job1运算过程中同时开启job2(作为job3的前一个计算任务)的weight加载过程,多个计算任务按照上述步骤循环执行,直至最后一个计算任务完成运算。
本实施例中,在接收到多个计算任务时,可以将前一个计算任务所需的第一权值数据从片上存储器加载至权值缓存器的静态随机存取存储器,并将静态随机存取存储器中的第一权值数据加载至权值缓存器的锁存器,并在第一权值数据全部加载至锁存器的情况下,从锁存器读取第一权值数据以对前一个计算任务进行神经网络运算,并将后一个计算任务所需的第二权值数据从片上存储器加载至静态随机存取存储器以等待运算,由于权值缓存器由静态随机存取存储器和锁存器组成,因此能够利用静态随机存取存储器实现权值缓存器的部分缓存功能,并且保证运算过程中权值数据从锁存器中读取,从而在保持低功耗特性的前提下,达到了缩小权值缓存器面积的目的,实现了降低芯片成本的效果。
图3是根据本公开另一实施例提供的计算任务处理方法的流程示意图,如图3所示,该方法包括:
S301:响应于接收到多个计算任务,将前一个计算任务所需的第一权值数据从片上存储器加载至权值缓存器的静态随机存取存储器。
S301的具体说明参见上述实施例,此处不在赘述。
S302:根据静态随机存取存储器的第一存储深度和锁存器的第二存储深度,计算数据存储比例。
本公开实施例中,静态随机存取存储器(SRAM)和锁存器可以有对应的存储深度(简称“深度”),存储深度用于描述每个地址存储的数据量。其中,静态随机存取存储器(SRAM)的存储深度可以被称为第一存储深度,而锁存器的存储深度可以被称为第二存储深度。本公开实施例中,存储深度是大于1的,并且在同等容量下,静态随机存取存储器(SRAM)的第一存储深度大于锁存器的第二存储深度。
而本公开实施例可以根据第一存储深度和第二存储深度,计算数据存储比例,其可以用sram_latch_dep_ratio表示,例如:第一存储深度和第二存储深度的比值作为该数据存储比例sram_latch_dep_ratio。
举例而言,假设由SRAM构成的buffer的数据端口宽度为288bit*16=4608bit,深度为64(即,第一存储深度);由锁存器构成的buffer的数据端口宽度为576bit*32=18432bit,深度为16(即,第二存储深度),则数据存储比例sram_latch_dep_ratio为4。
S303:根据数据存储比例,将静态随机存取存储器中多个地址存储的权值数据加载至锁存器中的一个地址。
上述确定数据存储比例sram_latch_dep_ratio后,进一步地,本公开实施例可以根据数据存储比例,将静态随机存取存储器中多个地址存储的权值数据(weight)加载至锁存器中的一个地址,其中,多个地址的数量与数据存储比例对应,也即是说,SRAM中多个地址对应锁存器的一个地址,则可以将SRAM中多个地址存储的weight数据作为一组数据,加载至锁存器中的一个地址,例如:sram_latch_dep_ratio的值为4,则可以将SRAM中4个地址存储的权值数据写入锁存器的一个地址。
一些实施例,可以从静态随机存取存储器SRAM中选择相邻的多个地址,例如:将SRAM中0、1、2、3地址中存储的权值数据加载至锁存器的一个地址,例如地址0;同理,将SRAM中4、5、6、7地址中存储的权值数据加载至锁存器的地址1,依次类推,直至SRAM中全部的权值数据加载至锁存器中。
另一些实施例,可以确定静态随机存取存储器中间隔为第二存储深度的多个地址。
举例而言,例如第二存储深度为16,数据存储比例为4,则可以从静态随机存取存储器(SRAM)的存储地址中选择间隔为16的4个地址作为一组,例如SRAM中地址为0,16,32,48作为一组,1,17,33,49作为一组等等。
进一步地,将多个地址存储的权值数据加载至锁存器中的一个地址,例如将地址为0,16,32,48存储的权值数据加载至锁存器的地址0处,将地址为1,17,33,49存储的权值数据加载至锁存器的地址1处...,其它地址加载方式同理,此处不在赘述。
从而,本公开实施例可以支持不同的数据存储比例,因此在权值缓存器的设计过程中,可大大降低后期布局布线的难度。
S304:在第一权值数据全部加载至锁存器的情况下,从锁存器读取第一权值数据以对前一个计算任务进行神经网络运算,并将后一个计算任务所需的第二权值数据从片上存储器加载至静态随机存取存储器以等待运算。
S304的具体说明参见上述实施例,此处不在赘述。
本实施例中,在接收到多个计算任务时,可以将前一个计算任务所需的第一权值数据从片上存储器加载至权值缓存器的静态随机存取存储器,并将静态随机存取存储器中的第一权值数据加载至权值缓存器的锁存器,并在第一权值数据全部加载至锁存器的情况下,从锁存器读取第一权值数据以对前一个计算任务进行神经网络运算,并将后一个计算任务所需的第二权值数据从片上存储器加载至静态随机存取存储器以等待运算,由于权值缓存器由静态随机存取存储器和锁存器组成,因此能够利用静态随机存取存储器实现权值缓存器的部分缓存功能,并且保证运算过程中权值数据从锁存器中读取,从而在保持低功耗特性的前提下,达到了缩小权值缓存器面积的目的,实现了降低芯片成本的效果。此外,本公开实施例可以支持不同的数据存储比例,因此在权值缓存器的设计过程中,可大大降低后期布局布线的难度。
图4是根据本公开另一实施例提供的计算任务处理装置的示意图。如图4所示,该计算任务处理装置40包括:
第一加载模块401,用于响应于接收到多个计算任务,将前一个计算任务所需的第一权值数据从片上存储器加载至权值缓存器的静态随机存取存储器;
第二加载模块402,用于将静态随机存取存储器中的第一权值数据加载至权值缓存器的锁存器;
第一运算模块403,用于在第一权值数据全部加载至锁存器的情况下,从锁存器读取第一权值数据以对前一个计算任务进行神经网络运算,并将后一个计算任务所需的第二权值数据从片上存储器加载至静态随机存取存储器以等待运算。
一些实施例中,第二加载模块402,包括:
计算子模块,用于根据静态随机存取存储器的第一存储深度和锁存器的第二存储深度,计算数据存储比例;以及
加载子模块,用于根据数据存储比例,将静态随机存取存储器中多个地址存储的权值数据加载至锁存器中的一个地址,其中,多个地址的数量与数据存储比例对应。
一些实施例中,加载子模块,具体用于:
确定静态随机存取存储器中间隔为第二存储深度的多个地址;以及
将多个地址存储的权值数据加载至锁存器中的一个地址。
一些实施例中,第二加载模块402,具体用于:在第一权值数据全部加载至静态随机存取存储器的情况下,将静态随机存取存储器中的第一权值数据加载至权值缓存器的锁存器。
一些实施例中,装置40还包括:第二运算模块,用于在前一个计算任务运算完成、且第二权值数据全部加载至静态随机存取存储器的情况下,启动将静态随机存取存储器中的第二权值数据加载至锁存器的过程,并在第二权值数据全部加载至锁存器后启动对后一个计算任务的运算。
一些实施例中,其中,静态随机存取存储器与锁存器的容量相同。
本实施例中,在接收到多个计算任务时,可以将前一个计算任务所需的第一权值数据从片上存储器加载至权值缓存器的静态随机存取存储器,并将静态随机存取存储器中的第一权值数据加载至权值缓存器的锁存器,并在第一权值数据全部加载至锁存器的情况下,从锁存器读取第一权值数据以对前一个计算任务进行神经网络运算,并将后一个计算任务所需的第二权值数据从片上存储器加载至静态随机存取存储器以等待运算,由于权值缓存器由静态随机存取存储器和锁存器组成,因此能够利用静态随机存取存储器实现权值缓存器的部分缓存功能,并且保证运算过程中权值数据从锁存器中读取,从而在保持低功耗特性的前提下,达到了缩小权值缓存器面积的目的,实现了降低芯片成本的效果。
根据本公开的实施例,本公开还提供了一种计算机设备、一种可读存储介质和一种计算机程序产品。
为了实现上述实施例,本公开还提出一种计算机程序产品,当计算机程序产品中的指令处理器执行时,执行如本公开前述实施例提出的计算任务处理方法。
图5示出了适于用来实现本公开实施方式的示例性计算机设备的框图。图5显示的计算机设备12仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(Industry StandardArchitecture;以下简称:ISA)总线,微通道体系结构(Micro Channel Architecture;以下简称:MAC)总线,增强型ISA总线、视频电子标准协会(Video Electronics StandardsAssociation;以下简称:VESA)局域总线以及外围组件互连(Peripheral ComponentInterconnection;以下简称:PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(Random Access Memory;以下简称:RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图5未显示,通常称为“硬盘驱动器”)。
尽管图5中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如:光盘只读存储器(Compact Disc Read OnlyMemory;以下简称:CD-ROM)、数字多功能只读光盘(Digital Video Disc Read OnlyMemory;以下简称:DVD-ROM)或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本公开各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本公开所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(Local Area Network;以下简称:LAN),广域网(Wide Area Network;以下简称:WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用,例如实现前述实施例中提及的计算任务处理方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
需要说明的是,在本公开的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本公开的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本公开的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本公开的实施例所属技术领域的技术人员所理解。
应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本公开各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本公开的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本公开的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本公开的限制,本领域的普通技术人员在本公开的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (15)
1.一种计算任务处理方法,其特征在于,所述方法包括:
响应于接收到多个计算任务,将前一个计算任务所需的第一权值数据从片上存储器加载至权值缓存器的静态随机存取存储器;
将所述静态随机存取存储器中的所述第一权值数据加载至所述权值缓存器的锁存器;
在所述第一权值数据全部加载至所述锁存器的情况下,从所述锁存器读取所述第一权值数据以对所述前一个计算任务进行神经网络运算,并将后一个计算任务所需的第二权值数据从所述片上存储器加载至所述静态随机存取存储器以等待运算。
2.如权利要求1所述的方法,其特征在于,所述将所述静态随机存取存储器中的所述第一权值数据加载至所述权值缓存器的锁存器,包括:
根据所述静态随机存取存储器的第一存储深度和所述锁存器的第二存储深度,计算数据存储比例;以及
根据所述数据存储比例,将所述静态随机存取存储器中多个地址存储的权值数据加载至所述锁存器中的一个地址,其中,所述多个地址的数量与所述数据存储比例对应。
3.如权利要求2所述的方法,其特征在于,所述根据所述数据存储比例,将所述静态随机存取存储器中多个地址存储的权值数据加载至所述锁存器中的一个地址,包括:
确定所述静态随机存取存储器中间隔为所述第二存储深度的多个地址;以及
将所述多个地址存储的权值数据加载至所述锁存器中的一个地址。
4.如权利要求1所述的方法,其特征在于,所述将所述静态随机存取存储器中的所述第一权值数据加载至所述权值缓存器的锁存器,包括:
在所述第一权值数据全部加载至所述静态随机存取存储器的情况下,将所述静态随机存取存储器中的所述第一权值数据加载至所述权值缓存器的锁存器。
5.如权利要求1所述的方法,其特征在于,所述将后一个计算任务所需的第二权值数据从所述片上存储器加载至所述静态随机存取存储器之后,还包括:
在所述前一个计算任务运算完成、且所述第二权值数据全部加载至所述静态随机存取存储器的情况下,启动将所述静态随机存取存储器中的所述第二权值数据加载至所述锁存器的过程,并在所述第二权值数据全部加载至所述锁存器后启动对所述后一个计算任务的运算。
6.如权利要求1所述的方法,其特征在于,其中,所述静态随机存取存储器与所述锁存器的容量相同。
7.一种计算任务处理装置,其特征在于,包括:
第一加载模块,用于响应于接收到多个计算任务,将前一个计算任务所需的第一权值数据从片上存储器加载至权值缓存器的静态随机存取存储器;
第二加载模块,用于将所述静态随机存取存储器中的所述第一权值数据加载至所述权值缓存器的锁存器;
第一运算模块,用于在所述第一权值数据全部加载至所述锁存器的情况下,从所述锁存器读取所述第一权值数据以对所述前一个计算任务进行神经网络运算,并将后一个计算任务所需的第二权值数据从所述片上存储器加载至所述静态随机存取存储器以等待运算。
8.如权利要求7所述的装置,其特征在于,所述第二加载模块,包括:
计算子模块,用于根据所述静态随机存取存储器的第一存储深度和所述锁存器的第二存储深度,计算数据存储比例;以及
加载子模块,用于根据所述数据存储比例,将所述静态随机存取存储器中多个地址存储的权值数据加载至所述锁存器中的一个地址,其中,所述多个地址的数量与所述数据存储比例对应。
9.如权利要求8所述的装置,其特征在于,所述加载子模块,具体用于:
确定所述静态随机存取存储器中间隔为所述第二存储深度的多个地址;以及
将所述多个地址存储的权值数据加载至所述锁存器中的一个地址。
10.如权利要求7所述的装置,其特征在于,所述第二加载模块,具体用于:
在所述第一权值数据全部加载至所述静态随机存取存储器的情况下,将所述静态随机存取存储器中的所述第一权值数据加载至所述权值缓存器的锁存器。
11.如权利要求7所述的装置,其特征在于,所述装置还包括:
第二运算模块,用于在所述前一个计算任务运算完成、且所述第二权值数据全部加载至所述静态随机存取存储器的情况下,启动将所述静态随机存取存储器中的所述第二权值数据加载至所述锁存器的过程,并在所述第二权值数据全部加载至所述锁存器后启动对所述后一个计算任务的运算。
12.如权利要求7所述的装置,其特征在于,其中,所述静态随机存取存储器与所述锁存器的容量相同。
13.一种权值缓存器,其特征在于,包括:静态随机存取存储器和锁存器。
14.一种计算机设备,其特征在于,包括处理器和存储器;
其中,所述处理器通过读取所述存储器中存储的可执行程序代码来运行与所述可执行程序代码对应的程序,以用于实现如权利要求1-6中任一所述的方法。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-6中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211319945.0A CN115827552A (zh) | 2022-10-26 | 2022-10-26 | 计算任务处理方法、装置以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211319945.0A CN115827552A (zh) | 2022-10-26 | 2022-10-26 | 计算任务处理方法、装置以及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115827552A true CN115827552A (zh) | 2023-03-21 |
Family
ID=85525499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211319945.0A Pending CN115827552A (zh) | 2022-10-26 | 2022-10-26 | 计算任务处理方法、装置以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115827552A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116306823A (zh) * | 2023-04-27 | 2023-06-23 | 北京爱芯科技有限公司 | 为mac阵列提供数据的方法、装置和芯片 |
-
2022
- 2022-10-26 CN CN202211319945.0A patent/CN115827552A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116306823A (zh) * | 2023-04-27 | 2023-06-23 | 北京爱芯科技有限公司 | 为mac阵列提供数据的方法、装置和芯片 |
CN116306823B (zh) * | 2023-04-27 | 2023-08-04 | 北京爱芯科技有限公司 | 为mac阵列提供数据的方法、装置和芯片 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10877766B2 (en) | Embedded scheduling of hardware resources for hardware acceleration | |
KR101931073B1 (ko) | 프로세싱 유닛을 위한 프레임 기반 클럭 레이트 조정 | |
US9058201B2 (en) | Managing and tracking thread access to operating system extended features using map-tables containing location references and thread identifiers | |
US20220027546A1 (en) | Standard cell layout generation with applied artificial intelligence | |
US8681166B1 (en) | System and method for efficient resource management of a signal flow programmed digital signal processor code | |
JPS6151243A (ja) | レジスタ式演算処理装置 | |
EP3816867A1 (en) | Data reading/writing method and system in 3d image processing, storage medium, and terminal | |
EP3846036B1 (en) | Matrix storage method, matrix access method, apparatus and electronic device | |
CN115827552A (zh) | 计算任务处理方法、装置以及存储介质 | |
US20120284458A1 (en) | Selecting an auxiliary storage medium for writing data of real storage pages | |
CN1896971B (zh) | 操作系统辅助磁盘高速缓存系统和方法 | |
US11823303B2 (en) | Data processing method and apparatus | |
CN115951937B (zh) | 处理器中向量指令填表和查表方法、装置及电子设备 | |
CN111813721A (zh) | 神经网络数据处理方法、装置、设备及存储介质 | |
CN111783984A (zh) | 一种神经网络运算方法、装置、设备及存储介质 | |
CN111158757A (zh) | 并行存取装置和方法以及芯片 | |
EP4318211A1 (en) | Method for inspecting code under weak memory order architecture, and corresponding device | |
CN117193993A (zh) | 内存空间分配方法、装置及电子设备 | |
CN116415100A (zh) | 业务处理方法、装置、处理器及计算设备 | |
US20040107308A1 (en) | Memory that allows simultaneous read requests | |
CN111913812B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
US11392406B1 (en) | Alternative interrupt reporting channels for microcontroller access devices | |
CN115658324B (zh) | 一种进程调度方法、计算设备及存储介质 | |
CN113342698A (zh) | 一种测试环境调度方法、计算设备及存储介质 | |
CN112257843B (zh) | 一种基于MobileNetV1网络推理任务的扩展指令集的系统 |
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 |