CN114741332A - 内存访问方法和装置、计算设备及存储介质 - Google Patents
内存访问方法和装置、计算设备及存储介质 Download PDFInfo
- Publication number
- CN114741332A CN114741332A CN202210240090.6A CN202210240090A CN114741332A CN 114741332 A CN114741332 A CN 114741332A CN 202210240090 A CN202210240090 A CN 202210240090A CN 114741332 A CN114741332 A CN 114741332A
- Authority
- CN
- China
- Prior art keywords
- memory
- target
- memory block
- information
- operator
- 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
- 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
-
- 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
-
- 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
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Executing Machine-Instructions (AREA)
Abstract
本发明提供一种内存访问方法和装置、计算设备及存储介质,其中内存访问方法包括:确定目标算子,并根据预设参数量拆分目标算子得到拆分算子,确定拆分算子中的多个参数的内存资源,根据内存资源确定第一内存块信息以及确定参数的第二内存块信息,依据第一内存块信息和第二内存块信息生成目标信息集合,其中,目标信息集合包括目标内存块信息,根据目标信息集合确定内存访问指令集合,并根据内存访问指令集合访问内存。通过拆分算子中的多个参数的内存资源确定第一内存块信息以及第二内存块信息,依据第一内存块信息和第二内存块信息生成确定内存访问指令集合以访问内存,提高了指令密度。
Description
技术领域
本发明涉及数据处理技术领域,特别涉及一种内存访问方法。
背景技术
目前,深度神经网络的参数量越来越大,可以到大几十兆甚至上百兆,即使经过量化后参数量也依然很大,这就给NPU的带宽设计带来了很大挑战,使得NPU的带宽很难跟上其计算速度,这在很大程度上限制了NPU的推理能力。
现有的NPU的内存(缓存)设计一般都是设计成多个块(内存块),然后在每个内存块上读操作和写操作存在时间上的互斥,不能同时进行。因此NPU也进行了类似现代CPU的流水线设计来提供解决途径,同时又为了降低指令的长度,只允许配置指令同步的内存块id来同步不同的指令队列。这样软件在生成指令时就必须充分利用这一特性,尽可能的切分算子参数加载指令和算子计算指令,保证在不同的内存块上流水线的写和读神经网络的参数。现有的方法NPU的指令并行密度低,以至于NPU的推理能力低。
发明内容
有鉴于此,本发明提供了一种内存访问方法。本发明书一个或者多个实施例同时涉及一种内存访问装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
根据本发明的第一方面,提供了一种内存访问方法,包括:
确定目标算子,并根据预设参数量拆分目标算子得到拆分算子;
确定拆分算子中的多个参数的内存资源;
根据内存资源确定第一内存块信息以及确定参数的第二内存块信息;
依据第一内存块信息和第二内存块信息生成目标信息集合,其中,目标信息集合包括目标内存块信息;
根据目标信息集合确定内存访问指令集合,并根据内存访问指令集合访问内存。
在一种可能的实现方式中,根据预设参数量拆分目标算子得到拆分算子,包括:
根据目标硬件的计算单元的预设参数量拆分目标算子得到拆分算子。
在一种可能的实现方式中,确定拆分算子中的多个参数的内存资源,包括:
为拆分算子中的每个参数分配至少一个内存块资源。
在一种可能的实现方式中,根据内存资源确定第一内存块信息以及确定参数的第二内存块信息,包括:
根据拆分算子中的每个参数对应的内存块资源,生成第一掩码和第一标识信息,其中,第一掩码中的比特位与内存块资源相对应;
根据参数对应的内存块资源生成每个参数对应的第二掩码和第二标识信息。
在一种可能的实现方式中,依据第一内存块信息和第二内存块信息生成目标信息集合,包括:
遍历第二掩码,将第一掩码和当前的第二掩码按预设规则进行计算,得到目标内存块信息;
在遍历结束的情况下,所有目标内存块信息构成目标信息集合。
在一种可能的实现方式中,根据目标信息集合确定内存访问指令集合,包括:
遍历目标信息集合,根据目标内存块信息确定目标内存块;
根据目标内存块生成指令信息;
根据指令信息生成内存访问指令;
在遍历结束的情况下,所有内存访问指令构成内存访问指令集合。
在一种可能的实现方式中,根据内存访问指令集合访问内存,包括:
将内存访问指令集合中设定位置的内存访问指令的执行标识配置到计算指令中,以使基于内存访问指令集合中的内存访问指令访问内存。
根据本发明的第二方面,提供了一种内存访问装置,包括:
拆分模块,被配置为确定目标算子,并根据预设参数量拆分目标算子得到拆分算子;
资源分配模块,被配置为确定拆分算子中的多个参数的内存资源;
信息确定模块,被配置为根据内存资源确定第一内存块信息以及确定参数的第二内存块信息;
目标信息确定模块,被配置为依据第一内存块信息和第二内存块信息生成目标信息集合,其中,目标信息集合包括目标内存块信息;
指令生成模块,被配置为根据目标内存块信息确定内存访问指令集合,并根据内存访问指令集合访问内存。
根据本发明的第三方面,提供了一种计算设备,包括:
存储器和处理器;
存储器用于存储计算机可执行指令,处理器用于执行计算机可执行指令,该计算机可执行指令被处理器执行时实现上述内存访问方法的步骤。
根据本发明的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述内存访问方法的步骤。
根据本发明的第五方面,提供了一种计算机程序,其中,当计算机程序在计算机中执行时,令计算机执行上述内存访问方法的步骤。
本发明提供一种内存访问方法以及装置,其中内存访问方法包括:确定目标算子,并根据预设参数量拆分目标算子得到拆分算子,确定拆分算子中的多个参数的内存资源,根据内存资源确定第一内存块信息以及确定参数的第二内存块信息,依据第一内存块信息和第二内存块信息生成目标信息集合,其中,目标信息集合包括目标内存块信息,根据目标信息集合确定内存访问指令集合,并根据内存访问指令集合访问内存。通过拆分算子中的多个参数的内存资源确定第一内存块信息以及确定参数的第二内存块信息,依据第一内存块信息和第二内存块信息生成确定内存访问指令集合以访问内存,提高了指令密度,从而提高了NPU的推理能力。
附图说明
图1是本发明书一个实施例提供的一种内存访问方法的流程图;
图2是本发明书一个实施例提供的一种内存访问方法的队列示意图;
图3是本发明书一个实施例提供的一种内存访问方法的处理过程流程图;
图4是本发明书一个实施例提供的一种内存访问装置的结构示意图;
图5是本发明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本发明书。但是本发明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明书内涵的情况下做类似推广,因此本发明书不受下面公开的具体实施的限制。
在本发明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明书一个或多个实施例。在本发明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本发明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,对本发明书一个或多个实施例涉及的名词术语进行解释。
掩码:掩码是一串二进制代码对目标字段进行位与运算,屏蔽当前的输入位。
内存(Memory):是计算机的重要部件之一,也称内存储器和主存储器,它用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
嵌入式神经网络处理器(NPU):采用“数据驱动并行计算”的架构,特别擅长处理视频、图像类的海量多媒体数据。
数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
id(Identity document),是身份证标识号、账号、唯一编码、专属号码、工业设计、国家简称、法律词汇、通用账户、译码器、软件公司等各类专有词汇的缩写。
链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
在本发明书中,提供了一种内存访问方法,本发明书同时涉及一种内存访问装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
参见图1,图1示出了根据本发明书一个实施例提供的一种内存访问方法的流程图,具体包括以下步骤。
步骤102:确定目标算子,并根据预设参数量拆分目标算子得到拆分算子。
在一种可能的实现方式中,根据预设参数量拆分目标算子得到拆分算子,包括:
根据目标硬件的计算单元的预设参数量拆分目标算子得到拆分算子。
例如,参见图2,创建一个空的队列Q,其需要的元素e为一个数据结构S,S包含一个整数n和n对mask与id,按照NPU算子的计算单元所需的最小参数量拆分算子。比如计算单元是按照channel方向切分的块状粒度,这样就可以把原来的算子按照channel方向的最小粒度切分成对应多个算子,对应的参数量也相应的被切分开来,这样就可能使得原来的整个算子计算过程由加载大参数+计算大算子变成连续多个加载小参数+计算小算子的流水操作,加载下一个小算子的参数过程就和计算当前小算子并行起来了。
步骤104:确定拆分算子中的多个参数的内存资源。
在一种可能的实现方式中,确定拆分算子中的多个参数的内存资源,包括:
为拆分算子中的每个参数分配至少一个内存块资源。
沿用上例,根据拆分后的算子为其参数分配整数倍的内存块,尽可能的给每个算子的参数分配出不同的内存块。这里采用两条链表管理内存块,链表A用于存储可用的内存块,链表B用于存储已分配的内存块。链表A用首位交替分配原则,一旦A中的内存不足时,就及时从B中释放出最旧的已用内存节点,并把这个内存节点按照内存偏移大小插入到A中,可以的话并跟相邻的节点进行合并,如果A中内存仍然不够用,就继续重复这个过程,直到分配成功或整个内存都不够返回失败。
步骤106:根据内存资源确定第一内存块信息以及确定参数的第二内存块信息。
在一种可能的实现方式中,根据内存资源确定第一内存块信息以及确定参数的第二内存块信息,包括:
根据拆分算子中的每个参数对应的内存块资源,生成第一掩码和第一标识信息,其中,第一掩码中的比特位与内存块资源相对应。
根据参数对应的内存块资源生成每个参数对应的第二掩码和第二标识信息。
沿用上例,根据算子参数分配的内存块,计算出一个mask(掩码)与一个id(syncid),mask的每个bit对应一个内存块,使用到的内存块的对应bit标记为1,没有用到的bit标记为0。id表示成用到的第一个内存块在总内存块数中的标识。计算当前算子的参数对应的mask与id。
步骤108:依据第一内存块信息和第二内存块信息生成目标信息集合,其中,目标信息集合包括目标内存块信息。
在一种可能的实现方式中,,包括:依据第一内存块信息和第二内存块信息生成目标信息集合,包括:
遍历第二掩码,将第一掩码和当前的第二掩码按预设规则进行计算,得到目标内存块信息。
在遍历结束的情况下,所有目标内存块信息构成目标信息集合。
沿用上例,实例化另一个掩码r等于mask,实例化S的一个对象s,初始其中的n为0,从队列Q中从前往后遍历每个元素中的每一对mask与id,如果当前算子的mask与遍历中元素e的每一个mask进行位与得到c,如果c不为0,则s中增加一对mask与id,mask赋值为c,id赋值为元素e中最后一个id,s中的n加1,r和c的按位取反数进行位与运算得到新的r,同时队列Q中队首变为e的下一个元素,遍历完Q后如果s中的n依然为0,则把当前算子的mask与id加入s中,令s中的n等于1。否则如果r不为0,则把r合并到跟r紧挨着的s中的那个mask中。
步骤110:根据目标信息集合确定内存访问指令集合,并根据内存访问指令集合访问内存。
在一种可能的实现方式中,根据目标信息集合确定内存访问指令集合,包括:
遍历目标信息集合,根据目标内存块信息确定目标内存块。
根据目标内存块生成指令信息。
根据指令信息生成内存访问指令。
在遍历结束的情况下,所有内存访问指令构成内存访问指令集合。
沿用上例,遍历s中的mask和id,计算出mask对应的内存块,换算成参数中对应offset和size,把id作为指令同步id生成对应参数部分的加载指令。
在一种可能的实现方式中,根据内存访问指令集合访问内存,包括:
将内存访问指令集合中设定位置的内存访问指令的执行标识配置到计算指令中,以使基于内存访问指令集合中的内存访问指令访问内存。
沿用上例,把s中的最后一个id配置到相应的计算指令中,生成计算指令,这样就可以保证当前计算指令依赖于前面对应的分拆后加载指令。
本发明提供一种内存访问方法,内存访问方法包括:确定目标算子,并根据预设参数量拆分目标算子得到拆分算子,确定拆分算子中的多个参数的内存资源,根据内存资源确定第一内存块信息以及确定参数的第二内存块信息,依据第一内存块信息和第二内存块信息生成目标信息集合,其中,目标信息集合包括目标内存块信息,根据目标信息集合确定内存访问指令集合,并根据内存访问指令集合访问内存。通过拆分算子中的多个参数的内存资源确定第一内存块信息以及确定参数的第二内存块信息,依据第一内存块信息和第二内存块信息生成确定内存访问指令集合以访问内存,提高了指令密度,从而提高了NPU的推理能力。
参见图3,图3示出了本发明书一个实施例提供的一种内存访问方法的处理过程流程图,具体包括以下步骤。
步骤302:创建队列。
步骤304:取出网络层中需要参数的算子放入队列。
步骤306:根据最小参数量拆分算子。
步骤308:为拆分算子分配内存块。
步骤310:计算内存块对应的掩码和标识。
步骤312:遍历队列中算子的掩码,生成内存块对应的元素,将元素插入队列的队尾,更新队列的队首。
步骤314:遍历当前内存块的元素的掩码,生成对应的加载指令和拆分算子的计算指令。
步骤316:拆分算子是否遍历完成。若是,执行步骤318,若否,执行步骤308。
步骤318:网络层是否遍历完成。若是,执行步骤320,若否,执行步骤304。
步骤320:结束。
本发明提供一种内存访问方法,通过遍历队列中算子的掩码,生成内存块对应的元素,将元素插入队列的队尾,更新队列的队首,遍历当前内存块的元素的掩码,生成对应的加载指令和拆分算子的计算指令,提高了指令密度,从而提高了NPU的推理能力。
与上述方法实施例相对应,本发明书还提供了内存访问装置实施例,图4示出了本发明书一个实施例提供的一种内存访问装置的结构示意图。如图4所示,该装置包括:
拆分模块402,被配置为确定目标算子,并根据预设参数量拆分目标算子得到拆分算子。
资源分配模块404,被配置为确定拆分算子中的多个参数的内存资源。
信息确定模块406,被配置为根据内存资源确定第一内存块信息以及确定参数的第二内存块信息。
目标信息确定模块408,被配置为依据第一内存块信息和第二内存块信息生成目标信息集合,其中,目标信息集合包括目标内存块信息。
指令生成模块410,被配置为根据目标内存块信息确定内存访问指令集合,并根据内存访问指令集合访问内存。
可选地,拆分模块402,进一步被配置为:
根据目标硬件的计算单元的预设参数量拆分目标算子得到拆分算子。
可选地,资源分配模块404,进一步被配置为:
为拆分算子中的每个参数分配至少一个内存块资源。
可选地,信息确定模块406,进一步被配置为:
根据拆分算子中的每个参数对应的内存块资源,生成第一掩码和第一标识信息,其中,第一掩码中的比特位与内存块资源相对应。
根据参数对应的内存块资源生成每个参数对应的第二掩码和第二标识信息。
可选地,目标信息确定模块408,进一步被配置为:
遍历第二掩码,将第一掩码和当前的第二掩码按预设规则进行计算,得到目标内存块信息。
在遍历结束的情况下,所有目标内存块信息构成目标信息集合。
可选地,指令生成模块410,进一步被配置为:
遍历目标信息集合,根据目标内存块信息确定目标内存块。
根据目标内存块生成指令信息。
根据指令信息生成内存访问指令。
在遍历结束的情况下,所有内存访问指令构成内存访问指令集合。
可选地,指令生成模块410,进一步被配置为:
将内存访问指令集合中设定位置的内存访问指令的执行标识配置到计算指令中,以使基于内存访问指令集合中的内存访问指令访问内存。
本发明提供一种内存访问装置,该装置确定目标算子,并根据预设参数量拆分目标算子得到拆分算子,确定拆分算子中的多个参数的内存资源,根据内存资源确定第一内存块信息以及确定参数的第二内存块信息,依据第一内存块信息和第二内存块信息生成目标信息集合,其中,目标信息集合包括目标内存块信息,根据目标信息集合确定内存访问指令集合,并根据内存访问指令集合访问内存。通过拆分算子中的多个参数的内存资源确定第一内存块信息以及确定参数的第二内存块信息,依据第一内存块信息和第二内存块信息生成确定内存访问指令集合以访问内存,提高了指令密度,从而提高了NPU的推理能力。
上述为本实施例的一种内存访问装置的示意性方案。需要说明的是,该内存访问装置的技术方案与上述的内存访问方法的技术方案属于同一构思,内存访问装置的技术方案未详细描述的细节内容,均可以参见上述内存访问方法的技术方案的描述。
图5示出了根据本发明书一个实施例提供的一种计算设备500的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器520与存储器510通过总线530相连接,数据库550用于保存数据。
计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(PSTN)、局域网(LAN)、广域网(WAN)、个域网(PAN)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC))中的一个或多个,诸如IEEE802.11无线局域网(WLAN)无线接口、全球微波互联接入(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC)接口,等等。
在本发明书的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本发明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备500还可以是移动式或静止式的服务器。
其中,处理器520用于执行如下计算机可执行指令,该计算机可执行指令被处理器执行时实现上述内存访问方法的步骤。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的内存访问方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述内存访问方法的技术方案的描述。
本发明书一实施例还提供一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现上述内存访问方法的步骤。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的内存访问方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述内存访问方法的技术方案的描述。
本发明书一实施例还提供一种计算机程序,其中,当计算机程序在计算机中执行时,令计算机执行上述内存访问方法的步骤。
上述为本实施例的一种计算机程序的示意性方案。需要说明的是,该计算机程序的技术方案与上述的内存访问方法的技术方案属于同一构思,计算机程序的技术方案未详细描述的细节内容,均可以参见上述内存访问方法的技术方案的描述。
上述对本发明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
计算机指令包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本发明书优选实施例只是用于帮助阐述本发明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为的具体实施方式。显然,根据本发明的内容,可作很多的修改和变化。本发明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明书。本发明书仅受权利要求书及其全部范围和等效物的限制。
Claims (10)
1.一种内存访问方法,其特征在于,包括:
确定目标算子,并根据预设参数量拆分所述目标算子得到拆分算子;
确定所述拆分算子中的多个参数的内存资源;
根据所述内存资源确定第一内存块信息以及确定所述参数的第二内存块信息;
依据所述第一内存块信息和所述第二内存块信息生成目标信息集合,其中,所述目标信息集合包括目标内存块信息;
根据所述目标信息集合确定内存访问指令集合,并根据所述内存访问指令集合访问内存。
2.根据权利要求1所述的方法,其特征在于,所述根据预设参数量拆分所述目标算子得到拆分算子,包括:
根据目标硬件的计算单元的预设参数量拆分所述目标算子得到拆分算子。
3.根据权利要求1所述的方法,其特征在于,所述确定所述拆分算子中的多个参数的内存资源,包括:
为所述拆分算子中的每个参数分配至少一个内存块资源。
4.根据权利要求3所述的方法,其特征在于,所述根据所述内存资源确定第一内存块信息以及确定所述参数的第二内存块信息,包括:
根据所述拆分算子中的每个参数对应的所述内存块资源,生成第一掩码和第一标识信息,其中,所述第一掩码中的比特位与所述内存块资源相对应;
根据所述参数对应的所述内存块资源生成每个参数对应的第二掩码和第二标识信息。
5.根据权利要求4所述的方法,其特征在于,所述依据所述第一内存块信息和所述第二内存块信息生成目标信息集合,包括:
遍历所述第二掩码,将所述第一掩码和当前的第二掩码按预设规则进行计算,得到所述目标内存块信息;
在所述遍历结束的情况下,所有所述目标内存块信息构成所述目标信息集合。
6.根据权利要求1所述的方法,其特征在于,所述根据所述目标信息集合确定内存访问指令集合,包括:
遍历所述目标信息集合,根据所述目标内存块信息确定目标内存块;
根据所述目标内存块生成指令信息;
根据所述指令信息生成内存访问指令;
在所述遍历结束的情况下,所有所述内存访问指令构成所述内存访问指令集合。
7.根据权利要求6所述的方法,其特征在于,所述根据所述内存访问指令集合访问内存,包括:
将所述内存访问指令集合中设定位置的内存访问指令的执行标识配置到计算指令中,以使基于所述内存访问指令集合中的内存访问指令访问内存。
8.一种内存访问装置,包括:
拆分模块,被配置为确定目标算子,并根据预设参数量拆分所述目标算子得到拆分算子;
资源分配模块,被配置为确定所述拆分算子中的多个参数的内存资源;
信息确定模块,被配置为根据所述内存资源确定第一内存块信息以及确定所述参数的第二内存块信息;
目标信息确定模块,被配置为依据所述第一内存块信息和所述第二内存块信息生成目标信息集合,其中,所述目标信息集合包括目标内存块信息;
指令生成模块,被配置为根据所述目标内存块信息确定内存访问指令集合,并根据所述内存访问指令集合访问内存。
9.一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至7任意一项所述内存访问方法的步骤。
10.一种计算机可读存储介质,其存储有计算机可执行指令,该计算机可执行指令被处理器执行时实现权利要求1至7任意一项所述内存访问方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210240090.6A CN114741332A (zh) | 2022-03-12 | 2022-03-12 | 内存访问方法和装置、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210240090.6A CN114741332A (zh) | 2022-03-12 | 2022-03-12 | 内存访问方法和装置、计算设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114741332A true CN114741332A (zh) | 2022-07-12 |
Family
ID=82275213
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210240090.6A Pending CN114741332A (zh) | 2022-03-12 | 2022-03-12 | 内存访问方法和装置、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114741332A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858184A (zh) * | 2023-03-03 | 2023-03-28 | 浪潮电子信息产业股份有限公司 | 一种rdma内存管理方法、装置、设备及介质 |
-
2022
- 2022-03-12 CN CN202210240090.6A patent/CN114741332A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115858184A (zh) * | 2023-03-03 | 2023-03-28 | 浪潮电子信息产业股份有限公司 | 一种rdma内存管理方法、装置、设备及介质 |
CN115858184B (zh) * | 2023-03-03 | 2023-05-02 | 浪潮电子信息产业股份有限公司 | 一种rdma内存管理方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021052460A1 (zh) | 数据处理方法、模型优化装置和模型执行装置 | |
US20190279088A1 (en) | Training method, apparatus, chip, and system for neural network model | |
US11321625B2 (en) | Quantum circuit optimization using machine learning | |
CN111357019B (zh) | 通过对权重矩阵实施空间局部性并实现频率压缩来压缩(多个)深度网络的全连接/递归层 | |
CN106852185A (zh) | 基于字典的并行压缩编码器 | |
CN105446896A (zh) | 映射化简应用的缓存管理方法和装置 | |
CN111143039B (zh) | 一种虚拟机的调度方法、装置及计算机存储介质 | |
CN111768004A (zh) | 一种基于智能计算框架的模型自适应方法及系统 | |
CN108304376B (zh) | 文本向量的确定方法、装置、存储介质及电子装置 | |
WO2020207410A1 (zh) | 一种数据压缩方法、电子设备及存储介质 | |
CN111340220A (zh) | 用于训练预测模型的方法和装置 | |
CN114741332A (zh) | 内存访问方法和装置、计算设备及存储介质 | |
CN109302449B (zh) | 数据写入方法、数据读取方法、装置和服务器 | |
US11829799B2 (en) | Distributed resource-aware training of machine learning pipelines | |
CN113408704A (zh) | 数据处理方法、装置、设备及计算机可读存储介质 | |
CN112396166A (zh) | 基于混合粒度聚合器的图卷积神经网络训练方法及装置 | |
CN115809688B (zh) | 一种模型调试方法、装置、电子设备及存储介质 | |
CN115840765A (zh) | 基于规则引擎的数据处理方法及装置 | |
CN115828992A (zh) | 处理神经网络模型的方法 | |
CN115202879A (zh) | 基于多类型智能模型的云边协同调度方法及应用 | |
CN110021166B (zh) | 用于处理用户出行数据的方法、装置和计算设备 | |
CN113657136A (zh) | 识别方法及装置 | |
CN117764206B (zh) | 一种多模型集成方法及系统 | |
WO2022199261A1 (zh) | 一种模型推荐的方法、装置和计算机设备 | |
Tao et al. | Wireless Network Digital Twin for 6G: Generative AI as A Key Enabler |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |