面向多目标的细粒度编译自调优方法

    公开(公告)号:CN112527300A

    公开(公告)日:2021-03-19

    申请号:CN201910879803.1

    申请日:2019-09-18

    Abstract: 本发明公开一种面向多目标的细粒度编译自调优方法,包括以下步骤:S1、根据用户需求,确定编译优化的目标;S2、进行代码核心段标识,即对程序的执行时间进行拆分,并按照程序的执行时间长短对程序内的核心段函数进行排序,根据设定的阈值n,选取程序的执行时间最长的若干核心段函数;S3、对代码进行插桩,根据编译优化的目标,选择对应的插桩接口,用于量化评估编译优化效果;S4、修改配置文件,并启动自调优操作;S5、对调优结果的历史信息进行聚类分析,修改迭代过程的启发式策略。本发明能够挖掘编译优化选项的性能潜力,提高编译器的用户友好性,缩短用户进行应用调优的学习曲线。

    基于编译实现的可扩展向量掩码功能的方法和装置

    公开(公告)号:CN112445485A

    公开(公告)日:2021-03-05

    申请号:CN201910799256.6

    申请日:2019-08-28

    Abstract: 本发明公开一种基于编译实现的可扩展向量掩码功能的方法和装置,包括以下步骤:S1、编译器输入用户程序,根据目标平台翻译出正确的掩码向量接口;S2、编译器前端模块对S1中获得的掩码向量接口进行关键字识别,选择对应平台的中端处理入口;S3、编译器中端模块根据目标平台的指令结构对掩码向量接口进行分析,选择合适的处理流程;S4、编译器后端模块将编译器中端模块生成的中间生成代码转换生成最终指令;S5、编译器根据向量宽度的增加,完成对平台向量宽度的识别,选择合适宽度的向量转换和掩码生成。本发明降低了重新开发代码的工作量和复杂度及用户移植的复杂度,更进一步的挖掘了课题的指令级并行性能。

    一种无横向一致性的众核精简Cache协议实现方法

    公开(公告)号:CN114217809B

    公开(公告)日:2024-04-30

    申请号:CN202110398338.7

    申请日:2021-04-14

    Abstract: 本发明公开一种无横向一致性的众核精简Cache协议实现方法,包括以下步骤:S1、对Cache行内数据更新情况进行分析,标记出被更新的数据;S2、如果Cache行内所有数据都没有被更新,或者Cache行内所有数据都被更新,跳转至S5,如果Cache行内只有部分数据被更新,跳转至S3;S3、当一个Cache行内的数据只有部分内容需要写回时,其他位掩码置0;S4、根据掩码粒度大小与置位情况,更新主存中对应掩码位为1的数据;S5、直接对Cache行进行写回操作。本发明有效解决共享主存Cache结构的假共享问题,还可以提高写回效率、有效降低处理器在Cache数据管理方面的硬件开销。

    支撑异构众核全芯片视角的加速编程和编译方法

    公开(公告)号:CN112558978B

    公开(公告)日:2022-11-25

    申请号:CN201910918623.X

    申请日:2019-09-26

    Abstract: 本发明公开一种支撑异构众核全芯片视角的加速编程和编译方法,包括以下步骤:S1、识别__cross关键字声明的全局变量;S2、初始化操作;S3、全芯片加速模式的选择;S4、启动N个运算核组;S5、进入等待所有线程结束的状态;S6、进入等待S4中线程函数的状态信息的状态;S7、置线程结束的标志;S8、线程回收操作;S9、创建pthread线程;S10、线程绑定操作;S11、每个pthread线程将运算核组编号对应的运算核组启动;S12、进入等待线程结束的状态;S13、启动线程函数执行;S14、置线程结束的标志;S15、进行线程回收操作,更新加速核心的状态信息;S16、控制核心运行结束。本发明支持全芯片视角多模式的并行加速,以应对异构众核处理器的芯片特点和应用需求,为用户提供全片内存视角和全片资源管理方案。

    异构平台下宽度非对称向量兼容性的编译处理方法和装置

    公开(公告)号:CN112445488B

    公开(公告)日:2022-11-15

    申请号:CN201910831166.0

    申请日:2019-09-04

    Abstract: 本发明公开一种异构平台下宽度非对称向量兼容性的编译处理方法和装置,包括以下模块:编译器预处理模块,用于对非对称异构向量的统一声明,还用于通过编译选项来控制对应的数据和接口调用的target预处理,转换为对应平台自身适应的接口;编译器前端中端分析模块,用于根据接口的调用方式,进行内部中间表示的转换或者向量降级,生成对应平台的中间表示;编译器后端拆分模块,用于根据中间表示,生成对应的后端指令。本发明实现主从核编译器向量开发的继承性、减少用户程序异构编码限制,无需去关注异构平台对向量支持的差异性。

    基于编译实现的可扩展向量掩码功能的方法和装置

    公开(公告)号:CN112445485B

    公开(公告)日:2022-11-15

    申请号:CN201910799256.6

    申请日:2019-08-28

    Abstract: 本发明公开一种基于编译实现的可扩展向量掩码功能的方法和装置,包括以下步骤:S1、编译器输入用户程序,根据目标平台翻译出正确的掩码向量接口;S2、编译器前端模块对S1中获得的掩码向量接口进行关键字识别,选择对应平台的中端处理入口;S3、编译器中端模块根据目标平台的指令结构对掩码向量接口进行分析,选择合适的处理流程;S4、编译器后端模块将编译器中端模块生成的中间生成代码转换生成最终指令;S5、编译器根据向量宽度的增加,完成对平台向量宽度的识别,选择合适宽度的向量转换和掩码生成。本发明降低了重新开发代码的工作量和复杂度及用户移植的复杂度,更进一步的挖掘了课题的指令级并行性能。

    低功耗的寄存器分配编译优化方法

    公开(公告)号:CN112445481B

    公开(公告)日:2022-07-12

    申请号:CN201910794940.5

    申请日:2019-08-27

    Abstract: 本发明公开一种低功耗的寄存器分配编译优化方法,包括以下步骤:S1、分析程序的热点函数和循环段;S2、统计热点代码段中依赖关系语句执行频率;S3、登记存在依赖关系语句中临时变量的生存周期;S4、关闭针对该依赖关系语句性能相关的指令调度优化,防止因为考虑流水线性能而进行的指令调度;S5、对每个依赖关系语句中的临时变量进行基本块内的生存周期分析;S6、对每个依赖关系语句中的临时变量进行跨基本块的生存周期分析;S7、遍历所有基本块,对标记为可低功耗优化的临时变量追踪其定义和使用点;S8、进行W_set指令循环外提优化。本发明在一定程度上优化系统运行功耗,且软硬件开发成本低,对降低功耗的方法简单直接。

    支撑异构众核全芯片视角的加速编程和编译方法

    公开(公告)号:CN112558978A

    公开(公告)日:2021-03-26

    申请号:CN201910918623.X

    申请日:2019-09-26

    Abstract: 本发明公开一种支撑异构众核全芯片视角的加速编程和编译方法,包括以下步骤:S1、识别__cross关键字声明的全局变量;S2、初始化操作;S3、全芯片加速模式的选择;S4、启动N个运算核组;S5、进入等待所有线程结束的状态;S6、进入等待S4中线程函数的状态信息的状态;S7、置线程结束的标志;S8、线程回收操作;S9、创建pthread线程;S10、线程绑定操作;S11、每个pthread线程将运算核组编号对应的运算核组启动;S12、进入等待线程结束的状态;S13、启动线程函数执行;S14、置线程结束的标志;S15、进行线程回收操作,更新加速核心的状态信息;S16、控制核心运行结束。本发明支持全芯片视角多模式的并行加速,以应对异构众核处理器的芯片特点和应用需求,为用户提供全片内存视角和全片资源管理方案。

    条件转移预测方向变换的编译优化方法

    公开(公告)号:CN112540764A

    公开(公告)日:2021-03-23

    申请号:CN201910897632.5

    申请日:2019-09-23

    Abstract: 本发明公开一种条件转移预测方向变换的编译优化方法,当发现因为频繁的分支预测失败带来了严重的性能损失时,执行以下步骤:S1、对源程序重新进行编译,并在编译时添加转移预测方向变换的编译优化选项;S2、对源程序进行控制流分析,并将源程序划分为若干个基本块,同时识别出包含在源程序的最内层循环的条件分支语句,并将其划分为几个独立的基本块,将第一个基本块打上分支预测失败的特殊属性;S3、在具有分支预测失败特殊属性的基本块的起始位置插入一条转移预测器方向切换指令;S4、编译器继续进行剩余的编译过程,产生目标代码。本发明可以避免嵌汇编方式带来的性能损失和潜在的错误问题,还可以提高条件转移预测准确率,达到降低性能损失的目的。

Patent Agency Ranking