-
公开(公告)号:CN112558978B
公开(公告)日:2022-11-25
申请号:CN201910918623.X
申请日:2019-09-26
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种支撑异构众核全芯片视角的加速编程和编译方法,包括以下步骤:S1、识别__cross关键字声明的全局变量;S2、初始化操作;S3、全芯片加速模式的选择;S4、启动N个运算核组;S5、进入等待所有线程结束的状态;S6、进入等待S4中线程函数的状态信息的状态;S7、置线程结束的标志;S8、线程回收操作;S9、创建pthread线程;S10、线程绑定操作;S11、每个pthread线程将运算核组编号对应的运算核组启动;S12、进入等待线程结束的状态;S13、启动线程函数执行;S14、置线程结束的标志;S15、进行线程回收操作,更新加速核心的状态信息;S16、控制核心运行结束。本发明支持全芯片视角多模式的并行加速,以应对异构众核处理器的芯片特点和应用需求,为用户提供全片内存视角和全片资源管理方案。
-
公开(公告)号:CN112445485B
公开(公告)日:2022-11-15
申请号:CN201910799256.6
申请日:2019-08-28
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种基于编译实现的可扩展向量掩码功能的方法和装置,包括以下步骤:S1、编译器输入用户程序,根据目标平台翻译出正确的掩码向量接口;S2、编译器前端模块对S1中获得的掩码向量接口进行关键字识别,选择对应平台的中端处理入口;S3、编译器中端模块根据目标平台的指令结构对掩码向量接口进行分析,选择合适的处理流程;S4、编译器后端模块将编译器中端模块生成的中间生成代码转换生成最终指令;S5、编译器根据向量宽度的增加,完成对平台向量宽度的识别,选择合适宽度的向量转换和掩码生成。本发明降低了重新开发代码的工作量和复杂度及用户移植的复杂度,更进一步的挖掘了课题的指令级并行性能。
-
公开(公告)号:CN112527262B
公开(公告)日:2022-10-04
申请号:CN201910885725.6
申请日:2019-09-19
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种深度学习框架编译器宽度非一致自动向量优化方法,基于异构平台,包括以下步骤:S1、框架编译器前端识别计算图中可进行向量优化的子图,S2、框架编译器中端对步骤S15标记的可进行向量优化的子图中的算子进行融合,并计算图编译为底层IR,S3、框架编译器后端根据异构众核处理器的控制核心和计算核心的向量宽度,分别对步骤S2中获得的底层IR进行宽度非一致的向量优化,S4、框架编译器的代码生成模块将步骤S32获得的向量优化后的底层IR转换为用户指定的高级语言代码,并通过基础编译器生成向量优化后的平台目标码。本发明进一步的挖掘深度学习负载的指令集并行性能,提升深度学习负载的向量化程度,从而提升深度学习负载在异构众核平台上的推理性能。
-
公开(公告)号:CN112527303B
公开(公告)日:2022-09-13
申请号:CN201910885728.X
申请日:2019-09-19
Applicant: 无锡江南计算技术研究所
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
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种低功耗的寄存器分配编译优化方法,包括以下步骤:S1、分析程序的热点函数和循环段;S2、统计热点代码段中依赖关系语句执行频率;S3、登记存在依赖关系语句中临时变量的生存周期;S4、关闭针对该依赖关系语句性能相关的指令调度优化,防止因为考虑流水线性能而进行的指令调度;S5、对每个依赖关系语句中的临时变量进行基本块内的生存周期分析;S6、对每个依赖关系语句中的临时变量进行跨基本块的生存周期分析;S7、遍历所有基本块,对标记为可低功耗优化的临时变量追踪其定义和使用点;S8、进行W_set指令循环外提优化。本发明在一定程度上优化系统运行功耗,且软硬件开发成本低,对降低功耗的方法简单直接。
-
公开(公告)号:CN114217941A
公开(公告)日:2022-03-22
申请号:CN202110381665.1
申请日:2021-04-09
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种面向国产异构众核处理器的TensorFlow框架核心计算加速引擎,独立设置于TensorFlow框架与多个众核计算加速库之间,包括以下功能模块:算子接口模块,用于将运行流程转入核心计算加速引擎;分析调度模块,用于分析算子类型和算子参数特性,将算子参数封装为各个众核计算加速库的参数结构,并根据算子类型调用不同的众核计算加速库,当同种算子类型有多种算子实现时,根据算子参数特点自动选择最优的实现方式并进行调用;调试模块,用于记录各个算子的运行时间,从算子层面分析模型推理或训练过程的性能表现。本发明可充分发挥国产异构众核强大的强大计算能力,提供自动化的深度学习任务核心加速能力。
-
公开(公告)号:CN114217771A
公开(公告)日:2022-03-22
申请号:CN202110452548.X
申请日:2021-04-26
Applicant: 无锡江南计算技术研究所
IPC: G06F8/30
Abstract: 本发明公开一种基于国产异构平台的C++向量编程方法,所述编程方法包括以下步骤:S1、通过引入头文件simd.h的形式获得向量数据类型和向量编程接口的支持;S2、编译器对C++向量程序进行前端处理,生成中间表示代码;S3、编译器中端对S25中生成的中间表示代码进行优化,生成新的中间表示;S4、编译器中端对步骤S3中优化后的中间代码进行指令生成,形成向量汇编代码;S5、生成机器码;S6、链接器将上述生成的所有主核和从核机器码混合链接成一个可执行码;S7、将可执行码运行在异构众核平台上。本发明为国产异构众核架构的应用开发提供了一种新型的编程方式,有利于最大限度的发挥架构优势,提升应用性能。
-
公开(公告)号:CN112558978A
公开(公告)日:2021-03-26
申请号:CN201910918623.X
申请日:2019-09-26
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种支撑异构众核全芯片视角的加速编程和编译方法,包括以下步骤:S1、识别__cross关键字声明的全局变量;S2、初始化操作;S3、全芯片加速模式的选择;S4、启动N个运算核组;S5、进入等待所有线程结束的状态;S6、进入等待S4中线程函数的状态信息的状态;S7、置线程结束的标志;S8、线程回收操作;S9、创建pthread线程;S10、线程绑定操作;S11、每个pthread线程将运算核组编号对应的运算核组启动;S12、进入等待线程结束的状态;S13、启动线程函数执行;S14、置线程结束的标志;S15、进行线程回收操作,更新加速核心的状态信息;S16、控制核心运行结束。本发明支持全芯片视角多模式的并行加速,以应对异构众核处理器的芯片特点和应用需求,为用户提供全片内存视角和全片资源管理方案。
-
公开(公告)号:CN112527299A
公开(公告)日:2021-03-19
申请号:CN201910879798.4
申请日:2019-09-18
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种针对异构众核的链接时优化方法,包括以下步骤:S11、编译器对加速核心代码进行处理,将生成的GIMPLE中间表示信息写入object文件中以“.gnu.lto_+函数名”为段名的ELF段中;S12、编译器链接时,将加速核心object文件链接到一起,并读取加速核心object文件中所有函数的GIMPLE中间表示信息;S13、编译器将S12中读取的所有函数的GIMPLE中间表示信息作为一个编译单元,进行链接时优化,生成加速核心汇编代码;S14、编译器调用加速核心汇编器生成的可直接由链接器进行链接的加速核心object文件;S15、编译器调用异构融合的链接器,将所有的控制核心object文件与S14中获得的加速核心object文件链接在一起,生成可执行码,完成链接。本发明针对加速核心代码进行链接时优化,能够减小异构程序可执行码大小,提高异构程序整体运行性能。
-
公开(公告)号:CN112445581A
公开(公告)日:2021-03-05
申请号:CN201910799253.2
申请日:2019-08-28
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种针对异构众核的快速线程启动方法,包括以下步骤:S1、控制核心进行线程信息初始化的工作;S2、控制核心获取加速核心上将要运行的线程函数的PC值、参数等信息;S3、控制核心根据异构众核的结构特征选择传输方式;S4、控制核心写入线程信息并置传输标志;S5、控制核心进入等待线程结束的状态;S6、加速核心进入等待传输标志的状态;S7、加速核心启动传输操作;S8、启动线程函数执行;S9、各加速核心的线程函数执行完毕后,进行加速核心间的同步操作;S10、通知控制核心线程函数已执行结束;S11、控制核心进行线程回收操作。本发明实现了快速的线程启动与回收,减少了控制核心和加速核心在线程启动交互过程中的访存和控制开销,为应用程序的高效执行奠定了基础。
-
-
-
-
-
-
-
-
-