-
公开(公告)号: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中处理过的中间代码,编译、汇编、链接,生成可执行代码,进而生成可执行文件并运行。本发明在拥有多指令集、多层次存储结构的异构众核处理器上实现内存错误的动态检测,检测的错误类型多,且错误信息描述详尽,定位精准,检测效果较好。
-
公开(公告)号:CN112527263A
公开(公告)日:2021-03-19
申请号:CN201910885748.7
申请日:2019-09-19
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种基于国产异构平台的自适应可变参数优化方法,包括以下步骤:S1、根据架构信息选择相应架构的ABI接口,编译器前端根据相应的ABI接口中的ABI约定对源程序进行处理,生成中间表示;S2、编译器后端扫描分析函数中的可变参函数,收集可变参函数的参数使用情况;S3、根据S2中扫描分析得到的信息,依据可变参数的数据类型和可变参数所存入的寄存器的不同,对可变参数进行后端对函数降级前的处理,为编译器后端的函数降级过程做准备;S4、编译器后端对可变参数的内建函数进行降级处理,获得降级后的中间表示;S5、生成汇编文件,即根据降级后的中间表示生成汇编指令。本发明实现了优化可变参函数的内存和减少访存指令的算法,提高了程序的性能。
-
公开(公告)号:CN112445480A
公开(公告)日:2021-03-05
申请号:CN201910794737.8
申请日:2019-08-27
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种面向处理器指令cache的低功耗编译方法,包括以下步骤:S1、寻找最内层循环;S2、判断寻找到的最内层循环是否可以展开;S3、结合L0 cache计算展开次数:即根据循环体的最大伪指令条数MAX_UNROLLED_INSNS、循环体的最大平均伪指令条MAX_AVERAGE_UNROLLED_INSNS和最大展开次数MAX_UNROLL_TIMES,计算展开次数;S4、根据展开次数实现代码展开;S5、在编译器中端,对循环中语句建立依赖关系图,并把循环中每一条语句设为一个区域;S6、遍历所有区域,检查是否有生产者消费者的依赖关系;S7、根据L0 cache容量大小确定最优分区大小;S8、有选择的进行合并语句;S9、将剩余的每一个分区都生成一个循环树,实现循环剥离。本发明实现了循环优化的精细控制策略,保证L0 cache的高命中率,有效降低取指和译码功耗,以提高性能减少功耗。
-
公开(公告)号:CN102981883B
公开(公告)日:2016-01-13
申请号:CN201210420971.2
申请日:2012-10-29
Applicant: 无锡江南计算技术研究所
Abstract: 本发明实施例提供一种编译器数据预取方法和装置,以实现高效的访存优化。所述方法包括:提供硬件指令查询软件管理片上存储器SPM中划分的局存空间,所述硬件指令包含数据的主存地址;若在所述SPM局存空间查询到所述主存地址对应的数据,则读取所述主存地址对应的数据;若在所述SPM局存空间没有查询到所述主存地址对应的数据,则根据所述硬件指令进行不命中处理以将数据预取到所述SPM局存空间。本发明充分利用硬件的高效性和软件灵活性,以较小的硬件开销实现高效的访存优化,在此基础上实现了结合硬件支持和精简的预取算法的基于软硬件协同管理机制的编译器数据预取方法,在性能上要优于纯软件算法,保证了软件算法的灵活性。
-
公开(公告)号:CN102541611A
公开(公告)日:2012-07-04
申请号:CN201010597808.4
申请日:2010-12-21
Applicant: 无锡江南计算技术研究所
IPC: G06F9/45
CPC classification number: Y02D10/41
Abstract: 一种指令翻译装置和方法、指令处理装置和处理器,所述指令处理装置包括,拆分单元,将逻辑运算指令拆分为多条单逻辑运算指令;转换单元,将所述单逻辑运算指令转换成具有预定格式的中间指令,所述预定格式包含逻辑值、源操作数和目标操作数;合并单元,合并预定指令及其定值点指令生成具有所述预定格式的合并指令;所述预定指令是指源操作数具有定值点指令的中间指令,所述预定指令的定值点指令是指对该预定指令的源操作数进行赋值的中间指令;所述合并指令的逻辑值通过数组索引所述预定指令及其定值点指令的逻辑值生成。本发明的指令翻译装置和方法、指令处理装置和处理器,提高了处理器处理逻辑运算的效率,降低了处理器的功耗。
-
-
-
-
-
-
-
-