面向处理器指令cache的低功耗编译方法

    公开(公告)号:CN112445480A

    公开(公告)日:2021-03-05

    申请号:CN201910794737.8

    申请日:2019-08-27

    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的高命中率,有效降低取指和译码功耗,以提高性能减少功耗。

    一种Cache一致性极限测试方法

    公开(公告)号:CN105446840B

    公开(公告)日:2019-02-12

    申请号:CN201510827235.2

    申请日:2015-11-24

    Abstract: 本发明提供了一种Cache一致性极限测试方法,包括:执行Cache的规模和结构配置,其中根据Cache大小、Cache行长度、相连路组的数量以及一致性策略,确定Cache一致性极限测试的粒度、访存顺序和访存的Cache入口地址,而不遍历整个Cache;设置用于精确错误定位的初始值和数据还原运算,其中采用地址作为初始值,数据还原操作采用拍数最少的移位运算;设置多粒度高密度访存方式,其中使得Cache的操作以Cache行为单位,不同的处理器以并行进程同时或交替对同一个Cache行进行访存;设置与系统相关的Cache协议验证。

    一种基于多版本代码生成的众核循环分块方法

    公开(公告)号:CN105242909B

    公开(公告)日:2017-08-11

    申请号:CN201510829920.9

    申请日:2015-11-24

    Abstract: 本发明提供了一种基于多版本代码生成的众核循环分块方法,其中众核处理器由控制核心和计算核心阵列组成,其中每个计算核心带有一块高速缓存;而且其中每个计算核心自带的一块高速缓存作为片上存储以存储器直接访问的方式与主存进行数据传输;其特征在于,编译器在对众核循环进行并行变换时,根据编译器指示的值来确定循环分块的粒度,从而生成不同版本的并行代码,同时编译器通过代码插装的方式将片上存储的使用信息在运行时进行反馈以便能够根据反馈的使用信息对编译指示的值进行相应的调整,以使得片上存储的利用率最大化。

    一种Cache一致性极限测试方法

    公开(公告)号:CN105446840A

    公开(公告)日:2016-03-30

    申请号:CN201510827235.2

    申请日:2015-11-24

    CPC classification number: G06F11/2205 G06F11/2247 G06F11/2294 G06F11/263

    Abstract: 本发明提供了一种Cache一致性极限测试方法,包括:执行Cache的规模和结构配置,其中根据Cache大小、Cache行长度、相连路组的数量以及一致性策略,确定Cache一致性极限测试的粒度、访存顺序和访存的Cache入口地址,而不遍历整个Cache;设置用于精确错误定位的初始值和数据还原运算,其中采用地址作为初始值,数据还原操作采用拍数最少的移位运算;设置多粒度高密度访存方式,其中使得Cache的操作以Cache行为单位,不同的处理器以并行进程同时或交替对同一个Cache行进行访存;设置与系统相关的Cache协议验证。

    一种编译器及软件管理存储器的重用优化方法

    公开(公告)号:CN102880497B

    公开(公告)日:2015-05-20

    申请号:CN201210372306.0

    申请日:2012-09-28

    Abstract: 本发明实施例公开了一种编译器及软件管理存储器的重用优化方法,用于对软件管理存储器进行重用优化,实现软件管理存储器的空间重用分配。本发明实施例中的编译器包括:分析模块,用于根据待写入软件管理存储器的变量的排布方式增加关键字,将关键字及变量的信息发送给编译模块;编译模块,用于识别关键字,为关键字设置重用标识;对设置了重用标识的关键字对应的变量生成具有重用特征的代码形式,将具有重用特征的代码形式发送给链接模块;链接模块,用于根据具有重用特征的代码形式生成临时链接脚本,对临时链接脚本进行链接处理,并进行重用变量的排布,实现软件管理存储器的空间重用分配。

    一种基于异构众核架构的C++融合编程方法

    公开(公告)号:CN114217770B

    公开(公告)日:2025-05-16

    申请号:CN202110325186.8

    申请日:2021-03-26

    Abstract: 本发明公开一种基于异构众核架构的C++融合编程方法,包括以下步骤:S1、主核以头文件“athreadcxx.h”的形式提供athreadcxx类的对象;S2、athreadcxx类的对象通过构造函数进行从核资源的初始化,通过析构函数进行从核资源的回收;S3、编译器通过选项‑mhost将使用athreadcxx类的对象编程的主核程序进行编译;S4、从核以头文件“slavecxx.h”的形式提供线程私有全局变量PEN、COL和ROW,用于保存当前从核的编号和行列信息。本发明解决了不同架构的指令集混合链接符号多重定义问题、从核间的全局变量访存问题。

    一种面向量子加速设备的混合式编译方法

    公开(公告)号:CN115271084A

    公开(公告)日:2022-11-01

    申请号:CN202210933691.5

    申请日:2022-08-04

    Abstract: 一种面向量子加速设备的混合式编译方法,属于量子计算技术领域。本发明包括如下步骤:步骤S1,通过标准化的量子代码编程接口,对混合代码中的经典代码与量子代码进行识别;步骤S2,对经典代码进行编译,生成可执行码;步骤S3,运行经典代码的可执行码,若遇到量子代码编程接口,则进行步骤S4,并在接收到步骤S5的运行结果后,继续运行并重复本步骤的操作,直至整个计算进程结束;步骤S4,对量子代码进行编译,生成可执行码;步骤S5,运行量子代码的可执行码。本发明操作简单高效,易于实现,同时可靠性高。

    一种超级计算机与量子计算机协同的软件栈及工作方法

    公开(公告)号:CN115271078A

    公开(公告)日:2022-11-01

    申请号:CN202210933684.5

    申请日:2022-08-04

    Abstract: 一种超级计算机与量子计算机协同的软件栈及工作方法,属于量子计算技术领域。本发明的软件栈包括:经典与量子协同编程框架:在经典编程模型框架中新增量子语言要素的扩展;异构融合编译环境:能够通过要素分析识别出经典与量子混合应用程序中的经典程序部分和量子程序部分;经典与量子协同操作系统:将硬件资源进行了抽象并提供相应的驱动程序;量子指令集:对量子计算机硬件系统进行控制的指令集,与量子物理体系进行耦合。本发明将超级计算机软件模型与量子计算机软件模型融合,即能够保证传统超级计算机正常运行,又能发挥量子加速计算的性能优势,推进量子计算机更广泛应用。

    基于数据压缩存储的细粒度并行查表方法

    公开(公告)号:CN112636765B

    公开(公告)日:2022-07-12

    申请号:CN201910903873.6

    申请日:2019-09-24

    Abstract: 本发明公开了一种基于数据压缩存储的细粒度并行查表方法,包括以下步骤,原始数据压缩,将原细元素粒度的表按照其粒度压缩存储为int类型的表X;根据原表元素粒度生成不同的掩码表Y;根据原表元素粒度对原查表偏移进行处理,得到偏移量为A和B;按查表偏移A按int类型并行查表X,得到查表结果X1;按查表偏移B按int类型并行查表Y,得到查表结果Y1;对X1和Y1进行逻辑运算及移位操作得到最终查表结果。本发明是对用户原始细粒度表元素合并压缩存储,通过增加简单逻辑运算及移位运算实现细粒度的并行查表功能,有效避免以int为单位进行查表导致的空间膨胀,大大提升了具有细粒度查表类课题的向量并行优化的可能性。

Patent Agency Ranking