-
公开(公告)号:CN112527299A
公开(公告)日:2021-03-19
申请号:CN201910879798.4
申请日:2019-09-18
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种针对异构众核的链接时优化方法,包括以下步骤:S11、编译器对加速核心代码进行处理,将生成的GIMPLE中间表示信息写入object文件中以“.gnu.lto_+函数名”为段名的ELF段中;S12、编译器链接时,将加速核心object文件链接到一起,并读取加速核心object文件中所有函数的GIMPLE中间表示信息;S13、编译器将S12中读取的所有函数的GIMPLE中间表示信息作为一个编译单元,进行链接时优化,生成加速核心汇编代码;S14、编译器调用加速核心汇编器生成的可直接由链接器进行链接的加速核心object文件;S15、编译器调用异构融合的链接器,将所有的控制核心object文件与S14中获得的加速核心object文件链接在一起,生成可执行码,完成链接。本发明针对加速核心代码进行链接时优化,能够减小异构程序可执行码大小,提高异构程序整体运行性能。
-
公开(公告)号:CN112445724A
公开(公告)日:2021-03-05
申请号:CN201910805599.9
申请日:2019-08-29
Applicant: 无锡江南计算技术研究所
IPC: G06F12/0802 , G06F15/78
Abstract: 本发明公开一种针对片上存储器重用的链接时地址分配方法,包括以下步骤:S1、在编译器上构建片上存储器的重用段类型,生成片上存储器的访存模式;S2、在执行S1中操作的同时,对链接脚本进行配置;S31、链接器对S2中所述的链接脚本进行信息扫描,进入链接器的重用处理函数;S32、从二进制文件格式描述符文件中获取段信息;S33、循环处理S32中获取的段信息,识别并找出重用段;S34、解析出S12中所述的重用段属性的数据结构中所带的重用段名字,对满足同一个重用段名字的段分配相同的虚拟内存地址;S35、从S32中获取的段信息中找出最大的段,用作该重用段空间分配时的空间大小。本发明通过链接时地址分配方法实现空间重用,有效提高片上存储器的空间利用率、提升程序性能。
-
公开(公告)号:CN112445581A
公开(公告)日:2021-03-05
申请号:CN201910799253.2
申请日:2019-08-28
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种针对异构众核的快速线程启动方法,包括以下步骤:S1、控制核心进行线程信息初始化的工作;S2、控制核心获取加速核心上将要运行的线程函数的PC值、参数等信息;S3、控制核心根据异构众核的结构特征选择传输方式;S4、控制核心写入线程信息并置传输标志;S5、控制核心进入等待线程结束的状态;S6、加速核心进入等待传输标志的状态;S7、加速核心启动传输操作;S8、启动线程函数执行;S9、各加速核心的线程函数执行完毕后,进行加速核心间的同步操作;S10、通知控制核心线程函数已执行结束;S11、控制核心进行线程回收操作。本发明实现了快速的线程启动与回收,减少了控制核心和加速核心在线程启动交互过程中的访存和控制开销,为应用程序的高效执行奠定了基础。
-
公开(公告)号:CN112445520A
公开(公告)日:2021-03-05
申请号:CN201910794939.2
申请日:2019-08-27
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种针对循环内条件转移指令的转移预测优化方法,包括以下步骤:S11、判断一次循环内的指令条数是否能够满足带条件标记的运算指令在带条件转移标志位的条件转移指令之前至少提前N条的条件;S12、如果满足条件,编译器直接生成汇编代码,如果不满足,编译器根据循环体代码量与条件N计算需要循环展开的次数,进行循环展开,生成汇编代码;S13、带条件标记的运算指令提前改变条件转移指令的转移标志位;S14、条件转移指令根据对应的条件标记位进行判断,如果成立,则处理器根据条件转移标记指示跳转取指,否则顺序取指;S15、不论预测为跳转还是不跳转,条件标记位使用后即作废,转移指令条件标记位清0。本发明能够规避循环最后一次转移带来的性能损失。
-
公开(公告)号:CN112445481A
公开(公告)日:2021-03-05
申请号:CN201910794940.5
申请日:2019-08-27
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种低功耗的寄存器分配编译优化方法,包括以下步骤:S1、分析程序的热点函数和循环段;S2、统计热点代码段中依赖关系语句执行频率;S3、登记存在依赖关系语句中临时变量的生存周期;S4、关闭针对该依赖关系语句性能相关的指令调度优化,防止因为考虑流水线性能而进行的指令调度;S5、对每个依赖关系的临时变量进行基本块内的生存周期分析;S6、对每个依赖关系的临时变量进行跨基本块的生存周期分析;S7、遍历所有基本块,对标记为可低功耗优化的临时变量追踪其定义和使用点(define&use);S8、进行W_set指令循环外提优化。本发明在一定程度上优化系统运行功耗,且软硬件开发成本低,对降低功耗的方法简单直接,在考虑性能的前提下,最大限度的挖掘寄存器低功耗潜力。
-
公开(公告)号:CN105242962A
公开(公告)日:2016-01-13
申请号:CN201510828182.6
申请日:2015-11-24
Applicant: 无锡江南计算技术研究所
Abstract: 本发明提供了一种基于异构众核的轻量级线程快速触发方法,包括:在轻量级线程库中编写异构众核的多线程程序,其中多线程程序在轻量级线程库中的创建和回收以显式的接口来调用,然后完成多线程程序代码的编译,生成一个异构融合的可执行代码;运行该可执行码;其中,首先执行在主处理器上运行的程序加载器,再将可执行代码作为参数传入给程序加载器;程序加载器将整个当做一个文件读入,然后解析出符合ELF格式的段信息,并将其写入内存的相应位置,并完成程序执行环境变量的配置。
-
公开(公告)号:CN102880497A
公开(公告)日:2013-01-16
申请号:CN201210372306.0
申请日:2012-09-28
Applicant: 无锡江南计算技术研究所
Abstract: 本发明实施例公开了一种编译器及软件管理存储器的重用优化方法,用于对软件管理存储器进行重用优化,实现软件管理存储器的空间重用分配。本发明实施例中的编译器包括:分析模块,用于根据待写入软件管理存储器的变量的排布方式增加关键字,将关键字及变量的信息发送给编译模块;编译模块,用于识别关键字,为关键字设置重用标识;对设置了重用标识的关键字对应的变量生成具有重用特征的代码形式,将具有重用特征的代码形式发送给链接模块;链接模块,用于根据具有重用特征的代码形式生成临时链接脚本,对临时链接脚本进行链接处理,并进行重用变量的排布,实现软件管理存储器的空间重用分配。
-
-
-
-
-
-