-
公开(公告)号: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指令循环外提优化。本发明在一定程度上优化系统运行功耗,且软硬件开发成本低,对降低功耗的方法简单直接,在考虑性能的前提下,最大限度的挖掘寄存器低功耗潜力。
-
公开(公告)号:CN114217804B
公开(公告)日:2025-05-16
申请号:CN202110324723.7
申请日:2021-03-26
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种支持多格式半精度浮点的编译方法,包括以下步骤:S1、用户代码使用编译器提供的float16关键字来申明半精度浮点数据类型;S2、用户代码根据需要调用半精度浮点数据格式切换接口进行格式切换;S3、用户代码在切换半精度浮点数据格式后,调用编译器提供的半精度浮点数据转换接口进行数据格式转换;S4、在完成半精度浮点数据格式切换与数据转换后,用户程序在当前半精度浮点格式下进行后续的计算,需要再次切换半精度浮点格式时重复S2、S3。本发明可以在不增加代码编写复杂度的前提下发挥FP16和BF16两种半精度浮点格式的优势,满足应用场景使用半精度浮点加速计算的需求。
-
公开(公告)号:CN115271084B
公开(公告)日:2024-08-30
申请号:CN202210933691.5
申请日:2022-08-04
Applicant: 无锡江南计算技术研究所
Abstract: 一种面向量子加速设备的混合式编译方法,属于量子计算技术领域。本发明包括如下步骤:步骤S1,通过标准化的量子代码编程接口,对混合代码中的经典代码与量子代码进行识别;步骤S2,对经典代码进行编译,生成可执行码;步骤S3,运行经典代码的可执行码,若遇到量子代码编程接口,则进行步骤S4,并在接收到步骤S5的运行结果后,继续运行并重复本步骤的操作,直至整个计算进程结束;步骤S4,对量子代码进行编译,生成可执行码;步骤S5,运行量子代码的可执行码。本发明操作简单高效,易于实现,同时可靠性高。
-
公开(公告)号:CN112527300B
公开(公告)日:2023-06-13
申请号:CN201910879803.1
申请日:2019-09-18
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种面向多目标的细粒度编译自调优方法,包括以下步骤:S1、根据用户需求,确定编译优化的目标;S2、进行代码核心段标识,即对程序的执行时间进行拆分,并按照程序的执行时间长短对程序内的核心段函数进行排序,根据设定的阈值n,选取程序的执行时间最长的若干核心段函数;S3、对代码进行插桩,根据编译优化的目标,选择对应的插桩接口,用于量化评估编译优化效果;S4、修改配置文件,并启动自调优操作;S5、对调优结果的历史信息进行聚类分析,修改迭代过程的启发式策略。本发明能够挖掘编译优化选项的性能潜力,提高编译器的用户友好性,缩短用户进行应用调优的学习曲线。
-
公开(公告)号:CN115687154A
公开(公告)日:2023-02-03
申请号:CN202211487167.6
申请日:2022-11-25
Applicant: 无锡江南计算技术研究所
IPC: G06F11/36
Abstract: 本发明提供一种基于Csmith随机生成器生成C程序测试用例的方法及装置,属于C程序测试技术领域。该方法包括如下步骤:S1:获取预设概率信息表,通过预设概率信息表获取预设参数;S2:生成器根据预设参数进行初始化;S3:生成器基于初始化信息生成包括main函数、变量类型、其他函数的测试用例程序,在生成main函数时输出测试用例程序的辅助信息;S4:过滤器对生成的程序片段进行安全检查;S5:生成器在过滤器对所有程序片段检查完毕后整理并输出生成的测试用例程序,并根据生成的测试用例程序计算非指针全局变量的校验和,并打印校验和。本发明自动生成大量测试用例,可以高效地暴露更多的问题,并且可根据输入进行定制化操作,节省人力成本。
-
公开(公告)号:CN112540750B
公开(公告)日:2022-11-15
申请号:CN201910897633.X
申请日:2019-09-23
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种自适应内建函数与指令操作选择翻译方法,基于编译器实现,包括以下步骤:S1、编译器使用最高优化等级编译该内建函数,当汇编指令少于或等于3条时,将SDNode一对一的降级为汇编指令;S2、当汇编指令大于3条时,判断该内建函数预设的使用频率,若使用频率不高,则以内建函数可拆分的伪指令节点和定义的虚拟寄存器为参数,通过BuildMI函数将内建函数降级为汇编指令;S3、若使用频率较高,则以内建函数的输入和输出作为源寄存器和目的寄存器,使用BuildMI函数创建一条伪指令,使用BuildMI函数扩展上述伪指令,并将扩展后的伪指令降级为汇编指令。本发明可以根据内建函数实现的复杂度选择内建函数节点降级的途径,以使程序的编译运行达到最优化的效果。
-
公开(公告)号:CN112446471B
公开(公告)日:2022-09-13
申请号:CN201910799257.0
申请日:2019-08-28
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种基于异构众核处理器的卷积加速方法,包括以下步骤:S1、根据异构众核处理器的核数,确定输入特征图和卷积核的多核划分方法,实现众核并行加速,S2、各计算核心将划分后的数据通过DMA的方式传输至片上存储器,实现片上存储加速,S3、将卷积操作核心计算过程中的标量计算操作优化为向量计算操作,实现SIMD指令加速,S4、结合异构众核处理器流水线特性,对卷积操作核心计算过程的指令流进行优化,以提高执行效率,实现指令并行加速。本发明对卷积操作进行加速,显著提升了卷积神经网络在异构众核处理器上的训练和推理性能。
-
公开(公告)号:CN114217937A
公开(公告)日:2022-03-22
申请号:CN202110348948.6
申请日:2021-03-31
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种缓解假共享问题的编译器支持方法,包括以下步骤:S1、用户在程序中,对多线程Cache之间可能存在假共享的变量声明分别使用__attribute__((cacheline))接口;S2、编译器将声明树节点的基类tree_decl_common结构体中的标志位cacheline置为1,将align设置为Cache Line大小,并将tree_decl_common的基类tree_base结构体中的user_align置为1。本发明解决了某些Cache结构不保证横向一致性带来的假共享问题。
-
公开(公告)号:CN112558976A
公开(公告)日:2021-03-26
申请号:CN201910903889.7
申请日:2019-09-24
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种即时编译引擎自适应函数加载方法,面向异构众核平台,包括以下步骤:S1、对于一个函数符号,执行引擎检查其是否为外部函数;S2、对于一个S1中标记的外部函数符号,执行引擎检查其是否为从核函数,并使用对应的动态链接库加载函数加载包含该外部函数符号的动态链接库;S3、从步骤S2中加载的动态链接库中获取外部函数入口地址;S4、使用步骤S3中获取的外部函数入口地址,对用户程序代码段进行GOT表覆写和重定位回填。本发明实现了异构众核程序对核组空间的有效利用,完善了面向异构众核平台的即时编译引擎的功能。
-
-
-
-
-
-
-
-
-