CN112835510B - 一种片上存储资源存储格式的控制方法及装置 - Google Patents
一种片上存储资源存储格式的控制方法及装置 Download PDFInfo
- Publication number
- CN112835510B CN112835510B CN201911163456.9A CN201911163456A CN112835510B CN 112835510 B CN112835510 B CN 112835510B CN 201911163456 A CN201911163456 A CN 201911163456A CN 112835510 B CN112835510 B CN 112835510B
- Authority
- CN
- China
- Prior art keywords
- storage
- core
- chip
- format
- storage format
- 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
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- 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)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- Neurology (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种片上存储资源存储格式的控制方法及装置,该方法包括:将神经网络映射至众核***的过程中,生成所述众核***中各处理核的片上存储资源,并存入指定文件中;基于所述指定文件解析出所述片上存储资源的存储格式,并获取各处理核当前的占用存储空间,基于所述各处理核当前的占用存储空间调整所述各处理核的片上存储资源的存储格式。基于本发明提供的方法可以在保证各核不会发生核存储空间的超、堆栈溢出等情况下,最大化各核riscv代码运行效率从而进一步提高整体映射方案的映射后的运行效率。
Description
技术领域
本发明涉及众核***存储技术领域,特别是涉及一种片上存储资源存储格式的控制方法及装置。
背景技术
将VGG、ResNet等神经网络映射到Riscv(Reduced instruction set computer-V,RISCV指令集处理器)众核***中时,众核***中的各个核采用强同步的方式在全局phase位的作用下工作。
因此,如何管理众核***中每个核代码的存储,使得各核Riscv代码达到最大运行性能且不出现存储空间超、堆栈溢出等情况的发生是神经网络模型部署后最终能否高效运行于Riscv众核***的重要一部分,也是亟待解决的问题。
发明内容
鉴于上述问题,本发明提供了一种克服上述问题或至少部分地解决了上述问题的片上存储资源存储格式的控制方法及装置。
根据本发明的一个方面,提供了一种片上存储资源存储格式的控制方法,应用于众核***,所述方法包括:
将神经网络映射至众核***的过程中,生成所述众核***中各处理核的片上存储资源,并存入指定文件中;
基于所述指定文件解析出所述片上存储资源的存储格式,并获取各处理核当前的占用存储空间,基于所述各处理核当前的占用存储空间调整所述各处理核的片上存储资源的存储格式。
可选地,所述片上存储资源包括标志每个相位工作与否的核相位控制列表、每个相位的核接收信息列表以及每个相位的路由信息中一个或多个。
可选地,所述片上存储资源的存储格式包括:
第一存储格式,将数据存放在二维数组中;
第二存储格式,采用每个char型数据存储一个相位的数据;
第三存储格式,将char型数据的每个bit位都存成一个相位的数据。
可选地,所述核相位控制列表包括第一存储格式、第二存储格式和第三存储格式;
所述核接收信息列表包括第一存储格式、第二存储格式和第三存储格式;
所述路由信息包括第一存储格式和第二存储格式。
可选地,所述基于所述各处理核当前的占用存储空间调整所述各处理核的片上存储资源的存储格式,包括:
对于任意一个处理核,对所述处理核当前的占用存储空间与预设存储空间进行比较;
根据比较结果以预设规则切换所述处理核上的片上存储资源的存储格式。
可选地,所述根据比较结果以预设规则切换处理核上的片上存储资源的存储格式,包括:
判断所述处理核当前的占用存储空间是否大于预设存储空间;
若是,则选取任意一种片上存储资源切换其存储格式。
可选地,所述选取任意一种片上存储资源切换其存储格式之后,还包括:
继续获取所述处理核的第一占用存储空间,并判断所述第一占用存储空间是否大于所述预设存储空间;
若是,则在未进行存储格式切换的片上存储资源中选取任意一种片上存储资源切换其存储格式。
根据本发明的又一个方面,还提供了一种片上存储资源存储格式的控制装置,包括:
上层映射模块,配置成将神经网络映射至众核***的过程中,生成所述众核***中各处理核的片上存储资源,并存入指定文件中;
底层映射模块,配置成基于所述指定文件解析出所述片上存储资源的存储格式,并获取各处理核当前的占用存储空间,基于所述各处理核当前的占用存储空间调整所述各处理核的片上存储资源的存储格式。
根据本发明的又一个方面,还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行以实现上述任一项所述的片上存储资源存储格式的控制方法。
根据本发明的又一个方面,还提供了一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上述任一项所述的片上存储资源存储格式的控制方法。
本发明提供了一种更加高效的片上存储资源存储格式的控制方法及装置,基于本发明实施例提供的方案,可以对众核***中各处理核的占用存储空间进行获取,了解各处理核的存储状态,从而调节存储资源的存储格式,以充分利用片上资源,使得映射到各个核后的运行效率达到最大又不发生占用存储空间超过预设存储空间,从而在保证各核不会发生核存储空间的超、堆栈溢出等情况下,最大化各核riscv代码运行效率从而进一步提高整体映射方案的映射后的运行效率。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
根据下文结合附图对本发明具体实施例的详细描述,本领域技术人员将会更加明了本发明的上述以及其他目的、优点和特征。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的片上存储资源存储格式的控制方法流程示意图;
图2示出了根据本发明一个实施例的相位控制方式示意图;
图3示出了根据本发明另一实施例的相位控制方式示意图;
图4示出了根据本发明又一实施例的存储资源存储格式的控制方法流程示意图;
图5示出了根据本发明另一实施例的存储资源存储格式的控制方法流程示意图;
图6示出了根据本发明实施例的片上存储资源存储格式的控制装置结构示意图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1示出了根据本发明实施例的片上存储资源存储格式的控制方法流程示意图,参见图1可知,本发明实施例的片上存储资源存储格式的控制方法可以包括:
步骤S101,将神经网络映射至众核***的过程中,生成众核***中各处理核的片上存储资源,并存入指定文件中;
步骤S102,通过基于指定文件解析出片上存储资源的存储格式,并获取各处理核当前的占用存储空间,基于各处理核当前的占用存储空间调整各处理核的片上存储资源的存储格式。
众核***主要是用于浮点运算和密集运算的包括多个处理核的多核处理器。当通过神经网络进行数据处理时,通常会将各网络层映射至众核***,由众核***执行相应地运算。上述步骤S101中提及,将神经网络映射至众核***的过程中,会先生成众核***中各处理核的片上存储资源并进行存储。在本实施例中,对于生成以及存储众核***中各处理核的片上存储资源的过程可基于上层映射工具实现。上层映射工具,是用于解析tensorflow,caffe等模型文件并将其映射到众核***中的工具,众核***中每个核的配置可使用json文件描述,即本实施例中提及的指定文件,该json文件可以包括phase控制方式列表、phase核接收信息以及rc配置参数,例如默认使用二维数组的方式存放。
另外,对于上述步骤S102的执行过程,可基于底层映射工具进行。一般情况下,底层映射工具可以用于对指定文件进行解析,例如,可解析得到phase控制方式、核phase接收信息以及rc配置参数等各类片上存储资源,并将其分别存放在二维数组中并最终打注到riscv中。实际应用中,将神经网络映射到riscv众核架构后,生成各核的riscv代码,例如,每个riscv核的片上存储空间为32KB,除去代码段和堆栈段后可使用的空间27KB。当采用传统方式时,不能根据当前核存储的使用情况动态的进行控制列表方式的选择,无法发挥riscv代码的最大性能且容易发生riscv存储空间超、堆栈溢出等情况。基于本发明实施例提供的方案,通过底层映射工具可以对众核***中各处理核的占用存储空间进行获取,及时了解各处理核的存储状态,从而调节存储资源的存储格式,以充分利用片上资源,使得映射到各个核后的运行效率达到最大又不发生占用存储空间超过27KB。
可选地,本实施例中的片上存储资源包括:标志每个相位(phase)工作与否的核相位控制列表、每个相位的核接收信息列表以及每个相位的路由信息。也就是说,除去代码段和堆栈段,占用片上存储资源的主要可有以下三个方面:每个相位工作与否的标志的列表phase list(核相位控制列表),每个相位的接收信息N_received list(核接收信息列表)以及每个相位的发送信息rc参数(路由信息)等三个方面的存储信息。为便于理解,本发明实施例以片上存储资源包括上述三个方面的存储信息为例进行说明,应理解,在片上存储资源还可包括其他信息,也可包括上述三个方面的存储信息中的一个或多个,本发明对此不做限制。
另外,本发明实施例还设定了三种存储格式:第一存储格式、第二存储格式以及第三存储格式。对于核相位控制列表以及核接收信息列表来讲,其主要可以包括上述三种存储格式,而路由信息则可是包括第一存储格式、第二存储格式。在一些可选的实施例中,上述三种片上存储资源的优选存储格式均为第二存储格式。
以下基于核相位控制列表分别对三种存储格式进行说明。
一、第一存储格式,将数据存放在二维数组中。二维数组本质上是以数组作为数组元素的数组,即“数组的数组”,二维数组又可称为矩阵。
Tensorflow、caffe等模型经过上层映射工具后会生成各个核的相位控制方式并存储到json文件中,底层映射工具解析phase控制方式并将其存放在二维数组中。
config_tc_phase_list[PHASE_LIST_LEN][3]={{3,5,2},{1,2,1},…},PHASE_DELAY=4
以上述二维数组为例,核phase工作情况如下:
(1)PHASE_DELAY个phase处于idle状态;
(2)3个phase处于idle状态,5个phase处于active状态;
(3)将(2)循环两次;
(4)然后1个phase处于idle状态,2个phase处于active状态;
(5)循环(4)一次;
(6)以上述的phase_list二维数组为周期进行循环。
具体过程如图2,phase控制方式所示。
在该第一存储格式中,在riscv代码中需要加入解析该二维数组的函数以获取某个phase是否工作的标志,该方式在运行时需要的时间较长,可能导致映射后运行效率较低。
二、第二存储格式,采用每个char型数据存储一个相位的数据。char型数据是只可容纳单个字符的一种基本数据类型。
举例来说,可通过底层映射工具提前将该二维数组展开,采用每个char型数据存储一个相位工作与否的标志,例如,0代表不工作,1代表工作,将该char型数组直接打注到.c文件中,该方式占用的memory空间较大,但是在运行解析时耗费的时间较少,仅需要根据数组索引取值即可,优选选择此种高效方式。
三、第三存储格式,将char型数据的每个bit位都存成一个相位的数据。
将char型数据的每一个bit位都存成一个相位工作与否的标志,例如,0代表不工作,1代表工作。
实际应用中,核接收信息列表(N_received列表)也可采用上述存储方式,优选选用第二存储格式。
路由信息(RC参数)可以动态的根据相位的改变而改变,其具有周期性,且每个相位的目的地址增量固定,可以展开存成上述第二存储格式,也可以折叠成类似上述第一存储格式,前者占用memory空间较大,运行占用时间较短,后者占用空间较小,但是运行占用时间较长,优选使用第二存储格式。
在本发明另一可选实施例中,对于phase list中二维数组为config_tc_phase_list[1][3]={{0,1,1}},PHASE_DELAY=N的情况,这种情况为延迟N个phase不工作后其余phase均工作的情况,如图3所示(PHASE_DELAY=4)。Riscv代码函数调用中仅需要一次判断即可获取当前phase是否工作的标志,比上述第一存储格式、第二存储格式以及第三存储格式均占用更少的空间和更高的运行效率。此方式可作为一个特例增加到riscv代码的模板中,通过宏定义的方式进行打开和关闭,当神经网络映射到核后存在这种二维列表,则打开。
可选地,上述步骤S102中基于各处理核当前的占用存储空间调整各处理核的片上存储资源的存储格式,包括:对于任意一个处理核,对该处理核当前的占用存储空间与预设存储空间进行比较;根据比较结果以预设规则切换该处理核上的片上存储资源的存储格式。
进一步地,根据比较结果以预设规则切换该处理核上的片上存储资源的存储格式可以包括:
1、判断所述处理核当前的占用存储空间是否大于预设存储空间;若是,则选取任意一种片上存储资源切换其存储格式;
2、继续获取所述处理核的第一占用存储空间,并判断所述第一占用存储空间是否大于所述预设存储空间;若是,则在未进行存储格式切换的片上存储资源中选取任意一种片上存储资源切换其存储格式。基于本发明实施例提供的方法,不仅可以使得众核***中的处理核片上存储空间不超过预设存储空间(例如,27KB),而且还可以使得众核***的运行效率达到最优。本实施例对存储资源的存储格式进行调整时,对于各类型的存储资源的先后顺序没有限定。为便于理解,下面按照先核相位控制列表,再核接收信息列表,最后路由信息这一先后顺序为例进行说明。
图4示出了根据本发明又一实施例的存储资源存储格式的控制方法流程示意图,该实施例提供的方法可以包括:
步骤S401,首先将核相位控制列表和接收信息核接收信息列表的二维数组展开(具体执行过程可采用上文提及的底层映射工具进行),分别得到total_phase_len和total_rx_phase_len,然后获得路由信息部分占用的空间rc_space_occupy,判断该占用存储空间是否大于27KB;若是,则执行步骤S402;若否,则此次判断结束;
步骤S402,将核相位控制列表切换存储格式;切换过程可参见图5;
步骤S403,继续判断当前占用存储空间是否大于27KB;若是,则执行步骤S404;若否,则此次判断结束;
步骤S404,将核接收信息列表切换存储格式;其切换过程同样可参见图5;
步骤S405,继续判断当前占用存储空间是否大于27KB;若是,则执行步骤S406;若否,则此次判断结束;
步骤S406,路由信息折叠,即将路由信息的存储格式转换为第一存储格式。在本实施例中,核相位控制列表、核接收信息列表以及路由信息的默认存储格式均为第二存储格式。
图5示出了根据本发明另一实施例的存储资源存储格式的控制方法流程示意图,该实施例提供的方法可以包括:
步骤S501,判断当前占用存储空间是否大于27KB;若是,则执行步骤S502;若否,则此次判断结束;
步骤S502,切换为第三存储格式;
步骤S503,继续判断当前占用存储空间是否大于27KB;若是,则执行步骤S504;若否,则此次判断结束;
步骤S504,切换为第一存储格式。
本实施例中,提供的方案可适用于核相位控制列表、核接收信息列表。由于默认为第二存储格式,因此,当第一次判断当前占用存储空间是否大于27KB时,首先可考虑将核相位控制列表折叠,转换为使用第三存储格式进行存储,然后计算占用的总空间,如果仍然大于27KB,则核相位控制列表将选择第一存储格式进行存储。
总体来讲,当第一次判断占用存储空间大于27KB时,可先对核相位控制列表的存储格式进行依次转换,即由第二存储格式转换至第三存储格式,再转换至第一存储格式。当核相位控制列表的存储格式依次转换后,计算占用的存储空间仍然大于27KB的话,则可进行核接收信息列表进行图5所示方式的存储格式的切换,切换后如果仍然大于27KB,最后可进行路由信息的折叠。
综合图4、图5所示实施例来讲,每个核内存储空间为32KB,除去代码段和堆栈段后,实际可用空间为27KB,当数据段大于27KB时,会导致非法占用堆栈段空间导致堆栈溢出。底层映射工具中,按照映射后运行效率优先的原则,在本实施例中,首先按照第二存储格式的方式展开从json文件提取的二维数组phase list(相位控制列表),当占用的存储空间大于27KB时,会按照先后顺序分别进行phase list三种格式的切换,N_received三种方式的切换以及rc路由参数的折叠,直到占用的存储空间小于27KB,进而达到优化众核***各处理核的片上存储空间的同时,优化riscv代码的最大运行效率。
上述实施例所介绍了三种信息中,在判断占用存储空间大于27KB时,先基于片上存储资源中的一种信息所包括的多个格式之间进行调整,如先对核phase控制列表进行格式间的切换,当再次判断占用存储空间大于27KB时,则换存储资源中的另一信息(如核接收信息列表)进行三种存储格式间的调整,如此先对同一资源存储格式间的切换,再切换另一资源信息以进行存储格式间的切换。
在本发明另一实施例中,在初次判断判断占用存储空间大于27KB时,可先将一种资源信息的存储格式进行调整,如先将核phase控制列表的存储格式由第二存储格式切换为第三存储格式,当再次判断占用存储空间大于27KB时,可另选一种片上资源如核接收信息列表,进而将核接收信息列表的存储格式将第二存储格式切换为第三存储格式。也就是说,在每次判断占用存储空间大于27KB时可依次对片上存储资源中的每种资源信息的存储格式进行单次调整,当对每种片上资源信息的存储格式均进行过一次格式调整后,再对各片上资源的的存储格式进行二次调整。当然,实际应用中还可以包括其他调整方式,本发明不做限定。
本发明实施例提供的方案,众核***强同步方式下,根据各个riscv核存储空间的使用情况,在底层映射工具中的选择核相位控制列表,核接收信息列表以及rc路由参数的方法,可以针对各核目前的存储占用情况,适应调节各核的最优的存储方式。在保证各核不会发生核存储空间的超、堆栈溢出等情况下,最大化各核riscv代码运行效率从而进一步提高整体映射方案的映射后的运行效率。
基于同一发明构思,本发明实施例还提供了一种片上存储资源存储格式的控制装置,如图6所示,该装置包括:
上层映射模块610,配置成将神经网络映射至指定众核***的过程中,生成所述众核***中各处理核的片上存储资源,并存入指定文件中;
底层映射模块620,配置成基于所述指定文件解析出所述片上存储资源的存储格式,并获取各处理核当前的占用存储空间,基于所述各处理核当前的占用存储空间调整所述各处理核的片上存储资源的存储格式。
可选地,片上存储资源包括标志每个相位工作与否的核相位控制列表、每个相位的核接收信息列表以及每个相位的路由信息中一个或多个。
片上存储资源的存储格式包括:
第一存储格式,将数据存放在二维数组中;
第二存储格式,采用每个char型数据存储一个相位的数据;
第三存储格式,将char型数据的每个bit位都存成一个相位的数据。
核相位控制列表包括第一存储格式、第二存储格式和第三存储格式;
所述核接收信息列表包括第一存储格式、第二存储格式和第三存储格式;
所述路由信息包括第一存储格式和第二存储格式。
在本发明一可选实施例中,底层映射模块620,还可以配置成对于任意一个处理核,对所述处理核当前的占用存储空间与预设存储空间进行比较;
根据比较结果以预设规则切换所述处理核上的片上存储资源的存储格式。
在本发明一可选实施例中,底层映射模块620,还可以配置成判断所述处理核当前的占用存储空间是否大于预设存储空间;
若是,则选取任意一种片上存储资源切换其存储格式。
在本发明一可选实施例中,底层映射模块620,还可以配置成选取任意一种片上存储资源切换其存储格式之后,继续获取所述处理核的第一占用存储空间,并判断所述第一占用存储空间是否大于所述预设存储空间;
若是,则在未进行存储格式切换的片上存储资源中选取任意一种片上存储资源切换其存储格式。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行以实现上述任一实施例所述的片上存储资源存储格式的控制方法。
基于同一发明构思,本发明实施例还提供了一种计算机程序产品,其特征在于,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述任一实施例所述的片上存储资源存储格式的控制方法。
本发明实施例提供了一种更加高效的片上存储资源存储格式的控制方法及装置,基于本发明实施例提供的方案,可以对众核***中各处理核的占用存储空间进行获取,及时了解各处理核的存储状态,从而调节存储资源的存储格式,以充分利用片上资源,使得映射到各个核后的运行效率达到最大又不发生占用存储空间超过预设存储空间,从而在保证各核不会发生核存储空间的超、堆栈溢出等情况下,最大化各核riscv代码运行效率从而进一步提高整体映射方案的映射后的运行效率。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
至此,本领域技术人员应认识到,虽然本文已详尽示出和描述了本发明的多个示例性实施例,但是,在不脱离本发明精神和范围的情况下,仍可根据本发明公开的内容直接确定或推导出符合本发明原理的许多其他变型或修改。因此,本发明的范围应被理解和认定为覆盖了所有这些其他变型或修改。
Claims (9)
1.一种片上存储资源存储格式的控制方法,包括:
将神经网络映射至众核***的过程中,生成所述众核***中各处理核的片上存储资源,并存入指定文件中;
基于所述指定文件解析出所述片上存储资源的存储格式,并获取各处理核当前的占用存储空间,基于所述各处理核当前的占用存储空间调整所述各处理核的片上存储资源的存储格式。
2.根据权利要求1所述的方法,其中,所述片上存储资源包括标志每个相位工作与否的核相位控制列表、每个相位的核接收信息列表以及每个相位的路由信息中一个或多个。
3.根据权利要求2所述的方法,其中,所述片上存储资源的存储格式包括:
第一存储格式,将数据存放在二维数组中;
第二存储格式,采用每个char型数据存储一个相位的数据;
第三存储格式,将char型数据的每个bit位都存成一个相位的数据。
4.根据权利要求3所述的方法,其中,所述核相位控制列表包括第一存储格式、第二存储格式和第三存储格式;
所述核接收信息列表包括第一存储格式、第二存储格式和第三存储格式;
所述路由信息包括第一存储格式和第二存储格式。
5.根据权利要求1-4中任意一项所述的方法,其中,所述基于所述各处理核当前的占用存储空间调整所述各处理核的片上存储资源的存储格式,包括:
对于任意一个处理核,对所述处理核当前的占用存储空间与预设存储空间进行比较;
根据比较结果以预设规则切换所述处理核上的片上存储资源的存储格式。
6.根据权利要求5所述的方法,其中,所述根据比较结果以预设规则切换处理核上的存储资源的片上存储格式,包括:
判断所述处理核当前的占用存储空间是否大于预设存储空间;
若是,则选取任意一种片上存储资源切换其存储格式。
7.根据权利要求6所述的方法,其中,所述选取任意一种片上存储资源切换其存储格式之后,还包括:
继续获取所述处理核的第一占用存储空间,并判断所述第一占用存储空间是否大于所述预设存储空间;
若是,则在未进行存储格式切换的片上存储资源中选取任意一种片上存储资源切换其存储格式。
8.一种片上存储资源存储格式的控制装置,包括:
上层映射模块,配置成将神经网络映射至众核***的过程中,生成所述众核***中各处理核的片上存储资源,并存入指定文件中;
底层映射模块,配置成基于所述指定文件解析出所述片上存储资源的存储格式,并获取各处理核当前的占用存储空间,基于所述各处理核当前的占用存储空间调整所述各处理核的片上存储资源的存储格式。
9.一种计算机可读存储介质,其上存储有计算机程序,其中,该程序被处理器执行以实现权利要求1-7中任一项所述的片上存储资源存储格式的控制方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911163456.9A CN112835510B (zh) | 2019-11-25 | 2019-11-25 | 一种片上存储资源存储格式的控制方法及装置 |
US17/639,613 US11455108B2 (en) | 2019-11-25 | 2020-11-20 | Method and device for controlling storage format of on-chip storage resource |
PCT/CN2020/130618 WO2021104179A1 (zh) | 2019-11-25 | 2020-11-20 | 片上存储资源的存储格式的控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911163456.9A CN112835510B (zh) | 2019-11-25 | 2019-11-25 | 一种片上存储资源存储格式的控制方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112835510A CN112835510A (zh) | 2021-05-25 |
CN112835510B true CN112835510B (zh) | 2022-08-26 |
Family
ID=75922029
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911163456.9A Active CN112835510B (zh) | 2019-11-25 | 2019-11-25 | 一种片上存储资源存储格式的控制方法及装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11455108B2 (zh) |
CN (1) | CN112835510B (zh) |
WO (1) | WO2021104179A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105068939A (zh) * | 2015-07-21 | 2015-11-18 | 广东明阳龙源电力电子有限公司 | 一种应用于工业级嵌入式软件***的存储芯片及其方法 |
CN105511957A (zh) * | 2014-09-25 | 2016-04-20 | 国际商业机器公司 | 用于生成作业告警的方法和*** |
CN106873916A (zh) * | 2017-02-23 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种基于超大规模芯片调试的调试信息存取方法及装置 |
CN109542830A (zh) * | 2018-11-21 | 2019-03-29 | 北京灵汐科技有限公司 | 一种数据处理***及数据处理方法 |
CN110058953A (zh) * | 2018-01-18 | 2019-07-26 | 伊姆西Ip控股有限责任公司 | 用于改变存储***的类型的方法、设备和计算机程序产品 |
CN110347504A (zh) * | 2019-06-28 | 2019-10-18 | 中国科学院空间应用工程与技术中心 | 众核计算资源调度方法及装置 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2404748B (en) * | 2003-08-01 | 2006-10-04 | Symbian Ltd | Computing device and method |
US9189385B2 (en) * | 2010-03-22 | 2015-11-17 | Seagate Technology Llc | Scalable data structures for control and management of non-volatile storage |
KR102325453B1 (ko) | 2014-12-04 | 2021-11-11 | 삼성전자주식회사 | 반도체 장치의 동작 방법 |
CN105912486B (zh) * | 2016-04-27 | 2019-03-29 | 联想(北京)有限公司 | 信息处理方法及处理器 |
CN106529670B (zh) | 2016-10-27 | 2019-01-25 | 中国科学院计算技术研究所 | 一种基于权重压缩的神经网络处理器、设计方法、芯片 |
US20180143853A1 (en) | 2016-11-18 | 2018-05-24 | Qualcomm Incorporated | Circuits and Methods Providing Core Scheduling in Response to Aging for a Multi-Core Processor |
KR102520017B1 (ko) * | 2016-12-31 | 2023-04-11 | 인텔 코포레이션 | 이종 컴퓨팅을 위한 시스템들, 방법들, 및 장치들 |
AU2017279610A1 (en) * | 2017-12-19 | 2019-07-04 | Canon Kabushiki Kaisha | Memory access optimisation using per-layer computational mapping and memory allocation for CNN application |
CN109408257B (zh) | 2018-11-09 | 2021-04-13 | 北京灵汐科技有限公司 | 用于片上网络noc的数据传输方法、装置及电子设备 |
IN201911000737A (zh) * | 2019-01-07 | 2019-09-22 | Hcl Technologies Limited |
-
2019
- 2019-11-25 CN CN201911163456.9A patent/CN112835510B/zh active Active
-
2020
- 2020-11-20 WO PCT/CN2020/130618 patent/WO2021104179A1/zh active Application Filing
- 2020-11-20 US US17/639,613 patent/US11455108B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105511957A (zh) * | 2014-09-25 | 2016-04-20 | 国际商业机器公司 | 用于生成作业告警的方法和*** |
CN105068939A (zh) * | 2015-07-21 | 2015-11-18 | 广东明阳龙源电力电子有限公司 | 一种应用于工业级嵌入式软件***的存储芯片及其方法 |
CN106873916A (zh) * | 2017-02-23 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种基于超大规模芯片调试的调试信息存取方法及装置 |
CN110058953A (zh) * | 2018-01-18 | 2019-07-26 | 伊姆西Ip控股有限责任公司 | 用于改变存储***的类型的方法、设备和计算机程序产品 |
CN109542830A (zh) * | 2018-11-21 | 2019-03-29 | 北京灵汐科技有限公司 | 一种数据处理***及数据处理方法 |
CN110347504A (zh) * | 2019-06-28 | 2019-10-18 | 中国科学院空间应用工程与技术中心 | 众核计算资源调度方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US11455108B2 (en) | 2022-09-27 |
CN112835510A (zh) | 2021-05-25 |
WO2021104179A1 (zh) | 2021-06-03 |
US20220269430A1 (en) | 2022-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018010654A1 (zh) | 一种虚拟机热迁移的方法、装置及*** | |
WO2014117716A1 (en) | Block compression in a key/value store | |
EP3285159B1 (en) | Access method and device for random access memories, control chip and storage medium | |
US8631132B2 (en) | Ensuring affinity at all affinity domains by folding at each affinity level possible for a partition spanning multiple nodes | |
JP2018518074A (ja) | データ伝送方法、データ伝送装置、プロセッサ、及び移動端末 | |
CN108829510B (zh) | 线程绑定处理方法和装置 | |
US20200026542A1 (en) | Virtual network function management apparatus, virtual infrastructure management apparatus, and virtual network function configuration method | |
CN108897858B (zh) | 分布式集群索引分片的评估方法及装置、电子设备 | |
Hendrickson et al. | Enhancing data locality by using terminal propagation | |
CN113918352B (zh) | 一种服务资源配置方法、计算设备及存储介质 | |
CN112835510B (zh) | 一种片上存储资源存储格式的控制方法及装置 | |
CN109783221B (zh) | 一种虚拟机资源分配方法、装置及资源服务器 | |
CN112433812B (zh) | 一种虚拟机跨集群迁移方法、***、设备及计算机介质 | |
CN106776131B (zh) | 一种数据备份方法及服务器 | |
US8359564B2 (en) | Circuit design information generating equipment, function execution system, and memory medium storing program | |
CN116521608A (zh) | 数据迁移方法及计算设备 | |
CN110874189A (zh) | 存储***和存储控制方法 | |
JP6516489B2 (ja) | 情報処理装置 | |
US20110173633A1 (en) | Task migration system and method thereof | |
JP2000311071A (ja) | 出力制御装置および出力制御方法およびコンピュータが読み出し可能なプログラムを格納した記憶媒体 | |
JP4985483B2 (ja) | 計算機システム、ネットワークブートロードシステム、及び、そのブートロード方法 | |
US11609841B2 (en) | Systems and methods for testing models | |
JP6292064B2 (ja) | 印刷処理プログラム、印刷処理方法及び情報処理装置 | |
CN116263714A (zh) | cinder调度方法、装置、计算机设备及存储介质 | |
CN107341076B (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 |