支持多格式半精度浮点的编译方法

    公开(公告)号:CN114217804B

    公开(公告)日:2025-05-16

    申请号:CN202110324723.7

    申请日:2021-03-26

    Abstract: 本发明公开一种支持多格式半精度浮点的编译方法,包括以下步骤:S1、用户代码使用编译器提供的float16关键字来申明半精度浮点数据类型;S2、用户代码根据需要调用半精度浮点数据格式切换接口进行格式切换;S3、用户代码在切换半精度浮点数据格式后,调用编译器提供的半精度浮点数据转换接口进行数据格式转换;S4、在完成半精度浮点数据格式切换与数据转换后,用户程序在当前半精度浮点格式下进行后续的计算,需要再次切换半精度浮点格式时重复S2、S3。本发明可以在不增加代码编写复杂度的前提下发挥FP16和BF16两种半精度浮点格式的优势,满足应用场景使用半精度浮点加速计算的需求。

    一种面向量子加速设备的混合式编译方法

    公开(公告)号:CN115271084B

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

    申请号:CN202210933691.5

    申请日:2022-08-04

    Abstract: 一种面向量子加速设备的混合式编译方法,属于量子计算技术领域。本发明包括如下步骤:步骤S1,通过标准化的量子代码编程接口,对混合代码中的经典代码与量子代码进行识别;步骤S2,对经典代码进行编译,生成可执行码;步骤S3,运行经典代码的可执行码,若遇到量子代码编程接口,则进行步骤S4,并在接收到步骤S5的运行结果后,继续运行并重复本步骤的操作,直至整个计算进程结束;步骤S4,对量子代码进行编译,生成可执行码;步骤S5,运行量子代码的可执行码。本发明操作简单高效,易于实现,同时可靠性高。

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

    公开(公告)号:CN112527300B

    公开(公告)日:2023-06-13

    申请号:CN201910879803.1

    申请日:2019-09-18

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

    自适应内建函数与指令操作选择翻译方法

    公开(公告)号:CN112540750B

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

    申请号:CN201910897633.X

    申请日:2019-09-23

    Abstract: 本发明公开一种自适应内建函数与指令操作选择翻译方法,基于编译器实现,包括以下步骤:S1、编译器使用最高优化等级编译该内建函数,当汇编指令少于或等于3条时,将SDNode一对一的降级为汇编指令;S2、当汇编指令大于3条时,判断该内建函数预设的使用频率,若使用频率不高,则以内建函数可拆分的伪指令节点和定义的虚拟寄存器为参数,通过BuildMI函数将内建函数降级为汇编指令;S3、若使用频率较高,则以内建函数的输入和输出作为源寄存器和目的寄存器,使用BuildMI函数创建一条伪指令,使用BuildMI函数扩展上述伪指令,并将扩展后的伪指令降级为汇编指令。本发明可以根据内建函数实现的复杂度选择内建函数节点降级的途径,以使程序的编译运行达到最优化的效果。

    面向容量受限的程序栈空间深度追溯方法

    公开(公告)号:CN112445482B

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

    申请号:CN201910794946.2

    申请日:2019-08-27

    Abstract: 本发明公开一种面向容量受限的程序栈空间深度追溯方法,包括以下步骤:S1、在链接器中建立函数信息的数据结构,形成函数调用关系流程图;S2、获取所有的函数符号信息,建立相应的函数信息数据结构,并将函数的名称、PC值范围、自身栈空间深度信息安装到对应的函数信息结构中;S3、遍历程序所有的重定位信息,根据重定位信息来确定函数调用关系,根据分析结果更新各个函数信息的链表指针;S4、对建立的函数调用关系图做深度优先遍历,通过累加计算获取根节点函数的栈空间深度,对所有根节点栈空间深度做排序后输出。本发明通过静态分析的方法获取栈空间信息,无需重新编译,无需运行插桩,对于程序分析、错误定位以及程序优化有着很好的指导作用。

    基于异构众核处理器的卷积加速方法

    公开(公告)号:CN112446471B

    公开(公告)日:2022-09-13

    申请号:CN201910799257.0

    申请日:2019-08-28

    Abstract: 本发明公开一种基于异构众核处理器的卷积加速方法,包括以下步骤:S1、根据异构众核处理器的核数,确定输入特征图和卷积核的多核划分方法,实现众核并行加速,S2、各计算核心将划分后的数据通过DMA的方式传输至片上存储器,实现片上存储加速,S3、将卷积操作核心计算过程中的标量计算操作优化为向量计算操作,实现SIMD指令加速,S4、结合异构众核处理器流水线特性,对卷积操作核心计算过程的指令流进行优化,以提高执行效率,实现指令并行加速。本发明对卷积操作进行加速,显著提升了卷积神经网络在异构众核处理器上的训练和推理性能。

    缓解假共享问题的编译器支持方法

    公开(公告)号:CN114217937A

    公开(公告)日:2022-03-22

    申请号:CN202110348948.6

    申请日:2021-03-31

    Abstract: 本发明公开一种缓解假共享问题的编译器支持方法,包括以下步骤:S1、用户在程序中,对多线程Cache之间可能存在假共享的变量声明分别使用__attribute__((cacheline))接口;S2、编译器将声明树节点的基类tree_decl_common结构体中的标志位cacheline置为1,将align设置为Cache Line大小,并将tree_decl_common的基类tree_base结构体中的user_align置为1。本发明解决了某些Cache结构不保证横向一致性带来的假共享问题。

    面向主从融合架构处理器的指令调度优化装置和方法

    公开(公告)号:CN112527393A

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

    申请号:CN201910879804.6

    申请日:2019-09-18

    Abstract: 本发明公开一种面向主从融合架构处理器的指令调度优化装置和方法,基于以下模块:指令调度模块,用于接收含有目标机信息和指令序列的代码,还用于根据指令模板选择器提供的指令模板,对接收到的指令序列进行调度;指令模板选择器,用于接收代码中的目标机信息,并根据目标机信息,选择主核指令模板或者从核指令模板,将选择好的指令模板发送给指令调度模块;主核指令模板,用于描述主核指令的指令类型、指令的目标信息、可以在哪条流水线上执行该指令以及指令延迟信息;配置于编译器后端的从核指令模板。本发明进一步降低流水线阻塞发生的概率,优化处理器的指令调度过程,提高指令调度的准确性以及指令调度的性能指标,实现指令调度过程的优化。

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

    公开(公告)号:CN112445488A

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

    申请号:CN201910831166.0

    申请日:2019-09-04

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

    针对结构体成员的重组优化方法

    公开(公告)号:CN112445479A

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

    申请号:CN201910794733.X

    申请日:2019-08-27

    Abstract: 本发明公开一种针对结构体成员的重组优化方法,包括以下步骤:S11、编译器扫描目标程序中的每个基本块,构建待优化的结构体类型集合;S12、对程序中所有结构体的引用进行分析,从待优化的结构体类型集合中移除不满足优化条件的结构体类型;S13、根据结构体定义、声明以及引用的信息对满足优化条件的结构体的成员进行重组,并将结果记录在sbitmap类型的变量中;S14、根据步骤S13记录的待重组的结构体成员的信息,创建多个新结构体的定义;S15、遍历目标程序的所有基本块,将目标程序中对旧结构体的引用替换为对新结构体的引用,对结构体声明及引用信息进行更新。本发明解决了现有的数据变换技术无法针对结构体成员进行数据重组优化的问题,达到了进一步提升数据Cache性能的效果。

Patent Agency Ranking