CN109783157A - 一种算法程序加载的方法及相关装置 - Google Patents
一种算法程序加载的方法及相关装置 Download PDFInfo
- Publication number
- CN109783157A CN109783157A CN201811641790.6A CN201811641790A CN109783157A CN 109783157 A CN109783157 A CN 109783157A CN 201811641790 A CN201811641790 A CN 201811641790A CN 109783157 A CN109783157 A CN 109783157A
- Authority
- CN
- China
- Prior art keywords
- arithmetic subroutine
- storage resource
- algorithm
- subroutine
- arithmetic
- 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.)
- Granted
Links
Classifications
-
- 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
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种算法程序加载的方法及相关装置,所述方法用于神经网络处理器,所述方法包括:确定所述第二存储资源的基本存储容量;获取算法程序,判断所述算法程序的算法容量是否大于所述基本存储容量,若所述算法程序的算法容量大于所述基本存储容量,则以所述基本存储容量为单位对所述算法程序进行切割得到算法子程序;控制所述直接存储器访问模块将神经网络处理器的主控程序加载至所述第一存储资源,执行所述主控程序,控制所述直接存储器访问模块将所述算法子程序中的第一算法子程序加载至所述第二存储资源,确认所述第一算法子程序加载完毕,执行所述第一算法子程序并行加载第二算法子程序。本申请具有算法程序加载与执行并行运算的优点。
Description
技术领域
本申请涉及处理器领域,具体涉及一种算法程序加载的方法及相关装置。
背景技术
随着社会科学技术的发展,处理器被应用在各式各样的电子设备中,目前,主流的处理器都运行在非常高的主频上,指令在高速流水线架构下得到并行的高效执行,因此要求处理器能够快速准确地从存储器中读取指令。
一般情况下,处理器是采用存储资源、第一级的CACHE存储资源和控制器、第二级的CACHE存储资源和控制器的结合的读取机制,但是这种读取机制无法实现代码读取加载与代码执行的并行处理。
发明内容
本申请实施例公开了一种算法程序加载的方法及相关装置,实现算法程序加载与执行的并行处理。
第一方面,本申请实施例公开了一种算法程序加载的方法,所述方法用于,所述方法用于神经网络处理器,所述神经网络处理器包括:存储资源、直接存储器访问模块、执行模块,所述存储资源包括:第一存储资源和第二存储资源,其中:
确定所述第二存储资源的基本存储容量;
获取算法程序,判断所述算法程序的算法容量是否大于所述基本存储容量,若所述算法程序的算法容量大于所述基本存储容量,则以所述基本存储容量为单位对所述算法程序进行切割得到算法子程序;
控制所述直接存储器访问模块将神经网络处理器的主控程序加载至所述第一存储资源中,控制所述执行模块执行所述主控程序;
控制所述直接存储器访问模块将所述算法子程序中的第一算法子程序加载至所述第二存储资源中,确认所述第一算法子程序加载完毕,控制所述执行模块执行所述第一算法子程序,并行控制所述直接存储器访问模块加载第二算法子程序。
第二方面,本申请实施例公开了一种处理器,其特征在于,所述处理器包括主控处理器和神经网络处理器,其中:
所述主控处理器,用于确定第二存储资源模块的基本存储容量;判断算法程序的算法容量是否大于所述基本存储容量,若所述算法程序的算法容量大于所述基本存储容量,则以所述基本存储容量为单位对所述算法程序进行切割得到算法子程序,控制所述算法程序的加载与执行;
所述神经网络处理器包括存储资源模块、直接存储器访问模块和执行模块,用于执行主控程序,控制所述直接存储器访问模块将所述算法子程序中的第一算法子程序加载至所述第二存储资源中,确认所述第一算法子程序加载完毕,执行所述第一算法子程序并行加载第二算法子程序。
第三方面,本申请实施例公开了一种芯片,其特征在于,所述芯片包括如第二方面所述的处理器,所述芯片可操作来使计算机执行如第一方面所述的方法。
第四方面,本申请实施例公开了一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如第一方面所述的方法。
第五方面,本申请实施例公开了一种计算机程序产品,其特征在于,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如第一方面所述的方法。
实施本申请实施例,具有如下有益效果:
可以看出,通过本申请实施例所描述的代码加载的方法及相关装置,对第二存储资源进行均匀分割后确定第二存储资源的基本存储容量;获取算法程序,判断算法程序的算法容量是否大于所基本存储容量,若算法程序的算法容量大于所述基本存储容量,则以基本存储容量为单位对算法程序进行切割得到算法子程序;控制直接存储器访问模块将神经网络处理器的主控程序加载至第一存储资源中,控制所述执行模块执行主控程序,控制所述直接存储器访问模块将所述算法子程序中的第一算法子程序加载至所述第二存储资源中,确认所述第一算法子程序加载完毕,控制所述执行模块执行所述第一算法子程序,并行控制所述直接存储器访问模块加载第二算法子程序,因此,可以通过将存储资源划分为第一存储资源模块与第二存储资源模块,将第二资源存储模块划分为多个基本存储资源,将算法程序切割为多个算法子程序,将算法子程序加载至基本存储资源中,实现在执行一个算法子程序的同时加载另一个算法子程序,实现算法程序加载与执行的并行处理。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种算法程序加载的装置的结构示意图。
图2是本申请实施例提供的一种算法程序加载的方法的流程示意图。
图3是本申请实施例提供的一种数据交互的示意图。
图4是本申请实施例提供的另一种数据交互的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
图1是本申请实施例提供的一种算法程序加载的装置的结构示意图,如图1所示,该装置100包括:主控处理器101和神经网络处理器(Neural-network Process Units,NPU)102,所述神经网络处理器102包括:存储资源模块103和直接存储器访问模块(DirectMemory Access,DMA)104、执行模块105。在一个实施例中,所述主控处理器101为应用处理器(Application Processor,AP),所述存储资源模块103为紧耦合内存(Tightly CoupMemories,TCM),所述直接存储器访问模块104与所述装置外的双倍速率同步动态随机存储器(Double Data Rate,DDR)连接,所述双倍速率同步动态随机存储器中存储算法程序。在其它实施例中,所述主控处理器101可以为其它类型的处理器,所述存储资源模块103可以为其它类型的存储资源,所述直接存储器访问模块104可以与所述装置外的其他存储器连接。
所述主控处理器101,用于确定第二存储资源的基本存储容量;判断算法程序的算法容量是否大于所述基本存储容量,若所述算法程序的算法容量大于所述基本存储容量,则以所述基本存储容量为单位对所述算法程序进行切割得到算法子程序,控制所述算法程序的加载与执行。
其中,获取分割数值N,依据分割数值N对所述存储资源模块103中的所述第二存储资源模块进行均匀分割,得到N个基本存储资源,确定每个基本存储资源的存储容量为基本存储容量。
其中,获取所述算法程序的算法容量,判断该算法容量是否大于基本存储容量,如算法容量大于基本存储容量,对所述算法程序执行分割动作,所述分割动作包括:依据基本存储容量分割算法程序,得到M个算法子程序,M个算法子程序依次存储在所述双倍速率同步动态随机存储器中;如算法容量小于基本存储容量,则不进行切割并将算法程序存储在所述双倍速率同步动态随机存储器中。
所述主控处理器101还用于启动神经网络处理器102,向神经网络处理器102发送执行指令,指示神经网络处理器102开始执行主控程序和所述算法子程序,所述主控程序为第一存储资源模块中存储的程序,所述算法子程序为所述第二存储资源模块中存储的程序。
所述神经网络处理器102包括存储资源模块103、直接存储器访问模块104和执行模块105用于执行主控程序,控制所述直接存储器访问模块将所述算法子程序中的第一算法子程序加载至所述第二存储资源中,确认所述第一算法子程序加载完毕,执行所述第一算法子程序并行加载第二算法子程序。
其中,接收主控处理器101的执行指令,依据执行指令控制执行模块105开始执行主控程序,并监测设定任务信息,如没有接受到设定任务信息,则进入省电状态;如接收到所述设定任务信息,依据所述任务信息解析任务参数,依据所述任务参数控制执行单元105执行所述任务参数对应的任务,其中,所述第一设定任务信息包括:加载算法程序任务、执行算法程序任务等等,在此不作限定。
可选的,所述神经网络处理器102还用于配置直接存储器访问模块104的任务,该任务用于指示直接存储器访问模块104将双倍速率同步动态随机存储器中的算法子程序搬运至存储资源模块103中。
可选的,存储资源模块103,包括第一存储资源模块和第二存储资源模块,其中,所述第一存储资源模块用于存储主控程序,所述第二存储资源模块用于接收所述算法子程序的加载并存储所述算法子程序,所述主控程序为控制所述神经网络处理器的程序,所述算法子程序为所述双倍速率同步动态随机存储器中存储的程序。
可选的,存储资源模块103与直接存储器访问模块104连接,存储直接存储器访问模块104从双倍速率同步动态随机存储器中搬运的主控程序与任务程序,主控程序存储至第一存储模块中,任务程序存储至第二存储资源模块中。
可选的,直接存储器访问模块104,用于获取算法程序;将神经网络处理器的主控程序加载至所述第一存储资源模块中;将所述算法子程序加载至所述第二存储资源中。
其中,直接存储器访问模块104与所述双倍速率同步动态随机存储器连接,所述神经网络处理器102执行所述主控程序,接收所述主控程序包含的任务指令,依据所述任务指令加载所述任务指令对应的任务程序,其中,任务程序包括:双倍速率同步动态随机存储器中的算法子程序。
可选的,主控处理器101还用于向直接存储器访问模块103发送加载任务指令,指示直接存储器访问模块将所述主控程序从所述双倍速率同步动态随机存储器中加载至所述存储资源模块103中,将主控程序存储至第一存储资源模块中,对主控程序进行监测,确定主控程序搬运完毕,向神经网络处理器102发送执行指令,执行指令用于启动神经网络处理器102,执行指令还用于指示神经网络处理器102控制执行模块105开始执行主控程序,控制神经网络处理器102对设定任务信息进行监测,接收设定任务配置,依据设定任务配置解析任务参数,依据所述任务参数执行任务。
可选的,神经网络处理器102还用于在将一个算法子程序执行完毕后,与直接存储器访问模块104进行数据交互,通过对第一变量和第二变量的控制,其中,所述第一变量用于判断所述算法子程序是否执行完毕,所述第二变量用于判断所述算法子程序是否加载完毕,判断第二变量的值是否大于0,确定算法子程序是否加载完毕,如所述算法子程序加载完毕则继续控制执行模块105执行已经加载完毕的算法子程序。
可选的,直接存储器访问模块104还用于与存储资源模块103进行数据交互,通过对第一变量与第二变量进行控制,判断第一变量的值是否大于0,确定基本存储资源中的算法子程序是否执行完毕,如算法子程序执行完毕,则确定基本存储资源中存在内存可用于加载所述双倍速率同步动态随机存储器中的算法子程序。
可选的,执行模块105,用于执行主控程序,执行算法子程序。
可以看出,通过本申请实施例,通过采用存储资源与直接存储器访问模块的结合,将存储资源划分为第一存储资源和第二存储资源,第一存储资源用于存储主控程序,将第二存储资源均匀分割成多个基本存储资源,通过控制编译器将算法程序依据基本存储资源的容量进行切割得到算法子程序,控制主控程序的执行,控制所述直接存储器访问模块将所述算法子程序中的第一算法子程序加载至所述第二存储资源中,确认所述第一算法子程序加载完毕,执行所述第一算法子程序并行加载第二算法子程序,其中,存储资源与直接存储器访问模块进行数据交互,实现依据算法子程序是否加载完成判断是否继续执行算法子程序,同时直接存储器访问模块与神经网络处理器进行数据交互,实现依据算法子程序是否执行完毕判断是否继续加载算法子程序,具有算法子程序加载与执行能够并行处理的优点,采用一个存储资源模块和一个直接存储器访问模块结合的读取机制,减少辅助控制器与其他存储资源的使用,并且避免了读写错误的情况,节省了成本并且保持了处理器的性能。
请参阅图2,图2是本申请实施例公开的一种算法程序加载的方法的流程示意图,该方法用于神经网络处理器,如图2所示,该方法包括:
步骤201、确定所述第二存储资源的基本存储容量。
可选的,获取分割数值N,其中,N>1;获取第二存储资源,依据分割数值N将第二存储资源均匀分割,得到N个基本存储资源,确定基本存储资源的存储容量为基本存储容量。
步骤202、获取算法程序,判断所述算法程序的算法容量是否大于所述基本存储容量,若所述算法程序的算法容量大于所述基本存储容量,则以所述基本存储容量为单位对所述算法程序进行切割得到算法子程序。
可选的,获取双倍速率同步动态随机存储器中算法程序的算法容量,判断该算法容量是否大于基本存储容量,如算法容量大于基本存储容量,则向编译器发送切割请求,该切割请求用于请求编译器依据基本存储容量分割算法程序,得到M个算法子程序,M个算法子程序依次存储在双倍速率同步动态随机存储器中;如算法容量小于基本存储容量,则不进行切割并将算法程序存储在双倍速率同步动态随机存储器中。
步骤203、控制所述直接存储器访问模块将神经网络处理器的主控程序加载至所述第一存储资源中,执行所述主控程序。
可选的,控制直接存储器访问模块将神经网络处理器的主控程序加载至第一存储资源中,接收执行指令,依据执行指令启动神经网络处理器,指示神经网络处理器执行主控程序,并接收设定任务信息,依据设定任务信息解析任务参数,依据任务参数执行任务参数对应的任务,接收主控程序包含的任务指令,向直接存储器访问模块发布该任务指令,任务指令用于指示直接存储器访问模块将算法子程序从双倍速率同步动态随机存储器加载至存储资源。
步骤204、控制所述直接存储器访问模块将所述算法子程序中的第一算法子程序加载至所述第二存储资源中,确认所述第一算法子程序加载完毕,控制执行模块执行所述第一算法子程序,并行控制所述直接存储器访问模块加载第二算法子程序。
可选的,监测第一算法子程序的加载,确定第一算法子程序加载完毕后,控制执行模块开始执行第一算法子程序,第一算法子程序加载完毕后,获取第一任务配置,第一任务配置用于确定是否执行加载动作,依据第一任务配置确定第一任务配置是否包含加载动作,如第一任务配置不包含加载动作,则不发送脉冲信号,脉冲信号用于使变量的值加1,对第一任务配置进行监测至第一任务配置中包含加载动作;如第一任务配置包含加载动作,则向第二变量发送一个脉冲信号并令第二变量的值加1。
其中,获取所述算法子程序的个数M;判断所述个数M是否大于分割数值N,如所述个数M不大于所述分割数值N,如所述个数M大于所述分割数值N,确定所述第一算法子程序加载完毕,执行所述第一算法子程序,并行执行加载步骤直至第N个算法子程序加载完毕,所加载步骤包括:确定所述第x个算法子程序加载完毕,将所述第x+1个算法子程序加载至第x+1个基本存储资源中,其中,x为正整数且0<x<N;确定所述第N个算法子程序加载完毕,执行防溢出步骤,所述防溢出步骤包括:在加载第N+i个算法子程序之前,其中i>0,获取第一任务配置,如第一任务配置包含加载动作,则向第二变量发送一个脉冲信号并令第二变量的值加1并获取第一控制指令,第一控制指令用于判断是否向第一变量发送第一请求,判断第一控制指令中是否包含第一设定指令,如第一控制指令中包含第一设定指令,向第一变量发送第一请求,第一请求用于请求判断第一变量是否等于0,接收第一响应,判断第一响应中的信号是否为第一信号,第一信号用于表示第一变量不为0,如第一响应中的信号是第一信号,则加载所述第N+i个算法子程序至第i个基本存储资源中,并令第一变量减1;如第一响应中的信号不是第一信号,则暂定加载第N+i个算法子程序,对第一变量进行监测并接收第一响应,确定第一响应中包含第一信号后,加载第N+i个算法子程序。
其中,如所述个数M不大于所述分割数值N,确定所述第二算法子程序加载完毕,执行所述第一算法子程序,并行执行加载步骤直至第N个算法子程序加载完毕,所加载步骤包括:确定所述第x个算法子程序加载完毕,将所述第x+1个算法子程序加载至第x+1个基本存储资源中,其中,x为正整数且1<x<N。可选的,执行第一算法子程序之前,对第一算法子程序执行确认动作直至所有算法子程序执行结束,所述确认动作用于确定该算法子程序加载完毕。
其中,所述确认动作包括:假设第j个算法子程序执行完毕,神经网络处理器接收第二任务配置信息,依据第二任务配置确定第二任务配置是否包含执行算法动作,其中,执行动作用于判断是否继续执行算法子程序,如不包含执行算法动作,则对第二任务配置进行监测直至确定第二任务配置中包含执行算法动作;如第二任务配置中包含执行算法动作,向第一变量发送一个脉冲信号令第一变量的值加1;接收第二控制指令,第二控制指令用于判断是否向第二变量发送第二请求,判断第二控制指令中是否包含第二设定指令,如第二控制指令中包含第二设定指令,向第二变量发送第二请求,第二请求用于判断第二变量是否为0,接收第二响应,判断第二响应中的信号是否为第二信号,第二信号用于表示第二变量不为0,如第二响应中的信号是第二信号,则开始执行第j+1个算法子程序,令j=j+1,并令第二变量的值减1;如第二响应中的信号不是第二信号,则暂停执行算法子程序,对第二变量进行监测并接收第二响应,确定第二响应中包含第二信号后,开始执行第j+1个算法子程序,令j=j+1,并令第二变量的值减1。
可以看出,本申请实施例通过确定所述第二存储资源的基本存储容量;获取算法程序,判断算法程序的算法容量是否大于基本存储容量,若算法程序的算法容量大于基本存储容量,则以基本存储容量为单位对算法程序进行切割得到算法子程序;控制直接存储器访问模块将神经网络处理器的主控程序加载至第一存储资源中,执行主控程序,并行控制直接存储器访问模块将算法子程序加载至第二存储资源中;控制所述直接存储器访问模块将所述算法子程序中的第一算法子程序加载至所述第二存储资源中,确认所述第一算法子程序加载完毕,执行所述第一算法子程序并行加载第二算法子程序,具有算法子程序加载与执行能够并行处理的优点。
图3是本申请实施例提供的一种数据交互的流程示意图,该方法应用于神经网络处理器102与直接存储器访问模块103,如图3所示,该方法包括:
可选的,神经网络处理器102与直接存储器访问模块103进行数据交互,其中,数据交互的方式为:神经网络处理器102控制算法子程序的执行,每个算法子程序执行完毕后,对算法子程序执行确认动作。
其中,确认动作包括:神经网络处理器102接收第二任务配置信息,依据第二任务配置确定第二任务配置是否包含执行算法动作,如不包含执行算法动作,则对第二任务配置进行监测直至确定第二任务配置中包含执行算法动作;如第二任务配置中包含执行算法动作,向第一变量发送一个脉冲信号令第一变量的值加1;接收第二控制指令,判断第二控制指令中是否包含第二设定指令,如第二控制指令中包含第二设定指令,向第二变量发送第二请求,接收第二响应,判断第二响应中的信号是否为第二信号,第二信号用于表示第二变量不为0,如第二响应中的信号是第二信号,则控制执行模块开始执行第j+1个算法子程序,令j=j+1,令第二变量的值减1;如第二响应中的信号不是第二信号,则暂停执行算法子程序,对第二变量进行监测并接收第二响应,确定第二响应中包含第二信号后,控制执行模块开始执行第j+1个算法子程序,令j=j+1,令第二变量的值减1。
可以看出,通过神经网络处理器与直接存储器访问模块的数据交互,通过第一变量与第二变量的控制实现算法子程序的执行与暂停执行,避免了在执行算法子程序的过程中由于算法子程序未加载完毕导致算法子程序执行失败的情况。
图4是本申请实施例提供的另一种数据交互的流程示意图,该方法应用于直接存储器访问模块103和存储资源102,如图4所示,该方法包括:
可选的,直接存储器访问模块103与存储资源102进行数据交互,数据交互的方式为:直接存储器访问模块103获取双倍速率同步动态随机存储器中算法子程序的个数M,获取分割数值N,判断个数M是否大于分割数值N,如个数M不大于分割数值N,从双倍速率同步动态随机存储器中获取M个算法子程序,将M个算法子程序依次加载至第二存储资源的基本存储资源中;如个数M大于分割数值N,对所述算法子程序执行防溢出动作。
其中,防溢出动作包括:则将M个算法子程序的前N个算法子程序依次加载至基本存储资源中,其中,每个算法子程序加载完成后,获取第一任务配置,第一任务配置用于确定是否继续执行加载动作,依据第一任务配置确定第一任务配置是否包含加载动作,如第一任务配置不包含加载动作,则不发送脉冲信号,对第一任务配置进行监测至第一任务配置中包含加载动作;如第一任务配置包含加载动作,则向第二变量发送一个脉冲信号并令第二变量的值加1;在加载第N+i个算法子程序之前,其中i>0,获取第一任务配置,如第一任务配置包含加载动作,则向第二变量发送一个脉冲信号并令第二变量的值加1并获取第一控制指令,第一控制指令用于判断是否向第一变量发送第一请求,判断第一控制指令中是否包含第一设定指令,如第一控制指令中包含第一设定指令,向第一变量发送第一请求,接收第一响应,判断第一响应中的信号是否为第一信号,如第一响应中的信号是第一信号,则控制直接存储器访问模块加载所述第N+i个算法子程序至第i个基本存储资源中,并令第一变量减1;如第一响应中的信号不是第一信号,则暂定加载第N+i个算法子程序,对第一变量进行监测并接收第一响应,确定第一响应中包含第一信号后,控制直接存储器访问模块加载第N+i个算法子程序。
可以看出,通过直接存储器访问模块与存储资源的数据交互,通过第一变量与第二变量的控制实现算法子程序的加载与暂停加载,避免了在加载算法子程序的过程中出现覆盖和溢出的情况。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时包括上述方法实施例中记载的任何一种代码加载的方法的部分或全部步骤。
本申请实施例还提供一种计算机程序产品,其特征在于,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行包括上述方法实施例中记载的任何一种代码加载的方法的部分或全部步骤。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
本领域技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。计算机程序存储/分布在合适的介质中,与其它硬件一起提供或作为硬件的一部分,也可以采用其他分布形式,如通过Internet或其它有线或无线电信系统。
本申请是参照本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种算法程序加载的方法,其特征在于,所述方法用于神经网络处理器,所述神经网络处理器包括:存储资源、直接存储器访问模块、执行模块,所述存储资源包括:第一存储资源和第二存储资源,所述方法包括:
确定所述第二存储资源的基本存储容量;
获取算法程序,判断所述算法程序的算法容量是否大于所述基本存储容量,若所述算法程序的算法容量大于所述基本存储容量,则以所述基本存储容量为单位对所述算法程序进行切割得到算法子程序;
控制所述直接存储器访问模块将神经网络处理器的主控程序加载至所述第一存储资源中,控制执行模块执行所述主控程序;
控制所述直接存储器访问模块将所述算法子程序中的第一算法子程序加载至所述第二存储资源中,确认所述第一算法子程序加载完毕,控制所述执行模块执行所述第一算法子程序,并行控制所述直接存储器访问模块加载第二算法子程序。
2.根据权利要求1所述的方法,其特征在于,所述确定所述第二存储资源的基本存储容量包括:
获取分割数值N,其中,N>1;
获取所述第二存储资源;
依据所述分割数值N将所述第二存储资源均匀分割得到基本存储资源,确定所述基本存储资源的存储容量为所述基本存储容量。
3.根据权利要求1所述的方法,其特征在于,所述确认所述第一算法子程序加载完毕,控制所述执行模块执行所述第一算法子程序,行控制所述直接存储器访问模块加载第二算法子程序包括:
获取所述算法子程序的个数M;
判断所述个数M是否大于分割数值N,如所述个数M不大于所述分割数值N,确定所述第一算法子程序加载完毕,控制所述执行模块执行所述第一算法子程序,并行执行加载步骤直至第N个算法子程序加载完毕,所加载步骤包括:确定所述第x个算法子程序加载完毕,将所述第x+1个算法子程序加载至第x+1个基本存储资源中,其中,x为正整数且0<x<N。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
如所述个数M大于所述分割数值N,确定所述第一算法子程序加载完毕,控制所述执行模块执行所述第一算法子程序,执行加载步骤直至第N个算法子程序加载完毕,所加载步骤包括:确定所述第x个算法子程序加载完毕,将所述第x+1个算法子程序加载至第x+1个基本存储资源中,其中,x为正整数且0<x<N;
确定所述第N个算法子程序加载完毕,执行防溢出步骤,所述防溢出步骤包括:
在加载第N+i个算法子程序之前,其中i>0,获取第一任务配置,依据所述第一任务配置确定是否包含加载动作,如不包含所述加载动作,则不发送脉冲信号,对所述第一任务配置进行监测至所述第一任务配置包含所述加载动作;
如包含所述加载动作,则向第二变量发送一个脉冲信号令所述第二变量的值加1,获取第一控制指令,判断所述第一控制指令中是否包含第一设定指令,如包含所述第一设定指令,向第一变量发送第一请求,接收第一响应,判断所述第一响应中的信号是否为第一信号,如所述第一响应中的指令为第一信号,则控制直接存储器访问模块加载所述第N+i个算法子程序,并令所述第一变量减1;
如所述第一响应中的信号不为第一信号,则暂停加载所述第N+i个算法子程序,对所述第一变量进行监测并接收所述第一响应,确定所述第一响应中包含所述第一信号后,控制直接存储器访问模块加载所述第N+i个算法子程序。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
对所述第一算法子程序执行确认动作直至所述算法程序执行完毕,所述确认动作包括:
对所述第二存储资源中的第j个算法子程序,确定第j个算法子程序完成后,执行判断步骤,其中,j>0,所述判断步骤包括:
获取第二任务配置,依据所述第二任务配置确定是否包含执行算法动作,如不包含所述执行算法动作,则不发送脉冲信号,对所述第二任务配置进行监测至确定所述第二任务配置中包含所述执行算法动作;
如包含执行算法动作,则向所述第一变量发送一个脉冲信号令所述第一变量的值加1,获取第二控制指令,判断所述第二控制指令中是否包含第二设定指令,如包含所述第二设定指令,向所述第二变量发送第二请求,接收第二响应,判断所述第二响应中的信号是否为第二信号,如所述第二响应中的指令为第二信号,则控制执行模块开始执行第j+1个算法子程序,令j=j+1;
如所述第二响应中的指令不为第二信号,则暂停执行所述第j+1个算法子程序,对所述第二变量进行监测并接收所述第二响应,确定所述第二响应中包含所述第二信号后,控制执行模块开始执行所述第j+1个算法子程序并令j=j+1。
6.一种处理器,其特征在于,所述处理器包括主控处理器和神经网络处理器,其中:
所述主控处理器,用于确定第二存储资源模块的基本存储容量;判断算法程序的算法容量是否大于所述基本存储容量,若所述算法程序的算法容量大于所述基本存储容量,则以所述基本存储容量为单位对所述算法程序进行切割得到算法子程序,控制所述算法程序的加载与执行;
所述神经网络处理器包括存储资源模块、直接存储器访问模块和执行模块,用于执行主控程序,控制所述直接存储器访问模块将所述算法子程序中的第一算法子程序加载至所述第二存储资源中,确认所述第一算法子程序加载完毕,执行所述第一算法子程序并行加载第二算法子程序。
7.根据权利要求6所述的处理器,其特征在于,所述神经网络处理器包括存储资源模块、直接存储器访问模块和执行模块包括:
所述存储资源模块,包括第一存储资源模块和所述第二存储资源模块,其中,所述第一存储资源模块用于存储所述主控程序,所述第二存储资源模块用于存储所述算法子程序;
所述直接存储器访问模块,用于获取所述算法程序;将神经网络处理器的主控程序加载至所述第一存储资源模块中;将所述算法子程序加载至所述第二存储资源中;
所述执行模块,用于执行主控程序,执行算法程序。
8.一种芯片,其特征在于,所述芯片包括如权利要求6所述的处理器,所述芯片可操作来使计算机执行如权利要求1-5任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-5任一项所述的方法。
10.一种计算机程序产品,其特征在于,所述计算机程序产品包括存储了芯片与计算机程序的非瞬时性计算机可读存储介质,所述计算机程序可操作来使计算机执行如权利要求1-5任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811641790.6A CN109783157B (zh) | 2018-12-29 | 2018-12-29 | 一种算法程序加载的方法及相关装置 |
US17/257,302 US11144330B2 (en) | 2018-12-29 | 2019-11-28 | Algorithm program loading method and related apparatus |
PCT/CN2019/121523 WO2020134830A1 (zh) | 2018-12-29 | 2019-11-28 | 一种算法程序加载的方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811641790.6A CN109783157B (zh) | 2018-12-29 | 2018-12-29 | 一种算法程序加载的方法及相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109783157A true CN109783157A (zh) | 2019-05-21 |
CN109783157B CN109783157B (zh) | 2020-11-24 |
Family
ID=66499504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811641790.6A Active CN109783157B (zh) | 2018-12-29 | 2018-12-29 | 一种算法程序加载的方法及相关装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11144330B2 (zh) |
CN (1) | CN109783157B (zh) |
WO (1) | WO2020134830A1 (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110908667A (zh) * | 2019-11-18 | 2020-03-24 | 北京迈格威科技有限公司 | 神经网络联合编译的方法、装置和电子设备 |
CN111026120A (zh) * | 2019-12-20 | 2020-04-17 | 深圳市优必选科技股份有限公司 | 一种机器人及其数据加载方法和装置 |
WO2020134830A1 (zh) * | 2018-12-29 | 2020-07-02 | 深圳云天励飞技术有限公司 | 一种算法程序加载的方法及相关装置 |
CN112269606A (zh) * | 2020-11-12 | 2021-01-26 | 浙江大学 | 一种类脑计算机操作系统的应用处理程序动态加载方法 |
CN112711409A (zh) * | 2019-10-25 | 2021-04-27 | 杭州海康威视数字技术股份有限公司 | 应用程序开发、运行方法、系统及智能分析设备 |
CN114860353A (zh) * | 2022-05-31 | 2022-08-05 | 苏州浪潮智能科技有限公司 | 一种程序执行方法、系统、设备以及存储介质 |
CN115167325A (zh) * | 2022-08-23 | 2022-10-11 | 郑州华泰联合工业自动化有限公司 | 一种电缆智能化加工控制方法、系统、设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210064971A1 (en) * | 2019-08-29 | 2021-03-04 | Micron Technology, Inc. | Transfer data in a memory system with artificial intelligence mode |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114020A (zh) * | 2007-09-12 | 2008-01-30 | 电子科技大学 | 雷达信号处理中动态加载的asic实现方法 |
CN101770391A (zh) * | 2010-02-02 | 2010-07-07 | 北京航空航天大学 | 一种基于GPU的Cache模拟器及其时间并行加速模拟方法 |
CN102253919A (zh) * | 2011-05-25 | 2011-11-23 | 中国石油集团川庆钻探工程有限公司 | 基于gpu和cpu协同运算的并行数值模拟方法和系统 |
CN103377035A (zh) * | 2012-04-12 | 2013-10-30 | 浙江大学 | 针对粗颗粒度流应用的流水并行化方法 |
CN104267940A (zh) * | 2014-09-17 | 2015-01-07 | 武汉狮图空间信息技术有限公司 | 一种基于cpu+gpu的地图切片的快速生成方法 |
CN105653204A (zh) * | 2015-12-24 | 2016-06-08 | 华中科技大学 | 一种基于磁盘的分布式图计算方法 |
US20180336073A1 (en) * | 2017-05-22 | 2018-11-22 | Oracle International Corporation | Dynamic parallelization of data loading |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6920543B1 (en) * | 1999-12-14 | 2005-07-19 | Genesis Microchip, Inc. | Method and apparatus for performing distributed processing of program code |
US11836971B2 (en) * | 2018-08-23 | 2023-12-05 | Samsung Electronics Co., Ltd. | Method and device with convolution neural network processing |
CN109783157B (zh) * | 2018-12-29 | 2020-11-24 | 深圳云天励飞技术有限公司 | 一种算法程序加载的方法及相关装置 |
-
2018
- 2018-12-29 CN CN201811641790.6A patent/CN109783157B/zh active Active
-
2019
- 2019-11-28 WO PCT/CN2019/121523 patent/WO2020134830A1/zh active Application Filing
- 2019-11-28 US US17/257,302 patent/US11144330B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114020A (zh) * | 2007-09-12 | 2008-01-30 | 电子科技大学 | 雷达信号处理中动态加载的asic实现方法 |
CN101770391A (zh) * | 2010-02-02 | 2010-07-07 | 北京航空航天大学 | 一种基于GPU的Cache模拟器及其时间并行加速模拟方法 |
CN102253919A (zh) * | 2011-05-25 | 2011-11-23 | 中国石油集团川庆钻探工程有限公司 | 基于gpu和cpu协同运算的并行数值模拟方法和系统 |
CN103377035A (zh) * | 2012-04-12 | 2013-10-30 | 浙江大学 | 针对粗颗粒度流应用的流水并行化方法 |
CN104267940A (zh) * | 2014-09-17 | 2015-01-07 | 武汉狮图空间信息技术有限公司 | 一种基于cpu+gpu的地图切片的快速生成方法 |
CN105653204A (zh) * | 2015-12-24 | 2016-06-08 | 华中科技大学 | 一种基于磁盘的分布式图计算方法 |
US20180336073A1 (en) * | 2017-05-22 | 2018-11-22 | Oracle International Corporation | Dynamic parallelization of data loading |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020134830A1 (zh) * | 2018-12-29 | 2020-07-02 | 深圳云天励飞技术有限公司 | 一种算法程序加载的方法及相关装置 |
CN112711409A (zh) * | 2019-10-25 | 2021-04-27 | 杭州海康威视数字技术股份有限公司 | 应用程序开发、运行方法、系统及智能分析设备 |
CN110908667A (zh) * | 2019-11-18 | 2020-03-24 | 北京迈格威科技有限公司 | 神经网络联合编译的方法、装置和电子设备 |
CN110908667B (zh) * | 2019-11-18 | 2021-11-16 | 北京迈格威科技有限公司 | 神经网络联合编译的方法、装置和电子设备 |
CN111026120A (zh) * | 2019-12-20 | 2020-04-17 | 深圳市优必选科技股份有限公司 | 一种机器人及其数据加载方法和装置 |
CN111026120B (zh) * | 2019-12-20 | 2024-02-06 | 深圳市优必选科技股份有限公司 | 一种机器人及其数据加载方法和装置 |
CN112269606A (zh) * | 2020-11-12 | 2021-01-26 | 浙江大学 | 一种类脑计算机操作系统的应用处理程序动态加载方法 |
CN114860353A (zh) * | 2022-05-31 | 2022-08-05 | 苏州浪潮智能科技有限公司 | 一种程序执行方法、系统、设备以及存储介质 |
CN115167325A (zh) * | 2022-08-23 | 2022-10-11 | 郑州华泰联合工业自动化有限公司 | 一种电缆智能化加工控制方法、系统、设备及存储介质 |
CN115167325B (zh) * | 2022-08-23 | 2023-12-19 | 郑州华泰联合工业自动化有限公司 | 一种电缆智能化加工控制方法、系统、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109783157B (zh) | 2020-11-24 |
US11144330B2 (en) | 2021-10-12 |
WO2020134830A1 (zh) | 2020-07-02 |
US20210247987A1 (en) | 2021-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109783157A (zh) | 一种算法程序加载的方法及相关装置 | |
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
US10585726B2 (en) | Parameter-sharing apparatus and method | |
CN103870952B (zh) | 物流系统动态优先级调度方法和装置、及物流系统 | |
CN103365720B (zh) | 用于多线程环境下动态调整全局堆分配的方法和系统 | |
CN103399781B (zh) | 云服务器及其虚拟机管理方法 | |
CN105956666B (zh) | 一种机器学习方法及系统 | |
CN113821332B (zh) | 自动机器学习系统效能调优方法、装置、设备及介质 | |
CN112068957B (zh) | 资源分配方法、装置、计算机设备及存储介质 | |
CN112764893B (zh) | 数据处理方法和数据处理系统 | |
CN106775948A (zh) | 一种基于优先级的云任务调度方法及装置 | |
CN108205469A (zh) | 一种基于MapReduce的资源分配方法及服务器 | |
CN107341054A (zh) | 任务执行方法、装置及计算机可读存储介质 | |
CN103995778A (zh) | 一种基于事件和动作的脚本文件生成方法及其装置 | |
US20110185366A1 (en) | Load-balancing of processes based on inertia | |
CN103294482B (zh) | 用于PWscf并行计算系统的Web服务封装方法以及系统 | |
CN105874431A (zh) | 减少数据交换负载的计算系统以及相关的数据交换方法 | |
CN104216834B (zh) | 一种内存访问的方法、缓冲调度器和内存模块 | |
CN110942202A (zh) | 应急演练推演方法、计算机存储介质及电子设备 | |
CN107239334B (zh) | 处理不规则应用的方法及装置 | |
CN104239520B (zh) | 一种基于历史信息的hdfs数据块放置策略 | |
CN109784484A (zh) | 神经网络加速方法、装置、神经网络加速芯片及存储介质 | |
CN104281587B (zh) | 一种建立连接的方法及装置 | |
CN106961490A (zh) | 一种资源监控方法及系统、一种本地服务器 | |
CN102508720B (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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: 518000 1st floor, building 17, Shenzhen Dayun software Town, 8288 Longgang Avenue, Yuanshan street, Longgang District, Shenzhen City, Guangdong Province Patentee after: Shenzhen Yuntian lifeI Technology Co., Ltd Address before: 518000 1st floor, building 17, Shenzhen Dayun software Town, 8288 Longgang Avenue, Yuanshan street, Longgang District, Shenzhen City, Guangdong Province Patentee before: SHENZHEN INTELLIFUSION TECHNOLOGIES Co.,Ltd. |
|
CP01 | Change in the name or title of a patent holder |