CN113568845A - 一种基于强化学习的内存地址映射方法 - Google Patents
一种基于强化学习的内存地址映射方法 Download PDFInfo
- Publication number
- CN113568845A CN113568845A CN202110862708.8A CN202110862708A CN113568845A CN 113568845 A CN113568845 A CN 113568845A CN 202110862708 A CN202110862708 A CN 202110862708A CN 113568845 A CN113568845 A CN 113568845A
- Authority
- CN
- China
- Prior art keywords
- address mapping
- bim
- memory address
- network model
- neural network
- 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
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/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/12—Replacement control
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- 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/04—Architecture, e.g. interconnection topology
- G06N3/047—Probabilistic or stochastic networks
-
- 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/08—Learning methods
-
- 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 Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Probability & Statistics with Applications (AREA)
- Memory System (AREA)
Abstract
本发明公布了一种基于强化学习的内存地址映射方法,建立基于地址映射矩阵BIM交换的强化学习神经网络模型,并使用策略梯度的方法有效地训练模型,通过强化学习对不同的程序自动找到内存地址映射。采用本发明提供方法,可以对不同的程序自动找到最合适的映射方法,能够克服现有方法不能根据不同的程序自动做出调整,且需要依靠专业人士的经验来设计,不能达到自动的效果的不足。
Description
技术领域
本发明涉及内存地址的映射方法,具体涉及一种基于强化学习的内存地址映射方法,可根据不同应用特点使用不同的内存地址映射,提高访存的性能。
背景技术
软件程序中使用的地址为逻辑地址,而访问内存时实际需要的地址则为物理地址。因此,当程序用逻辑地址访问内存时,需要按照一定的映射关系,将逻辑地址先转换为物理地址。这一步地址转换操作是由内存控制器完成的,即程序运行时将需要访问的逻辑地址发到内存控制器,内存控制器根据一定的映射关系将它转换成物理地址,然后用物理地址访问内存。
内存控制器采用不同的地址映射策略会对访存的性能造成很大影响。原因与内存的组织结构有关。内存被组织为很多个bank,bank之间是可以并行工作的,每个bank有很多行(row),每行有很多列(column)。如果内存访问都被映射到了少量的几个bank内的物理地址,则其他本来可以并行工作的bank就没有被充分利用,自然会导致性能的下降。而如果对于同一个 bank的访问经常需要跨不同的行,则行与行之间的切换也会造成非常大的开销。以上这些因素导致了,如何进行恰当的地址映射一直是个很重要的问题。
现有的地址映射方法基本都是根据经验设计的,缺乏根据当前情况进行灵活调整的能力。例如,Xilinx memory interface generator(mig, https://www.xilinx.com/products/intellectual-proper ty/mig.html)中提供的BRC(Bank-Row-Column)的内存地址映射方式是固定将逻辑地址的高位映射到物理地址的bank ID,低位映射到物理地址的column ID,中间的位映射到物理地址的row ID;Row-Bank-Column则固定将逻辑地址的高中低位分别映射到物理地址的row ID, bank ID,column ID。这样固定的映射方法对于某些程序可能比较高效,但对于另一些程序则效果不佳,不能自动抓住程序的特点定制地址映射策略。
发明内容
本发明的目的是提供一种基于强化学习的内存地址映射方法,通过新的内存地址映射方法,使得对于给定的程序,可通过强化学习自动找到合适的地址映射方法。
为了便于说明,本文约定:“BIM”(binary invertible matrix)表示用于地址映射的矩阵,即内存的物理地址(向量)=BIM(内存地址映射矩阵)*内存逻辑地址(向量)。
本发明的核心是:本发明是一种基于强化学习的地址映射方法,通过强化学习自动找到合适的地址映射。采用本发明提供方法,采用基于BIM的交换建立模型,并使用策略梯度的方法有效地训练模型,可以对不同的程序自动找到最合适的映射方法,能够克服现有方法不能根据不同的程序自动做出调整,且需要依靠专业人士的经验来设计,不能达到自动的效果的不足。对于给定的程序,首先初始化地址映射矩阵BIM,随机初始化用于强化学习的神经网络模型。之后,每次将BIM输入该神经网络,该神经网络会选择BIM的两行进行交换,用交换后的BIM运行该程序,和交换前的性能进行比较。如果使用交换后的BIM运行的性能更好,则用交换后的BIM替换之前的BIM。此外,每次交换后都使用策略梯度(policygradient) 的方法更新神经网络模型。多次重复交换BIM的两行运行程序的迭代过程,直到性能收敛或达到指定的迭代次数,就得到了合适的内存地址映射方法。
本发明提供的技术方案如下:
一种基于强化学习的内存地址映射方法,包括如下步骤:
1)建立内存地址映射神经网络模型;
具体实施时,建立内存地址映射神经网络模型可以采用一个拥有两个全连接层的网络结构模型,在网络模型的第二层后面接一个softmax层,网络模型的输入是内存地址映射矩阵 BIM,网络模型的输出是每一行被交换的概率,根据输出的概率采样出两行进行交换,由此构建得到内存地址映射神经网络模型。
2)训练内存地址映射神经网络模型;包括:
21)强化学习初始化;
强化学习初始化过程包括初始化地址映射矩阵BIM和用于内存地址映射的强化学习神经网络模型;
A1.初始化BIM;
A2.随机初始化用于强化学习内存地址映射神经网络模型;
22)强化学习内存地址映射神经网络模型,得到训练好的内存地址映射神经网络模型;
每次将BIM输入该神经网络,执行如下操作:
B1.该神经网络输出BIM的两行进行交换;
B2.用交换后的BIM运行该程序,和交换前的性能比较,如果交换后的性能更好,则会用交换后的BIM替换之前的BIM;
B3.用policy gradient的方法更新神经网络;
B4.如果性能还未收敛并且未达到指定的迭代次数上限,则继续迭代步骤B。
3)在需要为给定的程序学习合适的内存地址映射方法时,利用训练好的内存地址映射神经网络模型,针对给定程序学习得到相应的内存地址映射,从而提高程序运行性能。
与现有技术相比,本发明的有益效果:
本发明提供一种基于强化学习的内存地址映射方法,定义用于地址映射的矩阵“BIM”,内存的物理地址(向量)=BIM(内存地址映射矩阵)*内存逻辑地址(向量);建立内存地址映射神经网络模型,将BIM输入内存地址映射神经网络模型,对神经网络进行强化学习训练。利用本发明提供的技术方案,可以针对不同程序的特点,自动生成合适的内存地址映射方法,从而使访存的性能得到提高。
附图说明
图1本发明提供的基于强化学习的内存地址映射方法中的强化学习初始化的流程框图。
图2本发明提供方法的强化学习内存地址映射网络模型的训练过程的流程框图。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
本发明提供一种基于强化学习的内存地址映射方法,通过强化学习自动找到合适的地址映射。
本发明的具体实施方式如下:
A.在需要为给定的程序学习合适的内存地址映射方法时,首先执行如下操作(如图1 所示):
A1.初始化BIM,初始化的矩阵可以是单位矩阵、BRC(Bank-Row-Column)的内存地址映射方式对应的矩阵、RBC(Row-Bank-Column)的内存地址映射方式对应的矩阵等。
其中,在以下的具体实施例中详细描述了BRC和RBC对应的矩阵。
A2.随机初始化用于强化学习的神经网络模型,初始化的分布可以是高斯分布、均
匀分布等;
B.每次将BIM输入该神经网络,执行如下操作(如图2所示):
B1.该神经网络输出BIM的两行进行交换;
B2.用交换后的BIM运行该程序,和交换前的性能比较。衡量性能的方法可以根据用户的需求灵活选择,例如,如果仅追求更高的吞吐量,则可以仅将吞吐量作为性能的指标;如果需要综合考虑能耗和吞吐量,则可以将Energy-Delay-Product(EDP)作为性能的指标。如果交换后的性能更好,则会用交换后的BIM替换之前的BIM;
B3.用policy gradient的方法更新神经网络;
B4.如果性能还未收敛并且未达到指定的迭代次数上限,则继续迭代步骤B。是否收敛由用户定义的指标来判断,例如,在连续N次迭代中性能的提升在X以下(N和X 均由用户指定),则判断性能已经收敛。
下面通过实例对本发明做进一步说明。
实施例1:
针对采用的逻辑地址和物理地址均为8位的计算机,其中物理地址的高2位,中间2位,低4位分别表示为bank ID,row ID,column ID。
某程序访问的逻辑地址序列为01000110,01111001,01011010,01100101,01110010。如果固定采用Bank-Row-Column的映射方式,即相当于采用单位矩阵作为BIM,则五次访问的bank ID均为01,row ID分别为00,11,01,10,11。在这种情况下,由于五次访问都落在了同一个bank里,bank之间的并行性没有得到利用,会导致性能降低。并且,五次访问一直在同一个bank的不同行之间来回切换,行与行之间的切换也会导致很大的额外开销。这些都会导致Bank-Row-Column的映射方式效果不佳。
本发明采用我基于强化学习的映射方法,具体实施时,我们初始化一个2层全连接层接一个softmax层的网络,每次迭代将当前BIM输入网络,该网络输出BIM的两行进行交换,如果交换后的性能比交换前好,则用交换后的BIM替换之前的BIM。并且,用策略梯度的方法更新网络权重。在若干次自动迭代后,BIM会收敛到Row-Bank-Column的形式,即用逻辑地址的高2位表示row ID,中间2位表示bank ID,低4位表示column ID。对应的矩阵如下所示:
在这种情况下,五次访问的bankID分别为00,11,01,10,11,row ID则均为01。由于五次访问分散在了所有的四个bank里,bank的并行度得到了充分利用;而映射到同一个bank里的两个地址(01111001和01110010),它们访问的行的row ID也均为01,这样就也省去了行与行之间切换的开销。因此,通过强化学习的方式学到了适合该应用的地址映射方式。
如果采用Row-Bank-Column的映射形式,也同样会有不适用于某些程序的情况。但不管是什么样的程序,采用本发明的基于强化学习的内存地址映射方法,都可以自动地学习到最适合的映射方式,从而达到优异的内存访存性能。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (5)
1.一种基于强化学习的内存地址映射方法,其特征是,建立基于地址映射矩阵BIM交换的强化学习神经网络模型,并使用策略梯度的方法有效地训练模型,通过强化学习对不同的程序自动找到内存地址映射;模型训练包括:
首先初始化地址映射矩阵BIM和随机初始化创建的强化学习神经网络模型;
每次将BIM输入该神经网络模型,通过该神经网络模型选择BIM的两行进行交换,用交换后的BIM运行程序,并与交换前的性能进行比较;
如果使用交换后的BIM运行程序的性能更好,则用交换后的BIM替换之前的BIM;且每次交换后均使用策略梯度方法更新强化学习神经网络模型;
多次重复上述交换BIM的两行运行程序的迭代过程,直到性能收敛或达到设定迭代次数,即实现基于强化学习的内存地址映射。
2.如权利要求1所述基于强化学习的内存地址映射方法,其特征是,包括如下步骤:
1)建立基于地址映射矩阵BIM交换的强化学习神经网络模型,即内存地址映射神经网络模型;
具体采用具有两个全连接层结构的网络模型,在该网络模型的第二层后面接一个softmax层;该网络模型的输入是内存地址映射矩阵BIM,该网络模型的输出是内存地址映射矩阵BIM的每一行被交换的概率,根据输出的概率采样出BIM的两行用于进行交换,由此构建得到内存地址映射神经网络模型;
2)训练所述内存地址映射神经网络模型;包括:
21)强化学习初始化,包括:初始化地址映射矩阵BIM和随机初始化内存地址映射神经网络模型;
初始化BIM为单位矩阵、BRC(Bank-Row-Column)的内存地址映射方式对应的矩阵或RBC(Row-Bank-Column)的内存地址映射方式对应的矩阵;
随机初始化内存地址映射神经网络模型中,初始化的分布采用高斯分布或均匀分布;
22)强化学习内存地址映射神经网络模型,得到训练好的内存地址映射神经网络模型;
每次将BIM输入该神经网络,执行如下操作:
B1.该神经网络输出BIM的两行进行交换;
B2.用交换后的BIM运行该程序,和交换前的性能比较,如果交换后的性能更好,则用交换后的BIM替换之前的BIM;
B3.用策略梯度方法更新内存地址映射神经网络模型;
B4.如果性能还未收敛并且未达到设定的迭代次数上限,则继续迭代步骤B;
3)在需要为给定程序学习合适的内存地址映射方法时,利用训练好的内存地址映射神经网络模型,针对给定程序学习得到相应的内存地址映射,从而提高程序运行性能。
3.如权利要求2所述基于强化学习的内存地址映射方法,其特征是,步骤B2进行性能比较,比较的性能指标可采用吞吐量指标或综合能耗和吞吐量的EDP指标。
4.如权利要求2所述基于强化学习的内存地址映射方法,其特征是,初始化地址映射矩阵BIM具体采用Bank-Row-Column的映射方式,采用单位矩阵作为BIM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110862708.8A CN113568845B (zh) | 2021-07-29 | 2021-07-29 | 一种基于强化学习的内存地址映射方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110862708.8A CN113568845B (zh) | 2021-07-29 | 2021-07-29 | 一种基于强化学习的内存地址映射方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113568845A true CN113568845A (zh) | 2021-10-29 |
CN113568845B CN113568845B (zh) | 2023-07-25 |
Family
ID=78168823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110862708.8A Active CN113568845B (zh) | 2021-07-29 | 2021-07-29 | 一种基于强化学习的内存地址映射方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113568845B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114942895A (zh) * | 2022-06-22 | 2022-08-26 | 福州大学 | 一种基于强化学习的地址映射策略设计方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382087A (zh) * | 2018-12-28 | 2020-07-07 | 华为技术有限公司 | 一种内存管理方法及电子设备 |
CN111858396A (zh) * | 2020-07-27 | 2020-10-30 | 福州大学 | 一种存储器自适应地址映射方法及系统 |
US20210012199A1 (en) * | 2019-07-04 | 2021-01-14 | Zhejiang University | Address information feature extraction method based on deep neural network model |
CN112597362A (zh) * | 2020-12-07 | 2021-04-02 | 吉林农业科技学院 | 一种基于大数据的地址匹配方法及其系统 |
US20210117806A1 (en) * | 2019-06-27 | 2021-04-22 | Advanced Micro Devices, Inc. | Composable neural network kernels |
-
2021
- 2021-07-29 CN CN202110862708.8A patent/CN113568845B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382087A (zh) * | 2018-12-28 | 2020-07-07 | 华为技术有限公司 | 一种内存管理方法及电子设备 |
US20210117806A1 (en) * | 2019-06-27 | 2021-04-22 | Advanced Micro Devices, Inc. | Composable neural network kernels |
US20210012199A1 (en) * | 2019-07-04 | 2021-01-14 | Zhejiang University | Address information feature extraction method based on deep neural network model |
CN111858396A (zh) * | 2020-07-27 | 2020-10-30 | 福州大学 | 一种存储器自适应地址映射方法及系统 |
CN112597362A (zh) * | 2020-12-07 | 2021-04-02 | 吉林农业科技学院 | 一种基于大数据的地址匹配方法及其系统 |
Non-Patent Citations (1)
Title |
---|
王超;王芷阳;沈聪;: "基于强化学习的无线网络自组织性研究", 中国科学技术大学学报, no. 12, pages 45 - 60 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114942895A (zh) * | 2022-06-22 | 2022-08-26 | 福州大学 | 一种基于强化学习的地址映射策略设计方法 |
CN114942895B (zh) * | 2022-06-22 | 2024-06-04 | 福州大学 | 一种基于强化学习的地址映射策略设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113568845B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yang et al. | Differential evolution with auto-enhanced population diversity | |
WO2019127363A1 (zh) | 神经网络权重编码方法、计算装置及硬件系统 | |
EP3712819B1 (en) | Technologies for performing efficient memory augmented neural network update operations | |
CN105303450A (zh) | 基于谱聚类改进交叉的复杂网络社区发现方法 | |
CN109791628A (zh) | 神经网络模型分块压缩方法、训练方法、计算装置及系统 | |
CN113568845A (zh) | 一种基于强化学习的内存地址映射方法 | |
CN114511021A (zh) | 基于改进乌鸦搜索算法的极限学习机分类算法 | |
CN106502964A (zh) | 一种基于Spark的极限学习机并行化计算方法 | |
Zhang et al. | A reference direction and entropy based evolutionary algorithm for many-objective optimization | |
CN107957975A (zh) | 一种计算方法及相关产品 | |
CN110912718A (zh) | 一种降低异构三维片上网络布图功耗的方法 | |
CN111461284A (zh) | 数据离散化方法、装置、设备及介质 | |
CN109146172B (zh) | 一种气候变化应对策略的多主体建模方法 | |
CN104580518A (zh) | 一种用于存储系统的负载均衡控制方法 | |
CN114648232A (zh) | 基于改进黑猩猩优化算法的云端化资源柔性作业调度方法 | |
CN117155791A (zh) | 基于集群拓扑结构的模型部署方法、系统、设备及介质 | |
KR20180005844A (ko) | 메모리 관리 시스템 및 그 방법 | |
CN112559751A (zh) | 一种基于单片机的动态字库优化方法 | |
CN105376185B (zh) | 一种通信系统中基于dna蛙跳方法优化的常模盲均衡处理方法 | |
CN116050235A (zh) | 一种云边环境下工作流数据布局的方法及存储介质 | |
CN116149567A (zh) | 基于忆阻器的存算一体化系统及在线深度学习方法 | |
CN107977231A (zh) | 一种计算方法及相关产品 | |
CN113449152B (zh) | 图数据预取器及预取方法 | |
US20220214977A1 (en) | System and Method for Altering Memory Accesses Using Machine Learning | |
CN106934453A (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 |