一种异构代码融合的编译和生成方法

    公开(公告)号:CN105426226B

    公开(公告)日:2018-07-06

    申请号:CN201510828419.0

    申请日:2015-11-24

    Abstract: 本发明提供了一种异构代码融合的编译和生成方法,包括:利用运算控制核心编译器和运算核心编译器分别为运算控制核心和运算核心生成第一对象文件和第二对象文件;运算核心编译器自动实现对第一对象文件中的函数的重命名,在函数名的前加上前缀;链接器将重命名后第一对象文件与第二对象文件链接融合为统一的可执行程序。

    基于异构众核的轻量级线程快速触发方法

    公开(公告)号:CN105242962B

    公开(公告)日:2018-07-03

    申请号:CN201510828182.6

    申请日:2015-11-24

    Abstract: 本发明提供了一种基于异构众核的轻量级线程快速触发方法,包括:在轻量级线程库中编写异构众核的多线程程序,其中多线程程序在轻量级线程库中的创建和回收以显式的接口来调用,然后完成多线程程序代码的编译,生成一个异构融合的可执行代码;运行该可执行码;其中,首先执行在主处理器上运行的程序加载器,再将可执行代码作为参数传入给程序加载器;程序加载器将整个当做一个文件读入,然后解析出符合ELF格式的段信息,并将其写入内存的相应位置,并完成程序执行环境变量的配置。

    一种指令转化方法及系统
    23.
    发明授权

    公开(公告)号:CN102981802B

    公开(公告)日:2015-10-07

    申请号:CN201210441177.6

    申请日:2012-11-06

    Abstract: 本发明提供的一种指令转化方法及系统,获得处理器对外部存储器中第一地址进行访问的指令并判断是否为常数,如果是,则判断第一地址中保存的数据的宽度是否满足预设的第一宽度要求,如果是,则对所述该指令进行转化,生成处理器对内部指令缓存器访问的立即数指令。本发明针对没有数据缓存器的处理器,可以将处理器对外部存储器中地址进行访问的指令转化为处理器对内部指令缓存器访问的立即数指令,从而无需处理器再对外部存储器进行访问。因此,本发明可以不再使处理器的处理速度受限于对外部存储器的访问速度,有效的解决了“存储墙”的问题,提高了处理器的实际处理速度。

    一种编译器数据预取方法和装置

    公开(公告)号:CN102981883A

    公开(公告)日:2013-03-20

    申请号:CN201210420971.2

    申请日:2012-10-29

    Abstract: 本发明实施例提供一种编译器数据预取方法和装置,以实现高效的访存优化。所述方法包括:提供硬件指令查询软件管理片上存储器SPM中划分的局存空间,所述硬件指令包含数据的主存地址;若在所述SPM局存空间查询到所述主存地址对应的数据,则读取所述主存地址对应的数据;若在所述SPM局存空间没有查询到所述主存地址对应的数据,则根据所述硬件指令进行不命中处理以将数据预取到所述SPM局存空间。本发明充分利用硬件的高效性和软件灵活性,以较小的硬件开销实现高效的访存优化,在此基础上实现了结合硬件支持和精简的预取算法的基于软硬件协同管理机制的编译器数据预取方法,在性能上要优于纯软件算法,保证了软件算法的灵活性。

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

    公开(公告)号: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由局存搬移至主存。本发明充分利用硬件资源,最大程度实现算子的计算访存操作的重叠,从而提升深度学习负载在异构众核平台上的性能。

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

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

    一种基于异构众核架构的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