-
公开(公告)号:CN102541727B
公开(公告)日:2015-07-08
申请号:CN201010594006.8
申请日:2010-12-17
Applicant: 无锡江南计算技术研究所
IPC: G06F11/36
Abstract: 本发明公开了一种程序调试方法及系统,能够将针对尚未研制成功的CPU芯片的程序转换为针对已研制成功并可靠性高的CPU芯片体系结构上的程序,并使用标准的调试器进行调试,对程序的正确性和性能进行分析和评估,从而避免了使用体系结构模拟器进行模拟所带来的处理速度慢、可靠性低的缺点。由于使用了已有的硬件资源和标准的调试器,所以处理速度较快,并且可靠性较高。
-
公开(公告)号:CN112558977B
公开(公告)日:2022-11-15
申请号:CN201910910502.0
申请日:2019-09-25
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种面向异构众核后端基于代价模型的多面体优化方法,包括以下步骤:S1、编译器解析位于主核和从核上的用户程序的编译标识,生成对应的主核中间表示和从核中间表示;S2、编译器对S1中生成的主核和从核的中间表示层代码进行分析和优化;S3、对是否实施多面体调度与优化方法进行收益评估;S4、对有收益的静态控制单元实施多面体调度与优化,生成新的中间表示;S5、编译器将新的向量中间表示生成可重定向文件;S6、将中的可重定向文件与库文件链接,生成可执行文件。本发明首次提出并实现了片上异构众核的程序多面体优化自动变换方法,并加入了主核和从核独立的代价模型计算框架,保证了在有收益的前提下进行程序变换以节省程序的编译时间。
-
公开(公告)号:CN112445520B
公开(公告)日:2022-11-15
申请号:CN201910794939.2
申请日:2019-08-27
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种针对循环内条件转移指令的转移预测优化方法,包括以下步骤:S11、判断一次循环内的指令条数是否能够满足带条件标记的运算指令在带条件转移标志位的条件转移指令之前至少提前N条的条件;S12、如果满足条件,编译器直接生成汇编代码,如果不满足,编译器根据循环体代码量与条件N计算需要循环展开的次数,进行循环展开,生成汇编代码;S13、带条件标记的运算指令提前改变条件转移指令的转移标志位;S14、条件转移指令根据对应的条件标记位进行判断,如果成立,则处理器根据条件转移标记指示跳转取指,否则顺序取指;S15、不论预测为跳转还是不跳转,条件标记位使用后即作废,转移指令条件标记位清0。本发明能够规避循环最后一次转移带来的性能损失。
-
公开(公告)号:CN112527264B
公开(公告)日:2022-10-04
申请号:CN201910886036.7
申请日:2019-09-19
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种基于异构平台的常量数据访问优化方法,包括以下步骤:S1、进行中间表示降级,即结合目标后端信息对中间表示进行降级处理,将常量节点降级为目标相关的节点;S2、分析中间表示,寻找常量节点,即进行常量数据分析,对常量数据的类型、大小及范围进行计算,且根据不同的架构后端采用不用的算法进行代价评估,生成降级节点;S3、生成汇编代码,即将生成的降级中间表示翻译为指令,并建立相应的数据段。本发明实现了精细化、自动化的常量数据访问优化选择,保证程序能最大限度的利用内存,优化常量数据内存使用,使常量数据访问的性能得到进一步的提升,从而提升国产异构从核平台的性能。
-
公开(公告)号:CN112558976B
公开(公告)日:2022-07-12
申请号:CN201910903889.7
申请日:2019-09-24
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种即时编译引擎自适应函数加载方法,面向异构众核平台,包括以下步骤:S1、对于一个函数符号,执行引擎检查其是否为外部函数;S2、对于一个S1中标记的外部函数符号,执行引擎检查其是否为从核函数,并使用对应的动态链接库加载函数加载包含该外部函数符号的动态链接库;S3、从步骤S2中加载的动态链接库中获取外部函数入口地址;S4、使用步骤S3中获取的外部函数入口地址,对用户程序代码段进行GOT表覆写和重定位回填。本发明实现了异构众核程序对核组空间的有效利用,完善了面向异构众核平台的即时编译引擎的功能。
-
公开(公告)号:CN109240702B
公开(公告)日:2022-06-14
申请号:CN201810929684.1
申请日:2018-08-15
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种多线程模式下的快速段式编址配置和访问方法,包括如下步骤:S101、用户程序中使用存储层次关键字;S102、编译器识别并处理用户程序中的关键字;S103、链接器处理重定位信息及多层次数据段;S104、加载器内存加载;S105、程序运行时读取内部寄存器。本发明在编译链接阶段识别和处理多层次存储关键字,程序加载阶段识别和处理多层次存储数据段,程序运行时充分利用CPU提供的内部寄存器获取本线程多层次存储数据段基址,提高了访存效率和灵活性。
-
公开(公告)号:CN112527303A
公开(公告)日:2021-03-19
申请号:CN201910885728.X
申请日:2019-09-19
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种面向即时编译的基于动态库的GOT表管理方法,包括以下步骤:S1、创建包含GOT表的动态链接库,此GOT表位于动态链接库的数据段;S2、在即时编译引擎解析重定位前,动态载入GOT表到内存空间,并获取GOT表的首地址;S3、即时编译引擎根据程序代码段的重定位类型,进行GOT表覆写和重定位回填;S4、在程序即时编译执行结束后,动态释放包含GOT表的动态链接库;S42、退出即时编译。本发明降低了LLVM即时编译引擎对新增硬件后端中GOT表的支持难度,提高了LLVM即时编译引擎的移植效率,在基于国产处理器的LLVM即时编译引擎中快速实现了基于动态库的GOT表管理。
-
公开(公告)号:CN112446471A
公开(公告)日:2021-03-05
申请号:CN201910799257.0
申请日:2019-08-28
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种基于异构众核处理器的卷积加速方法,包括以下步骤:S1、根据异构众核处理器的核数,确定输入特征图和卷积核的多核划分方法,实现众核并行加速,S2、各计算核心将划分后的数据通过DMA(直接存储器访问)的方式传输至片上存储器,实现片上存储加速,S3、将卷积操作核心计算过程中的标量计算操作优化为向量计算操作,实现SIMD指令加速,S4、结合异构众核处理器流水线特性,对卷积核心计算过程的指令流进行优化,以提高执行效率,实现指令并行加速。本发明对卷积操作进行加速,显著提升了卷积神经网络在异构众核处理器上的训练和推理性能。
-
公开(公告)号:CN112445482A
公开(公告)日:2021-03-05
申请号:CN201910794946.2
申请日:2019-08-27
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种面向容量受限的程序栈空间深度追溯方法,包括以下步骤:S1、在链接器中建立函数信息的数据结构,形成函数调用关系流程图;S2、获取所有的函数符号信息,建立相应的函数信息数据结构,并将函数的名称、PC值范围、自身栈空间深度信息安装到对应的函数信息结构中;S3、遍历程序所有的重定位信息,根据重定位信息来确定函数调用关系,根据分析结果更新各个函数信息的链表指针;S4、对建立的函数调用关系图做深度优先遍历,通过累加计算获取根节点函数的栈空间深度,对所有根节点栈空间深度做排序后输出。本发明通过静态分析的方法获取栈空间信息,无需重新编译,无需运行插桩,对于程序分析、错误定位以及程序优化有着很好的指导作用。
-
公开(公告)号:CN112445465A
公开(公告)日:2021-03-05
申请号:CN201910799245.8
申请日:2019-08-28
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种基于C代码生成的神经网络模型推理和训练方法,包括以下步骤:S1、以通过各种AI编程框架开发的模型作为输入,AI框架编译器识别各种模型格式并转化为统一的计算图,将输入的模型转化为底层IR;S2、将S1中生成的计算图输入C代码生成模块,输出总控函数;S3、C代码生成模块针对不同的底层IR,生成对应的C代码;S4、将生成的总控函数、各IR对应的C代码以及C‑基础算子库,输入到支持C语言和相应硬件平台的基础编译器,通过基础编译器的优化过程转化为运行程序,并在对应硬件平台上执行推理过程、训练过程。本发明实现了AI框架编译器在LLVM不支持的硬件平台上的快速移植,能够快速实现神经网络模型在LLVM不支持的特定硬件平台上的训练和推理过程。
-
-
-
-
-
-
-
-
-