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

    公开(公告)号:CN112445485B

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

    申请号:CN201910799256.6

    申请日:2019-08-28

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

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

    公开(公告)号:CN112527262B

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

    申请号:CN201910885725.6

    申请日:2019-09-19

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

    面向即时编译的基于动态库的GOT表管理方法

    公开(公告)号:CN112527303B

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

    申请号:CN201910885728.X

    申请日:2019-09-19

    Abstract: 本发明公开一种面向即时编译的基于动态库的GOT表管理方法,包括以下步骤:S1、创建包含GOT表的动态链接库,此GOT表位于动态链接库的数据段;S2、在即时编译引擎解析重定位前,动态载入GOT表到内存空间,并获取GOT表的首地址;S3、即时编译引擎根据程序代码段的重定位类型,进行GOT表覆写和重定位回填;S4、在程序即时编译执行结束后,动态释放包含GOT表的动态链接库;S42、退出即时编译。本发明降低了LLVM即时编译引擎对新增硬件后端中GOT表的支持难度,提高了LLVM即时编译引擎的移植效率,在基于国产处理器的LLVM即时编译引擎中快速实现了基于动态库的GOT表管理。

    低功耗的寄存器分配编译优化方法

    公开(公告)号:CN112445481B

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

    申请号:CN201910794940.5

    申请日:2019-08-27

    Abstract: 本发明公开一种低功耗的寄存器分配编译优化方法,包括以下步骤:S1、分析程序的热点函数和循环段;S2、统计热点代码段中依赖关系语句执行频率;S3、登记存在依赖关系语句中临时变量的生存周期;S4、关闭针对该依赖关系语句性能相关的指令调度优化,防止因为考虑流水线性能而进行的指令调度;S5、对每个依赖关系语句中的临时变量进行基本块内的生存周期分析;S6、对每个依赖关系语句中的临时变量进行跨基本块的生存周期分析;S7、遍历所有基本块,对标记为可低功耗优化的临时变量追踪其定义和使用点;S8、进行W_set指令循环外提优化。本发明在一定程度上优化系统运行功耗,且软硬件开发成本低,对降低功耗的方法简单直接。

    一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎

    公开(公告)号:CN114217941A

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

    申请号:CN202110381665.1

    申请日:2021-04-09

    Abstract: 本发明公开一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎,独立设置于TensorFlow框架与多个众核计算加速库之间,包括以下功能模块:算子接口模块,用于将运行流程转入核心计算加速引擎;分析调度模块,用于分析算子类型和算子参数特性,将算子参数封装为各个众核计算加速库的参数结构,并根据算子类型调用不同的众核计算加速库,当同种算子类型有多种算子实现时,根据算子参数特点自动选择最优的实现方式并进行调用;调试模块,用于记录各个算子的运行时间,从算子层面分析模型推理或训练过程的性能表现。本发明可充分发挥国产异构众核强大的强大计算能力,提供自动化的深度学习任务核心加速能力。

    一种基于国产异构平台的C++向量编程方法

    公开(公告)号:CN114217771A

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

    申请号:CN202110452548.X

    申请日:2021-04-26

    Abstract: 本发明公开一种基于国产异构平台的C++向量编程方法,所述编程方法包括以下步骤:S1、通过引入头文件simd.h的形式获得向量数据类型和向量编程接口的支持;S2、编译器对C++向量程序进行前端处理,生成中间表示代码;S3、编译器中端对S25中生成的中间表示代码进行优化,生成新的中间表示;S4、编译器中端对步骤S3中优化后的中间代码进行指令生成,形成向量汇编代码;S5、生成机器码;S6、链接器将上述生成的所有主核和从核机器码混合链接成一个可执行码;S7、将可执行码运行在异构众核平台上。本发明为国产异构众核架构的应用开发提供了一种新型的编程方式,有利于最大限度的发挥架构优势,提升应用性能。

    条件转移预测方向变换的编译优化方法

    公开(公告)号:CN112540764A

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

    申请号:CN201910897632.5

    申请日:2019-09-23

    Abstract: 本发明公开一种条件转移预测方向变换的编译优化方法,当发现因为频繁的分支预测失败带来了严重的性能损失时,执行以下步骤:S1、对源程序重新进行编译,并在编译时添加转移预测方向变换的编译优化选项;S2、对源程序进行控制流分析,并将源程序划分为若干个基本块,同时识别出包含在源程序的最内层循环的条件分支语句,并将其划分为几个独立的基本块,将第一个基本块打上分支预测失败的特殊属性;S3、在具有分支预测失败特殊属性的基本块的起始位置插入一条转移预测器方向切换指令;S4、编译器继续进行剩余的编译过程,产生目标代码。本发明可以避免嵌汇编方式带来的性能损失和潜在的错误问题,还可以提高条件转移预测准确率,达到降低性能损失的目的。

    针对片上存储器重用的链接时地址分配方法

    公开(公告)号:CN112445724A

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

    申请号:CN201910805599.9

    申请日:2019-08-29

    Abstract: 本发明公开一种针对片上存储器重用的链接时地址分配方法,包括以下步骤:S1、在编译器上构建片上存储器的重用段类型,生成片上存储器的访存模式;S2、在执行S1中操作的同时,对链接脚本进行配置;S31、链接器对S2中所述的链接脚本进行信息扫描,进入链接器的重用处理函数;S32、从二进制文件格式描述符文件中获取段信息;S33、循环处理S32中获取的段信息,识别并找出重用段;S34、解析出S12中所述的重用段属性的数据结构中所带的重用段名字,对满足同一个重用段名字的段分配相同的虚拟内存地址;S35、从S32中获取的段信息中找出最大的段,用作该重用段空间分配时的空间大小。本发明通过链接时地址分配方法实现空间重用,有效提高片上存储器的空间利用率、提升程序性能。

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

    公开(公告)号:CN112445581A

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

    申请号:CN201910799253.2

    申请日:2019-08-28

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

    低功耗的寄存器分配编译优化方法

    公开(公告)号:CN112445481A

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

    申请号:CN201910794940.5

    申请日:2019-08-27

    Abstract: 本发明公开一种低功耗的寄存器分配编译优化方法,包括以下步骤:S1、分析程序的热点函数和循环段;S2、统计热点代码段中依赖关系语句执行频率;S3、登记存在依赖关系语句中临时变量的生存周期;S4、关闭针对该依赖关系语句性能相关的指令调度优化,防止因为考虑流水线性能而进行的指令调度;S5、对每个依赖关系的临时变量进行基本块内的生存周期分析;S6、对每个依赖关系的临时变量进行跨基本块的生存周期分析;S7、遍历所有基本块,对标记为可低功耗优化的临时变量追踪其定义和使用点(define&use);S8、进行W_set指令循环外提优化。本发明在一定程度上优化系统运行功耗,且软硬件开发成本低,对降低功耗的方法简单直接,在考虑性能的前提下,最大限度的挖掘寄存器低功耗潜力。

Patent Agency Ranking