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

    公开(公告)号:CN114217770B

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

    申请号:CN202110325186.8

    申请日:2021-03-26

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

    面向异构平台的多层次存储结构内存检测方法

    公开(公告)号:CN112631893B

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

    申请号:CN201910903842.0

    申请日:2019-09-24

    Abstract: 本发明公开一种面向异构平台的多层次存储结构内存检测方法,基于异构众核处理器的编译器和运行时库,包括以下步骤:S1、实现自定义动态运行时库;S2、在自定义动态运行时库中,当从核程序发生段为例异常或终止异常时,从核向主核发送异常中断信号,主核代理从核进行异常处理;S3、主核、从核分别对源程序进行编译分析,将源程序处理为中间代码,并在中间代码上对需要插桩的位置进行插桩处理;S4、编译器将S3中处理过的中间代码,编译、汇编、链接,生成可执行代码,进而生成可执行文件并运行。本发明在拥有多指令集、多层次存储结构的异构众核处理器上实现内存错误的动态检测,检测的错误类型多,且错误信息描述详尽,定位精准,检测效果较好。

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

    公开(公告)号:CN112445581B

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

    申请号:CN201910799253.2

    申请日:2019-08-28

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

    面向异构众核处理器的动态链接运行支撑方法

    公开(公告)号:CN112650539B

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

    申请号:CN201910918622.5

    申请日:2019-09-26

    Abstract: 本发明公开一种面向异构众核处理器的动态链接运行支撑方法,包括以下步骤:S1、将用户的控制核心程序、加速核心程序及加速核心静态库链接到可执行程序中,获得异构混合动态链接的可执行程序;S2、运行异构混合动态链接的可执行程序;S3、提供一动态混合链接选项,实现异构程序的混合链接;S4、程序加载器分析异构混合动态链接的可执行程序的各个段,通过interp段解析标准动态链接器的地址;S5、向操作系统申请页氏空间,用于加载控制核心动态库;S6、实现基于众核空间的动态分配策略;S7、新增接口dlopen_hybrid,支持异构混合动态库中控制核心代码和加速核心代码正确运行。本发明既能保证控制核心代码兼容动态链接功能和动态运行模式,也能通过充分发挥加速核心的加载和运行效率。

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

    公开(公告)号:CN114217807A

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

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

    面向异构众核后端基于代价模型的多面体优化方法

    公开(公告)号:CN112558977A

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

    申请号:CN201910910502.0

    申请日:2019-09-25

    Abstract: 本发明公开一种面向异构众核后端基于代价模型的多面体优化方法,包括以下步骤:S1、编译器解析位于主核和从核上的用户程序的编译标识,生成对应的主核中间表示和从核中间表示;S2、编译器对S1中生成的主核和从核的中间表示层代码进行分析和优化;S3、对是否实施多面体调度与优化方法进行收益评估;S4、对有收益的静态控制单元实施多面体调度与优化,生成新的中间表示;S5、编译器将新的向量中间表示生成可重定向文件;S6、将中的可重定向文件与库文件链接,生成可执行文件。本发明首次提出并实现了片上异构众核的程序多面体优化自动变换方法,并加入了主核和从核独立的代价模型计算框架,保证了在有收益的前提下进行程序变换以节省程序的编译时间。

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

    公开(公告)号:CN112540750A

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

    申请号:CN201910897633.X

    申请日:2019-09-23

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

    基于异构平台的自适应节点融合编译优化方法

    公开(公告)号:CN112527304A

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

    申请号:CN201910885756.1

    申请日:2019-09-19

    Abstract: 本发明公开一种基于异构平台的自适应节点融合编译优化方法,包括以下步骤:S1、生成中间表示;S2、DAG融合子图识别;S3、节点融合策略;S4、代价评估;S5、自适应选择节点融合策略,即根据S4计算得到的第k个融合策略代价,结合目标后端的寄存器、cache、内存使用情况,自适应地选择最优的节点融合策略;S6、目标相关节点融合,根据节点融合策略,将S23中匹配得到的DAG子图的控制流和数据流关系,转移到S5选择出的节点融合策略所生成的融合后的DAG子图上,使用融合后的DAG子图替换融合前的DAG子图,转到S22;S7、生成目标代码,即编译器对降级完成后的DAG进行编译处理,生成异构平台代码。本发明为异构平台的节点融合优化提供精确指导,能够进一步挖掘异构平台复合指令的潜力,提升异构平台的性能。

    深度学习框架编译器宽度非一致自动向量优化方法

    公开(公告)号:CN112527262A

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

    申请号:CN201910885725.6

    申请日:2019-09-19

    Abstract: 本发明公开一种深度学习框架编译器宽度非一致自动向量优化方法,基于异构平台,包括以下步骤:S1、框架编译器前端识别计算图中可进行向量优化的子图,S2、框架编译器中端对步骤S15标记的可进行向量优化的子图中的算子进行融合,并计算图编译为底层IR,S3、框架编译器后端根据异构众核处理器的控制核心和计算核心的向量宽度,分别对步骤S2中获得的底层IR进行宽度非一致的向量优化,S4、框架编译器的代码生成模块将步骤S32获得的向量优化后的底层IR转换为用户指定的高级语言代码,并通过基础编译器生成向量优化后的平台目标码。本发明进一步的挖掘深度学习负载的指令集并行性能,提升深度学习负载的向量化程度,从而提升深度学习负载在异构众核平台上的推理性能。

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

    公开(公告)号:CN112445485A

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

    申请号:CN201910799256.6

    申请日:2019-08-28

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

Patent Agency Ranking