-
公开(公告)号:CN112445488B
公开(公告)日:2022-11-15
申请号:CN201910831166.0
申请日:2019-09-04
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种异构平台下宽度非对称向量兼容性的编译处理方法和装置,包括以下模块:编译器预处理模块,用于对非对称异构向量的统一声明,还用于通过编译选项来控制对应的数据和接口调用的target预处理,转换为对应平台自身适应的接口;编译器前端中端分析模块,用于根据接口的调用方式,进行内部中间表示的转换或者向量降级,生成对应平台的中间表示;编译器后端拆分模块,用于根据中间表示,生成对应的后端指令。本发明实现主从核编译器向量开发的继承性、减少用户程序异构编码限制,无需去关注异构平台对向量支持的差异性。
-
公开(公告)号:CN112445485B
公开(公告)日:2022-11-15
申请号:CN201910799256.6
申请日:2019-08-28
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种基于编译实现的可扩展向量掩码功能的方法和装置,包括以下步骤:S1、编译器输入用户程序,根据目标平台翻译出正确的掩码向量接口;S2、编译器前端模块对S1中获得的掩码向量接口进行关键字识别,选择对应平台的中端处理入口;S3、编译器中端模块根据目标平台的指令结构对掩码向量接口进行分析,选择合适的处理流程;S4、编译器后端模块将编译器中端模块生成的中间生成代码转换生成最终指令;S5、编译器根据向量宽度的增加,完成对平台向量宽度的识别,选择合适宽度的向量转换和掩码生成。本发明降低了重新开发代码的工作量和复杂度及用户移植的复杂度,更进一步的挖掘了课题的指令级并行性能。
-
公开(公告)号: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、控制核心运行结束。本发明支持全芯片视角多模式的并行加速,以应对异构众核处理器的芯片特点和应用需求,为用户提供全片内存视角和全片资源管理方案。
-
公开(公告)号:CN112540764A
公开(公告)日:2021-03-23
申请号:CN201910897632.5
申请日:2019-09-23
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种条件转移预测方向变换的编译优化方法,当发现因为频繁的分支预测失败带来了严重的性能损失时,执行以下步骤:S1、对源程序重新进行编译,并在编译时添加转移预测方向变换的编译优化选项;S2、对源程序进行控制流分析,并将源程序划分为若干个基本块,同时识别出包含在源程序的最内层循环的条件分支语句,并将其划分为几个独立的基本块,将第一个基本块打上分支预测失败的特殊属性;S3、在具有分支预测失败特殊属性的基本块的起始位置插入一条转移预测器方向切换指令;S4、编译器继续进行剩余的编译过程,产生目标代码。本发明可以避免嵌汇编方式带来的性能损失和潜在的错误问题,还可以提高条件转移预测准确率,达到降低性能损失的目的。
-
公开(公告)号: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文件链接在一起,生成可执行码,完成链接。本发明针对加速核心代码进行链接时优化,能够减小异构程序可执行码大小,提高异构程序整体运行性能。
-
公开(公告)号:CN112445724A
公开(公告)日:2021-03-05
申请号:CN201910805599.9
申请日:2019-08-29
Applicant: 无锡江南计算技术研究所
IPC: G06F12/0802 , G06F15/78
Abstract: 本发明公开一种针对片上存储器重用的链接时地址分配方法,包括以下步骤:S1、在编译器上构建片上存储器的重用段类型,生成片上存储器的访存模式;S2、在执行S1中操作的同时,对链接脚本进行配置;S31、链接器对S2中所述的链接脚本进行信息扫描,进入链接器的重用处理函数;S32、从二进制文件格式描述符文件中获取段信息;S33、循环处理S32中获取的段信息,识别并找出重用段;S34、解析出S12中所述的重用段属性的数据结构中所带的重用段名字,对满足同一个重用段名字的段分配相同的虚拟内存地址;S35、从S32中获取的段信息中找出最大的段,用作该重用段空间分配时的空间大小。本发明通过链接时地址分配方法实现空间重用,有效提高片上存储器的空间利用率、提升程序性能。
-
公开(公告)号:CN112445581A
公开(公告)日:2021-03-05
申请号:CN201910799253.2
申请日:2019-08-28
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种针对异构众核的快速线程启动方法,包括以下步骤:S1、控制核心进行线程信息初始化的工作;S2、控制核心获取加速核心上将要运行的线程函数的PC值、参数等信息;S3、控制核心根据异构众核的结构特征选择传输方式;S4、控制核心写入线程信息并置传输标志;S5、控制核心进入等待线程结束的状态;S6、加速核心进入等待传输标志的状态;S7、加速核心启动传输操作;S8、启动线程函数执行;S9、各加速核心的线程函数执行完毕后,进行加速核心间的同步操作;S10、通知控制核心线程函数已执行结束;S11、控制核心进行线程回收操作。本发明实现了快速的线程启动与回收,减少了控制核心和加速核心在线程启动交互过程中的访存和控制开销,为应用程序的高效执行奠定了基础。
-
公开(公告)号:CN112445520A
公开(公告)日:2021-03-05
申请号:CN201910794939.2
申请日:2019-08-27
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种针对循环内条件转移指令的转移预测优化方法,包括以下步骤:S11、判断一次循环内的指令条数是否能够满足带条件标记的运算指令在带条件转移标志位的条件转移指令之前至少提前N条的条件;S12、如果满足条件,编译器直接生成汇编代码,如果不满足,编译器根据循环体代码量与条件N计算需要循环展开的次数,进行循环展开,生成汇编代码;S13、带条件标记的运算指令提前改变条件转移指令的转移标志位;S14、条件转移指令根据对应的条件标记位进行判断,如果成立,则处理器根据条件转移标记指示跳转取指,否则顺序取指;S15、不论预测为跳转还是不跳转,条件标记位使用后即作废,转移指令条件标记位清0。本发明能够规避循环最后一次转移带来的性能损失。
-
公开(公告)号:CN105426226A
公开(公告)日:2016-03-23
申请号:CN201510828419.0
申请日:2015-11-24
Applicant: 无锡江南计算技术研究所
IPC: G06F9/45
CPC classification number: G06F8/443
Abstract: 本发明提供了一种异构代码融合的编译和生成方法,包括:利用运算控制核心编译器和运算核心编译器分别为运算控制核心和运算核心生成第一对象文件和第二对象文件;运算核心编译器自动实现对第一对象文件中的函数的重命名,在函数名的前加上前缀;链接器将重命名后第一对象文件与第二对象文件链接融合为统一的可执行程序。
-
公开(公告)号:CN114217804B
公开(公告)日:2025-05-16
申请号:CN202110324723.7
申请日:2021-03-26
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种支持多格式半精度浮点的编译方法,包括以下步骤:S1、用户代码使用编译器提供的float16关键字来申明半精度浮点数据类型;S2、用户代码根据需要调用半精度浮点数据格式切换接口进行格式切换;S3、用户代码在切换半精度浮点数据格式后,调用编译器提供的半精度浮点数据转换接口进行数据格式转换;S4、在完成半精度浮点数据格式切换与数据转换后,用户程序在当前半精度浮点格式下进行后续的计算,需要再次切换半精度浮点格式时重复S2、S3。本发明可以在不增加代码编写复杂度的前提下发挥FP16和BF16两种半精度浮点格式的优势,满足应用场景使用半精度浮点加速计算的需求。
-
-
-
-
-
-
-
-
-