一种数据cache属性细粒度切换的方法

    公开(公告)号:CN114217810B

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

    申请号:CN202110398340.4

    申请日:2021-04-14

    Abstract: 本发明公开一种数据cache属性细粒度切换的方法,包括以下步骤:S1:编译选项识别:从程序的编译命令中识别‑fdynamic‑uncache‑symbols选项,若识别成功,使能编译器cache动态配置机制;S2:循环处理程序声明的数据,判定数据默认的Cache属性;S3.1:针对默认属性为可Cache访问的数据,假定其符号为“xxx”,编译器进行编译指示处理;S3.2:针对默认属性为不可Cache访问的数据,假定其符号为“xxx”,编译器进行编译指示处理本发明提高了用户程序数据对Cache空间的整体利用率,进而提高程序运行性能。

    基于cache写暗示机制的编译优化方法

    公开(公告)号:CN114217806B

    公开(公告)日:2025-01-10

    申请号:CN202110347315.3

    申请日:2021-03-31

    Abstract: 本发明公开一种基于cache写暗示机制的编译优化方法,自动识别对连续主存进行写操作的指令序列,并通过指令插桩,对这些指令序列的访存行为进行优化,包括以下步骤:S1:对代码中所有写操作进行识别,并通过插桩的方式进行标记;S2:对S1中识别的写操作的数据单元访问连续性进行判定,如果满足连续性要求,则更新cachesc指令参数;S3:写操作边界处理。本发明可减少因繁琐的存储管理对代码生产过程的干扰,进一步降低访存延迟,提高存储系统性能。

    针对循环内条件转移指令的转移预测优化方法

    公开(公告)号:CN112445520B

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

    申请号:CN201910794939.2

    申请日:2019-08-27

    Abstract: 本发明公开一种针对循环内条件转移指令的转移预测优化方法,包括以下步骤:S11、判断一次循环内的指令条数是否能够满足带条件标记的运算指令在带条件转移标志位的条件转移指令之前至少提前N条的条件;S12、如果满足条件,编译器直接生成汇编代码,如果不满足,编译器根据循环体代码量与条件N计算需要循环展开的次数,进行循环展开,生成汇编代码;S13、带条件标记的运算指令提前改变条件转移指令的转移标志位;S14、条件转移指令根据对应的条件标记位进行判断,如果成立,则处理器根据条件转移标记指示跳转取指,否则顺序取指;S15、不论预测为跳转还是不跳转,条件标记位使用后即作废,转移指令条件标记位清0。本发明能够规避循环最后一次转移带来的性能损失。

    基于异构平台的常量数据访问优化方法

    公开(公告)号:CN112527264B

    公开(公告)日:2022-10-04

    申请号:CN201910886036.7

    申请日:2019-09-19

    Abstract: 本发明公开一种基于异构平台的常量数据访问优化方法,包括以下步骤:S1、进行中间表示降级,即结合目标后端信息对中间表示进行降级处理,将常量节点降级为目标相关的节点;S2、分析中间表示,寻找常量节点,即进行常量数据分析,对常量数据的类型、大小及范围进行计算,且根据不同的架构后端采用不用的算法进行代价评估,生成降级节点;S3、生成汇编代码,即将生成的降级中间表示翻译为指令,并建立相应的数据段。本发明实现了精细化、自动化的常量数据访问优化选择,保证程序能最大限度的利用内存,优化常量数据内存使用,使常量数据访问的性能得到进一步的提升,从而提升国产异构从核平台的性能。

    即时编译引擎自适应函数加载方法

    公开(公告)号:CN112558976B

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

    申请号:CN201910903889.7

    申请日:2019-09-24

    Abstract: 本发明公开一种即时编译引擎自适应函数加载方法,面向异构众核平台,包括以下步骤:S1、对于一个函数符号,执行引擎检查其是否为外部函数;S2、对于一个S1中标记的外部函数符号,执行引擎检查其是否为从核函数,并使用对应的动态链接库加载函数加载包含该外部函数符号的动态链接库;S3、从步骤S2中加载的动态链接库中获取外部函数入口地址;S4、使用步骤S3中获取的外部函数入口地址,对用户程序代码段进行GOT表覆写和重定位回填。本发明实现了异构众核程序对核组空间的有效利用,完善了面向异构众核平台的即时编译引擎的功能。

    一种数据cache属性细粒度切换的方法

    公开(公告)号:CN114217810A

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

    申请号:CN202110398340.4

    申请日:2021-04-14

    Abstract: 本发明公开一种数据cache属性细粒度切换的方法,包括以下步骤:S1:编译选项识别:从程序的编译命令中识别‑fdynamic‑uncache‑symbols选项,若识别成功,使能编译器cache动态配置机制;S2:循环处理程序声明的数据,判定数据默认的Cache属性;S3.1:针对默认属性为可Cache访问的数据,假定其符号为“xxx”,编译器进行编译指示处理;S3.2:针对默认属性为不可Cache访问的数据,假定其符号为“xxx”,编译器进行编译指示处理本发明提高了用户程序数据对Cache空间的整体利用率,进而提高程序运行性能。

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

    公开(公告)号:CN112446471A

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

    申请号:CN201910799257.0

    申请日:2019-08-28

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

    基于C代码生成的神经网络模型推理和训练方法

    公开(公告)号:CN112445465A

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

    申请号:CN201910799245.8

    申请日:2019-08-28

    Abstract: 本发明公开一种基于C代码生成的神经网络模型推理和训练方法,包括以下步骤:S1、以通过各种AI编程框架开发的模型作为输入,AI框架编译器识别各种模型格式并转化为统一的计算图,将输入的模型转化为底层IR;S2、将S1中生成的计算图输入C代码生成模块,输出总控函数;S3、C代码生成模块针对不同的底层IR,生成对应的C代码;S4、将生成的总控函数、各IR对应的C代码以及C‑基础算子库,输入到支持C语言和相应硬件平台的基础编译器,通过基础编译器的优化过程转化为运行程序,并在对应硬件平台上执行推理过程、训练过程。本发明实现了AI框架编译器在LLVM不支持的硬件平台上的快速移植,能够快速实现神经网络模型在LLVM不支持的特定硬件平台上的训练和推理过程。

    一种面向连续不对界向量数据访问的编译优化方法

    公开(公告)号:CN105487839A

    公开(公告)日:2016-04-13

    申请号:CN201510827879.1

    申请日:2015-11-24

    CPC classification number: G06F9/3887

    Abstract: 本发明提供了一种面向连续不对界向量数据访问的编译优化方法,包括:对一个基本块内的所有指令按照依赖性关系自底向上进行遍历搜索;当搜索到存在不对界向量数据访问关系的第一访存指令和第二访存指令时,对第一访存指令和第二访存指令进行检测以判断第一访存指令和第二访存指令是否满足预定条件;在第一访存指令和第二访存指令满足预定条件的情况下,删除第一访存指令和第二访存指令中的一个访存指令;将与被删除指令有关的数据依赖转移到未被删除的另一个访存指令上。

    针对异构众核的快速线程启动方法

    公开(公告)号:CN112445581B

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

    申请号:CN201910799253.2

    申请日:2019-08-28

    Abstract: 本发明公开一种针对异构众核的快速线程启动方法,包括以下步骤:S1、控制核心进行线程信息初始化的工作;S2、控制核心获取加速核心上将要运行的线程函数的PC值、参数等信息;S3、控制核心根据异构众核的结构特征选择传输方式;S4、控制核心写入线程信息并置传输标志;S5、控制核心进入等待线程结束的状态;S6、加速核心进入等待传输标志的状态;S7、加速核心启动传输操作;S8、启动线程函数执行;S9、各加速核心的线程函数执行完毕后,进行加速核心间的同步操作;S10、通知控制核心线程函数已执行结束;S11、控制核心进行线程回收操作。本发明实现了快速的线程启动与回收,减少了控制核心和加速核心在线程启动交互过程中的访存和控制开销,为应用程序的高效执行奠定了基础。

Patent Agency Ranking