-
公开(公告)号:CN114217810B
公开(公告)日:2025-05-20
申请号:CN202110398340.4
申请日:2021-04-14
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种数据cache属性细粒度切换的方法,包括以下步骤:S1:编译选项识别:从程序的编译命令中识别‑fdynamic‑uncache‑symbols选项,若识别成功,使能编译器cache动态配置机制;S2:循环处理程序声明的数据,判定数据默认的Cache属性;S3.1:针对默认属性为可Cache访问的数据,假定其符号为“xxx”,编译器进行编译指示处理;S3.2:针对默认属性为不可Cache访问的数据,假定其符号为“xxx”,编译器进行编译指示处理本发明提高了用户程序数据对Cache空间的整体利用率,进而提高程序运行性能。
-
公开(公告)号:CN114217806B
公开(公告)日:2025-01-10
申请号:CN202110347315.3
申请日:2021-03-31
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种基于cache写暗示机制的编译优化方法,自动识别对连续主存进行写操作的指令序列,并通过指令插桩,对这些指令序列的访存行为进行优化,包括以下步骤:S1:对代码中所有写操作进行识别,并通过插桩的方式进行标记;S2:对S1中识别的写操作的数据单元访问连续性进行判定,如果满足连续性要求,则更新cachesc指令参数;S3:写操作边界处理。本发明可减少因繁琐的存储管理对代码生产过程的干扰,进一步降低访存延迟,提高存储系统性能。
-
公开(公告)号:CN114217810A
公开(公告)日:2022-03-22
申请号:CN202110398340.4
申请日:2021-04-14
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种数据cache属性细粒度切换的方法,包括以下步骤:S1:编译选项识别:从程序的编译命令中识别‑fdynamic‑uncache‑symbols选项,若识别成功,使能编译器cache动态配置机制;S2:循环处理程序声明的数据,判定数据默认的Cache属性;S3.1:针对默认属性为可Cache访问的数据,假定其符号为“xxx”,编译器进行编译指示处理;S3.2:针对默认属性为不可Cache访问的数据,假定其符号为“xxx”,编译器进行编译指示处理本发明提高了用户程序数据对Cache空间的整体利用率,进而提高程序运行性能。
-
公开(公告)号:CN114217806A
公开(公告)日:2022-03-22
申请号:CN202110347315.3
申请日:2021-03-31
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种基于cache写暗示机制的编译优化方法,自动识别对连续主存进行写操作的指令序列,并通过指令插桩,对这些指令序列的访存行为进行优化,包括以下步骤:S1:对代码中所有写操作进行识别,并通过插桩的方式进行标记;S2:对S1中识别的写操作的数据单元访问连续性进行判定,如果满足连续性要求,则更新cachesc指令参数;S3:写操作边界处理。本发明可减少因繁琐的存储管理对代码生产过程的干扰,进一步降低访存延迟,提高存储系统性能。
-
公开(公告)号:CN114217804A
公开(公告)日:2022-03-22
申请号:CN202110324723.7
申请日:2021-03-26
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种支持多格式半精度浮点的编译方法,包括以下步骤:S1、用户代码使用编译器提供的float16关键字来申明半精度浮点数据类型;S2、用户代码根据需要调用半精度浮点数据格式切换接口进行格式切换;S3、用户代码在切换半精度浮点数据格式后,调用编译器提供的半精度浮点数据转换接口进行数据格式转换;S4、在完成半精度浮点数据格式切换与数据转换后,用户程序在当前半精度浮点格式下进行后续的计算,需要再次切换半精度浮点格式时重复S2、S3。本发明可以在不增加代码编写复杂度的前提下发挥FP16和BF16两种半精度浮点格式的优势,满足应用场景使用半精度浮点加速计算的需求。
-
公开(公告)号:CN114217804B
公开(公告)日:2025-05-16
申请号:CN202110324723.7
申请日:2021-03-26
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种支持多格式半精度浮点的编译方法,包括以下步骤:S1、用户代码使用编译器提供的float16关键字来申明半精度浮点数据类型;S2、用户代码根据需要调用半精度浮点数据格式切换接口进行格式切换;S3、用户代码在切换半精度浮点数据格式后,调用编译器提供的半精度浮点数据转换接口进行数据格式转换;S4、在完成半精度浮点数据格式切换与数据转换后,用户程序在当前半精度浮点格式下进行后续的计算,需要再次切换半精度浮点格式时重复S2、S3。本发明可以在不增加代码编写复杂度的前提下发挥FP16和BF16两种半精度浮点格式的优势,满足应用场景使用半精度浮点加速计算的需求。
-
公开(公告)号:CN112527300B
公开(公告)日:2023-06-13
申请号:CN201910879803.1
申请日:2019-09-18
Applicant: 无锡江南计算技术研究所
IPC: G06F8/41
Abstract: 本发明公开一种面向多目标的细粒度编译自调优方法,包括以下步骤:S1、根据用户需求,确定编译优化的目标;S2、进行代码核心段标识,即对程序的执行时间进行拆分,并按照程序的执行时间长短对程序内的核心段函数进行排序,根据设定的阈值n,选取程序的执行时间最长的若干核心段函数;S3、对代码进行插桩,根据编译优化的目标,选择对应的插桩接口,用于量化评估编译优化效果;S4、修改配置文件,并启动自调优操作;S5、对调优结果的历史信息进行聚类分析,修改迭代过程的启发式策略。本发明能够挖掘编译优化选项的性能潜力,提高编译器的用户友好性,缩短用户进行应用调优的学习曲线。
-
公开(公告)号:CN114217937A
公开(公告)日:2022-03-22
申请号:CN202110348948.6
申请日:2021-03-31
Applicant: 无锡江南计算技术研究所
Abstract: 本发明公开一种缓解假共享问题的编译器支持方法,包括以下步骤:S1、用户在程序中,对多线程Cache之间可能存在假共享的变量声明分别使用__attribute__((cacheline))接口;S2、编译器将声明树节点的基类tree_decl_common结构体中的标志位cacheline置为1,将align设置为Cache Line大小,并将tree_decl_common的基类tree_base结构体中的user_align置为1。本发明解决了某些Cache结构不保证横向一致性带来的假共享问题。
-
公开(公告)号:CN114218148A
公开(公告)日:2022-03-22
申请号:CN202110398334.9
申请日:2021-04-14
Applicant: 无锡江南计算技术研究所
IPC: G06F15/167 , G06F15/177
Abstract: 本发明公开一种片上存储空间动态配置方法,包括以下步骤:S1、读取输入参数;S2、读取硬件的LDM配置寄存器;S3、获取计算核栈空间大小及计算核的栈指针;S4、对new_cache_size和old_cache_size进行比较;S5、将计算核栈空间转移至新分配的该局存空间中;S6、确认本计算核相关的DMA操作均已完成;S7、刷新计算核Cache;S8、对new_cache_size和old_cache_size进行比较;S9、释放mem_a空间,转到S11执行。本发明可以避免固定配置下因为LDM或者Cache容量不足造成的性能损失,最大程度发挥其性能优势。
-
公开(公告)号:CN114217938A
公开(公告)日:2022-03-22
申请号:CN202110349032.2
申请日:2021-03-31
Applicant: 无锡江南计算技术研究所
IPC: G06F9/50
Abstract: 本发明公开一种动态内存管理方法,包括以下步骤:S1、在运行课题时指定x属性内存空间的总大小;S2、开辟相应大小的x属性内存空间;S3将目标码中的静态x属性内存空间映射到S2中所开辟的x属性内存空间的前半部分,剩余的后半部分x属性内存空间即为动态x属性内存空间;S4、用户课题在代码中调用xspace_malloc函数动态申请x属性内存空间;S6、用户课题可以在代码中调用get_allocatable_xspace_size获取当前剩余的动态x属性内存空间大小。本发明解决了在支持多空间属性的编程环境中,单纯使用malloc、free函数无法满足多空间属性的动态内存管理需求的问题。
-
-
-
-
-
-
-
-
-