一种基于异构众核架构的直接内存访问编译优化方法

    公开(公告)号:CN114217807B

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

    申请号:CN202110381660.9

    申请日:2021-04-09

    Abstract: 本发明公开一种基于异构众核架构的直接内存访问编译优化方法,包括以下步骤:S1、通过调度原语cache_read,将张量数据由主存搬移到局存;S2、通过调度原语pragma,将S11中的数据搬移操作改写为DMA GET操作;S3、通过调度原语double_buffer,将S2中的DMA GET操作优化为双缓冲模式;S4、通过调度原语pragma,在局存副本AA使用位置前插入回答字判断操作;S5、通过调度原语cache_write,将结果张量B的局存副本BB由局存搬移至主存。本发明充分利用硬件资源,最大程度实现算子的计算访存操作的重叠,从而提升深度学习负载在异构众核平台上的性能。

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

    公开(公告)号: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、结合异构众核处理器流水线特性,对卷积操作核心计算过程的指令流进行优化,以提高执行效率,实现指令并行加速。本发明对卷积操作进行加速,显著提升了卷积神经网络在异构众核处理器上的训练和推理性能。

    一种缓冲受限的数据分块全交换通信实现方法

    公开(公告)号:CN114217945A

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

    申请号:CN202110480245.9

    申请日:2021-04-30

    Abstract: 本发明公开一种缓冲受限的数据分块全交换通信实现方法,包括以下步骤:S1、申请用于全交换通信的缓冲空间,具体为:参与全交换通信的节点数为N,每个节点上全交换的数据量为A,起始地址为src,全交换通信块的大小为A/N,记为block;根据内存使用情况申请全交换通信块M倍的空间作为缓冲空间,缓冲空间的起始地址为buf;S2、每个节点向其他N‑1个节点各发送一个全交换通信块,并将接收到的来自其他N‑1个节点的N‑1个全交换通信块移动到全交换数据区,具体过程为每个节点执行下界为1、上界为N、跨步为M的循环。本发明能够在缓冲受限的情况下实现全交换通信,并在存储器容量一定的情况下增加全交换的数据量。

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

    公开(公告)号: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结构不保证横向一致性带来的假共享问题。

    一种基于异构众核架构的C++融合编程方法

    公开(公告)号:CN114217770A

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

    申请号:CN202110325186.8

    申请日:2021-03-26

    Abstract: 本发明公开一种基于异构众核架构的C++融合编程方法,包括以下步骤:S1、主核以头文件“athreadcxx.h”的形式提供athreadcxx类的对象;S2、athreadcxx类的对象通过构造函数进行从核资源的初始化,通过析构函数进行从核资源的回收;S3、编译器通过选项‑mhost将使用athreadcxx类的对象编程的主核程序进行编译;S4、从核以头文件“slavecxx.h”的形式提供线程私有全局变量PEN、COL和ROW,用于保存当前从核的编号和行列信息。本发明解决了不同架构的指令集混合链接符号多重定义问题、从核间的全局变量访存问题。

Patent Agency Ranking