CN114564150A - 动态链接模式片上存储器空间分配方法 - Google Patents

动态链接模式片上存储器空间分配方法 Download PDF

Info

Publication number
CN114564150A
CN114564150A CN202210185703.0A CN202210185703A CN114564150A CN 114564150 A CN114564150 A CN 114564150A CN 202210185703 A CN202210185703 A CN 202210185703A CN 114564150 A CN114564150 A CN 114564150A
Authority
CN
China
Prior art keywords
local memory
dynamic
variable
ldm
data
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
Application number
CN202210185703.0A
Other languages
English (en)
Other versions
CN114564150B (zh
Inventor
周文浩
何王全
沈莉
肖谦
武文浩
赵美佳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Wuxi Jiangnan Computing Technology Institute
Original Assignee
Wuxi Jiangnan Computing Technology Institute
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Wuxi Jiangnan Computing Technology Institute filed Critical Wuxi Jiangnan Computing Technology Institute
Priority to CN202210185703.0A priority Critical patent/CN114564150B/zh
Publication of CN114564150A publication Critical patent/CN114564150A/zh
Application granted granted Critical
Publication of CN114564150B publication Critical patent/CN114564150B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开一种动态链接模式片上存储器空间分配方法,包括以下步骤:在程序源文件中为需要优化的数据添加动态链接模式局部存储器数据关键字__ldm;编译器判断该局部存储器变量是否位于动态库中;对于动态库中的局部存储器变量,在链接脚本中为其设置单独的PT_LOAD段;对于动态库中的局部存储器变量,在动态链接器中修正局部存储器数据地址。本发明能够有效避免动态库中LDM变量地址相互冲突的问题,显著提升了异构众核AI处理器的好用性。

Description

动态链接模式片上存储器空间分配方法
技术领域
本发明涉及一种动态链接模式片上存储器空间分配方法,属于编译优化技术领域。
背景技术
AI处理器是专门用于处理人工智能应用中的大量计算任务的模块。不同于传统芯片,AI处理器规模更大,结构更加复杂,运算能力更强,目前已经广泛应用于图像识别、智能安防、智能驾驶、语音识别等领域。随着AI算法研究的不断深入,AI模型越来越复杂,计算数据量暴增,访存逐渐成为限制AI处理器运算速度的瓶颈。
业界通常采用高速片上存储器弥补片外存储器与处理器核心的速度差距;片上存储器一般包括高速缓冲存储器(Cache)和局部存储器(Local Device Memory,LDM),两者各具优势且存在互补性。异构众核AI处理器采用局部存储器(LDM)来弥补片外存储器和处理器的速度差距、提升访存性能;相比主存,LDM具有较高的访问速度,能够显著提升AI处理器训练和推理应用的性能;不同于高速缓冲存储器(Cache),局部存储器使用方式灵活,但是需要由编译器对其中的数据进行分配和管理。
传统科学计算应用通常采用静态链接方式,LDM数据从固定基址开始分配,管理方式较为简单,而新兴AI应用为了追求灵活性,通常采用动态链接方式构建,各动态库中都可能存在LDM变量,因此无法采用固定基址分配方式进行管理。
发明内容
本发明的目的是提供一种动态链接模式片上存储器空间分配方法,基于异构众核AI处理器,能够有效避免动态库中LDM变量地址相互冲突的问题,显著提升了异构众核AI处理器的好用性。
为达到上述目的,本发明提供一种动态链接模式片上存储器空间分配方法,包括以下步骤:
S1、在程序源文件中为需要优化的数据添加动态链接模式局部存储器数据关键字__ldm,具体如下:
S11、分析程序行为,找到程序运行过程中频繁访问的热点数据;
S12、对于S11中找到的热点数据,为其添加局部存储器数据关键字__ldm,该关键字位于头文件slave.h中;
S2、编译器判断该局部存储器变量是否位于动态库中,具体如下:
S21、编译器根据编译选项中是否包含-fPIC,确定S1中的局部存储器数据是否位于动态库中;
S22、若编译选项中包含-fPIC,表明该局部存储器变量位于动态库中,为该局部存储器变量设置.dl_ldm段属性;
S23、若编译选项中不包含-fPIC,表明该局部存储器变量位于静态库或可执行文件中,为该局部存储器变量设置.ldm段属性;
S3、对于动态库中的局部存储器变量,在链接脚本中为其设置单独的PT_LOAD段,具体为:对于具有.dl_ldm段属性的变量,链接脚本中为其设置单独的PT_LOAD段;
S4、对于动态库中的局部存储器变量,在动态链接器中修正局部存储器数据地址,具体如下:
S41、对于.dl_ldm段,动态链接器在加载动态库的过程中,通过mmap系统调用为其分配私有段空间地址;
S42、对于.dl_ldm段中的变量,动态链接器在重定位回填的过程中,修正其地址;
S43、对于非动态链接模式的局部存储变量,按照静态链接方式对其进行管理。
由于上述技术方案的运用,本发明与现有技术相比具有下列优点:
本发明提供了一种动态链接模式片上存储器空间分配方法,其在基于异构众核AI处理器的编译器中实现空间分配,为多个动态库中的LDM变量分配不同的地址空间,能够有效避免动态库中LDM变量地址相互冲突的问题,显著提升了异构众核AI处理器的好用性。
附图说明
附图1为本发明片存储器空间分配方法流程图。
具体实施方式
实施例:本发明提供一种动态链接模式片上存储器空间分配方法,流程如图1所示,主要包括:在源文件中添加局部存储器数据关键字__ldm,判断局部存储器变量是否位于动态库中,在链接脚本中为局部存储器数据设置单独的PT_LOAD段,在动态链接器中修正局部存储器数据地址四个步骤,具体为:
S1、在程序源文件中为需要优化的数据添加动态链接模式局部存储器数据关键字__ldm,具体如下:
S11、分析程序行为,找到程序运行过程中频繁访问的热点数据;
S12、对于S11中找到的热点数据,为其添加局部存储器数据关键字__ldm,该关键字位于头文件slave.h中,具体定义如下:
#define__ldm__attribute__((section(".ldm")));
S2、编译器判断该局部存储器变量是否位于动态库中,具体如下:
S21、编译器根据编译选项中是否包含-fPIC,确定S1中的局部存储器数据是否位于动态库中,具体代码如下:
Figure BDA0003523301350000031
S22、若编译选项中包含-fPIC,表明该局部存储器变量位于动态库中,为该局部存储器变量设置.dl_ldm段属性;
S23、若编译选项中不包含-fPIC,表明该局部存储器变量位于静态库或可执行文件中,为该局部存储器变量设置.ldm段属性;
S3、对于动态库中的局部存储器变量,在链接脚本中为其设置单独的PT_LOAD段,具体如下:
S31、对于具有.dl_ldm段属性的变量,链接脚本中为其设置单独的PT_LOAD段,具体代码如下:
Figure BDA0003523301350000032
S4、对于动态库中的局部存储器变量,在动态链接器中修正局部存储器数据地址,具体如下:
S41、对于.dl_ldm段,动态链接器在加载动态库的过程中,通过mmap系统调用为其分配私有段空间地址,具体代码如下:
Figure BDA0003523301350000033
Figure BDA0003523301350000041
S42、对于.dl_ldm段中的变量,动态链接器在重定位回填的过程中,修正其地址,具体代码如下:
Figure BDA0003523301350000042
S43、对于非动态链接模式的局部存储变量,按照静态链接方式对其进行管理。
为了便于更好的理解本发明,下面将对本文中使用的术语进行简要的解释:
AI处理器:专门用于处理人工智能应用中的大量计算任务的处理器;
动态链接:在可执行文件装载时或运行时,由操作系统的装载程序加载库;
异构众核:采用新型的片上异构融合体系结构;
深度神经网络:有很多隐藏层的神经网络,又称为深度前馈网络或多层感知机;
局部存储器:Local Device Memory,简称为局存,片上存储器的一种,位于主存和CPU之间,由SRAM组成,容量小但速度快,需要由编译器进行空间分配和管理。
采用上述动态链接模式片上存储器空间分配方法时,其在基于异构众核AI处理器的编译器中实现空间分配,为多个动态库中的LDM变量分配不同的地址空间,能够有效避免动态库中LDM变量地址相互冲突的问题,显著提升了异构众核AI处理器的好用性。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。

Claims (1)

1.一种动态链接模式片上存储器空间分配方法,其特征在于:包括以下步骤:
S1、在程序源文件中为需要优化的数据添加动态链接模式局部存储器数据关键字__ldm,具体如下:
S11、分析程序行为,找到程序运行过程中频繁访问的热点数据;
S12、对于S11中找到的热点数据,为其添加局部存储器数据关键字__ldm,该关键字位于头文件slave.h中;
S2、编译器判断该局部存储器变量是否位于动态库中,具体如下:
S21、编译器根据编译选项中是否包含-fPIC,确定S1中的局部存储器数据是否位于动态库中;
S22、若编译选项中包含-fPIC,表明该局部存储器变量位于动态库中,为该局部存储器变量设置.dl_ldm段属性;
S23、若编译选项中不包含-fPIC,表明该局部存储器变量位于静态库或可执行文件中,为该局部存储器变量设置.ldm段属性;
S3、对于动态库中的局部存储器变量,在链接脚本中为其设置单独的PT_LOAD段,具体为:对于具有.dl_ldm段属性的变量,链接脚本中为其设置单独的PT_LOAD段;
S4、对于动态库中的局部存储器变量,在动态链接器中修正局部存储器数据地址,具体如下:
S41、对于.dl_ldm段,动态链接器在加载动态库的过程中,通过mmap系统调用为其分配私有段空间地址;
S42、对于.dl_ldm段中的变量,动态链接器在重定位回填的过程中,修正其地址;
S43、对于非动态链接模式的局部存储变量,按照静态链接方式对其进行管理。
CN202210185703.0A 2022-02-28 2022-02-28 动态链接模式片上存储器空间分配方法 Active CN114564150B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210185703.0A CN114564150B (zh) 2022-02-28 2022-02-28 动态链接模式片上存储器空间分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210185703.0A CN114564150B (zh) 2022-02-28 2022-02-28 动态链接模式片上存储器空间分配方法

Publications (2)

Publication Number Publication Date
CN114564150A true CN114564150A (zh) 2022-05-31
CN114564150B CN114564150B (zh) 2024-03-22

Family

ID=81715407

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210185703.0A Active CN114564150B (zh) 2022-02-28 2022-02-28 动态链接模式片上存储器空间分配方法

Country Status (1)

Country Link
CN (1) CN114564150B (zh)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103995705A (zh) * 2014-06-04 2014-08-20 中国科学院信息工程研究所 一种操作系统地址空间随机化分配系统及方法
US20180081650A1 (en) * 2016-09-22 2018-03-22 Qualcomm Innovation Center, Inc. Link time program optimization in presence of a linker script
CN112306678A (zh) * 2020-10-22 2021-02-02 中国海洋大学 一种基于异构众核处理器的算法并行处理方法及系统
CN112528288A (zh) * 2019-08-30 2021-03-19 华为技术有限公司 可信应用的运行方法、信息处理和内存分配方法及装置
CN112540936A (zh) * 2019-09-23 2021-03-23 无锡江南计算技术研究所 面向异构众核架构的离散访存读写方法
CN112650539A (zh) * 2019-09-26 2021-04-13 无锡江南计算技术研究所 面向异构众核处理器的动态链接运行支撑方法
CN113204377A (zh) * 2020-01-31 2021-08-03 华为技术有限公司 一种动态链接库的加载方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103995705A (zh) * 2014-06-04 2014-08-20 中国科学院信息工程研究所 一种操作系统地址空间随机化分配系统及方法
US20180081650A1 (en) * 2016-09-22 2018-03-22 Qualcomm Innovation Center, Inc. Link time program optimization in presence of a linker script
CN112528288A (zh) * 2019-08-30 2021-03-19 华为技术有限公司 可信应用的运行方法、信息处理和内存分配方法及装置
CN112540936A (zh) * 2019-09-23 2021-03-23 无锡江南计算技术研究所 面向异构众核架构的离散访存读写方法
CN112650539A (zh) * 2019-09-26 2021-04-13 无锡江南计算技术研究所 面向异构众核处理器的动态链接运行支撑方法
CN113204377A (zh) * 2020-01-31 2021-08-03 华为技术有限公司 一种动态链接库的加载方法及装置
CN112306678A (zh) * 2020-10-22 2021-02-02 中国海洋大学 一种基于异构众核处理器的算法并行处理方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘勇;陆林生;何王全;: "一种简便的栈式片上内存动态管理方法", 计算机工程与科学, no. 09 *

Also Published As

Publication number Publication date
CN114564150B (zh) 2024-03-22

Similar Documents

Publication Publication Date Title
US20200249998A1 (en) Scheduling computation graph heterogeneous computer system
Randell et al. Dynamic storage allocation systems
US9015683B2 (en) Method and apparatus for transforming program code
US4991088A (en) Method for optimizing utilization of a cache memory
US5802341A (en) Method for the dynamic allocation of page sizes in virtual memory
JP3299611B2 (ja) 資源割付装置
KR20170124995A (ko) 자율 메모리 아키텍처
CN108647155B (zh) 一种基于深度学习的多级cache共享的方法和装置
WO2021232769A1 (zh) 一种存储数据的方法及数据处理装置
US6334212B1 (en) Compiler
CN114564150B (zh) 动态链接模式片上存储器空间分配方法
US9229959B2 (en) Object graph partial immutability and isolation enforcement
US6625806B1 (en) Language processing method and language processing system improving use efficiency of cache memory
KR20210106635A (ko) 가속기, 가속기의 동작 방법 및 이를 포함한 가속기 시스템
WO2008016515A2 (en) Extreme virtual memory
KR102356704B1 (ko) 컴퓨팅 장치 및 컴퓨팅 장치에서 연산들을 처리하는 방법
CN112712167A (zh) 支持多种卷积神经网络加速的存储器访问方法及系统
Barack et al. Effectiveness of code refactoring techniques for energy consumption in a mobile environment
US5671431A (en) Method for processing user program on a parallel computer system by inserting a tag during compiling
CN112416607B (zh) 一种提升Cache命中率的方法、系统、设备及介质
Feeley Lazy remote procedure call and its implementation in a parallel variant of C
US11416652B2 (en) System and method for predicting a physical and/or chemical phenomenon by means of a shared memory segment
Yu et al. Hierarchical Read/Write Analysis for Pointer-Based OpenCL Programs on RRAM
US20210255792A1 (en) System and method for efficiently converting low-locality data into high-locality data
KR100912114B1 (ko) 디지털 신호처리 프로세서에서 효과적인 데이터 전송을위한 메모리 운용 방법

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