CN114564150A - 动态链接模式片上存储器空间分配方法 - Google Patents
动态链接模式片上存储器空间分配方法 Download PDFInfo
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 67
- 238000000034 method Methods 0.000 title claims abstract description 21
- 230000003068 static effect Effects 0.000 claims description 7
- 230000006399 behavior Effects 0.000 claims description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
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
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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/0614—Improving the reliability of 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to storage systems
-
- 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)
- 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中的局部存储器数据是否位于动态库中,具体代码如下:
S22、若编译选项中包含-fPIC,表明该局部存储器变量位于动态库中,为该局部存储器变量设置.dl_ldm段属性;
S23、若编译选项中不包含-fPIC,表明该局部存储器变量位于静态库或可执行文件中,为该局部存储器变量设置.ldm段属性;
S3、对于动态库中的局部存储器变量,在链接脚本中为其设置单独的PT_LOAD段,具体如下:
S31、对于具有.dl_ldm段属性的变量,链接脚本中为其设置单独的PT_LOAD段,具体代码如下:
S4、对于动态库中的局部存储器变量,在动态链接器中修正局部存储器数据地址,具体如下:
S41、对于.dl_ldm段,动态链接器在加载动态库的过程中,通过mmap系统调用为其分配私有段空间地址,具体代码如下:
S42、对于.dl_ldm段中的变量,动态链接器在重定位回填的过程中,修正其地址,具体代码如下:
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、对于非动态链接模式的局部存储变量,按照静态链接方式对其进行管理。
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)
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 | 华为技术有限公司 | 一种动态链接库的加载方法及装置 |
-
2022
- 2022-02-28 CN CN202210185703.0A patent/CN114564150B/zh active Active
Patent Citations (7)
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)
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 |