-
公开(公告)号: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。本发明能够规避循环最后一次转移带来的性能损失。
-
公开(公告)号:CN112445481A
公开(公告)日:2021-03-05
申请号:CN201910794940.5
申请日:2019-08-27
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种低功耗的寄存器分配编译优化方法,包括以下步骤:S1、分析程序的热点函数和循环段;S2、统计热点代码段中依赖关系语句执行频率;S3、登记存在依赖关系语句中临时变量的生存周期;S4、关闭针对该依赖关系语句性能相关的指令调度优化,防止因为考虑流水线性能而进行的指令调度;S5、对每个依赖关系的临时变量进行基本块内的生存周期分析;S6、对每个依赖关系的临时变量进行跨基本块的生存周期分析;S7、遍历所有基本块,对标记为可低功耗优化的临时变量追踪其定义和使用点(define&use);S8、进行W_set指令循环外提优化。本发明在一定程度上优化系统运行功耗,且软硬件开发成本低,对降低功耗的方法简单直接,在考虑性能的前提下,最大限度的挖掘寄存器低功耗潜力。
-
公开(公告)号:CN112445724B
公开(公告)日:2022-09-13
申请号:CN201910805599.9
申请日:2019-08-29
Applicant: 无锡江南计算技术研究所
IPC: G06F12/0802 , G06F15/78
Abstract: 本发明公开一种针对片上存储器重用的链接时地址分配方法,包括以下步骤:S1、在编译器上构建片上存储器的重用段类型,生成片上存储器的访存模式;S2、在执行S1中操作的同时,对链接脚本进行配置;S31、链接器对S2中所述的链接脚本进行信息扫描,进入链接器的重用处理函数;S32、从二进制文件格式描述符文件中获取段信息;S33、循环处理S32中获取的段信息,识别并找出重用段;S34、解析出S12中所述的重用段属性的数据结构中所带的重用段名字,对满足同一个重用段名字的段分配相同的虚拟内存地址;S35、从S32中获取的段信息中找出最大的段,用作该重用段空间分配时的空间大小。本发明通过链接时地址分配方法实现空间重用,有效提高片上存储器的空间利用率、提升程序性能。
-
公开(公告)号:CN112445465B
公开(公告)日:2022-09-13
申请号: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不支持的特定硬件平台上的训练和推理过程。
-
公开(公告)号:CN114661460A
公开(公告)日:2022-06-24
申请号:CN202210136541.1
申请日:2022-02-15
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种面向异构众核处理器的AI框架两级并行加速方法,包括以下步骤:AI框架调用模型优化模块优化深度学习模型或者预训练好的模型,将其组织成更具可并行性的树形计算图;AI框架将优化后的树形计算图转换成由计算任务组成的线程池;线程管理模块根据相关性将线程池组织成不同的线程队列;线程管理模块监测各个核组的状态,如果发现某个核组处于空闲状态,则将某队列的计算任务调度到该核组上执行;当整个运行任务完成后,线程管理模块和核组管理模块均中止运行,等到下一次运行任务开始后。本发明可以充分利用异构众核的多级存储资源和计算能力,实现自动化的AI框架两级并行加速,显著提升AI框架在异构众核上的好用性和高性能。
-
公开(公告)号:CN114564150A
公开(公告)日:2022-05-31
申请号:CN202210185703.0
申请日:2022-02-28
Applicant: 无锡江南计算技术研究所
IPC: G06F3/06
Abstract: 本发明公开一种动态链接模式片上存储器空间分配方法,包括以下步骤:在程序源文件中为需要优化的数据添加动态链接模式局部存储器数据关键字__ldm;编译器判断该局部存储器变量是否位于动态库中;对于动态库中的局部存储器变量,在链接脚本中为其设置单独的PT_LOAD段;对于动态库中的局部存储器变量,在动态链接器中修正局部存储器数据地址。本发明能够有效避免动态库中LDM变量地址相互冲突的问题,显著提升了异构众核AI处理器的好用性。
-
公开(公告)号:CN112650539A
公开(公告)日:2021-04-13
申请号:CN201910918622.5
申请日:2019-09-26
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种面向异构众核处理器的动态链接运行支撑方法,包括以下步骤:S1、将用户的控制核心程序、加速核心程序及加速核心静态库链接到可执行程序中,获得异构混合动态链接的可执行程序;S2、运行异构混合动态链接的可执行程序;S3、提供一动态混合链接选项,实现异构程序的混合链接;S4、程序加载器分析异构混合动态链接的可执行程序的各个段,通过interp段解析标准动态链接器的地址;S5、向操作系统申请页氏空间,用于加载控制核心动态库;S6、实现基于众核空间的动态分配策略;S7、新增接口dlopen_hybrid,支持异构混合动态库中控制核心代码和加速核心代码正确运行。本发明既能保证控制核心代码兼容动态链接功能和动态运行模式,也能通过充分发挥加速核心的加载和运行效率。
-
公开(公告)号:CN112631893A
公开(公告)日:2021-04-09
申请号:CN201910903842.0
申请日:2019-09-24
Applicant: 无锡江南计算技术研究所
IPC: G06F11/36
Abstract: 本发明公开一种面向异构平台的多层次存储结构内存检测方法,基于异构众核处理器的编译器和运行时库,包括以下步骤:S1、实现自定义动态运行时库;S2、在自定义动态运行时库中,当从核程序发生段为例异常或终止异常时,从核向主核发送异常中断信号,主核代理从核进行异常处理;S3、主核、从核分别对源程序进行编译分析,将源程序处理为中间代码,并在中间代码上对需要插桩的位置进行插桩处理;S4、编译器将S3中处理过的中间代码,编译、汇编、链接,生成可执行代码,进而生成可执行文件并运行。本发明在拥有多指令集、多层次存储结构的异构众核处理器上实现内存错误的动态检测,检测的错误类型多,且错误信息描述详尽,定位精准,检测效果较好。
-
公开(公告)号:CN114217770B
公开(公告)日:2025-05-16
申请号:CN202110325186.8
申请日:2021-03-26
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种基于异构众核架构的C++融合编程方法,包括以下步骤:S1、主核以头文件“athreadcxx.h”的形式提供athreadcxx类的对象;S2、athreadcxx类的对象通过构造函数进行从核资源的初始化,通过析构函数进行从核资源的回收;S3、编译器通过选项‑mhost将使用athreadcxx类的对象编程的主核程序进行编译;S4、从核以头文件“slavecxx.h”的形式提供线程私有全局变量PEN、COL和ROW,用于保存当前从核的编号和行列信息。本发明解决了不同架构的指令集混合链接符号多重定义问题、从核间的全局变量访存问题。
-
-
-
-
-
-
-
-
-