基于C代码生成的神经网络模型推理和训练方法

    公开(公告)号:CN112445465B

    公开(公告)日:2022-09-13

    申请号:CN201910799245.8

    申请日:2019-08-28

    Abstract: 本发明公开一种基于C代码生成的神经网络模型推理和训练方法,包括以下步骤:S1、以通过各种AI编程框架开发的模型作为输入,AI框架编译器识别各种模型格式并转化为统一的计算图,将输入的模型转化为底层IR;S2、将S1中生成的计算图输入C代码生成模块,输出总控函数;S3、C代码生成模块针对不同的底层IR,生成对应的C代码;S4、将生成的总控函数、各IR对应的C代码以及C‑基础算子库,输入到支持C语言和相应硬件平台的基础编译器,通过基础编译器的优化过程转化为运行程序,并在对应硬件平台上执行推理过程、训练过程。本发明实现了AI框架编译器在LLVM不支持的硬件平台上的快速移植,能够快速实现神经网络模型在LLVM不支持的特定硬件平台上的训练和推理过程。

    一种无横向一致性的众核精简Cache协议实现方法

    公开(公告)号:CN114217809A

    公开(公告)日:2022-03-22

    申请号:CN202110398338.7

    申请日:2021-04-14

    Abstract: 本发明公开一种无横向一致性的众核精简Cache协议实现方法,包括以下步骤:S1、对Cache行内数据更新情况进行分析,标记出被更新的数据;S2、如果Cache行内所有数据都没有被更新,或者Cache行内所有数据都被更新,跳转至S5,如果Cache行内只有部分数据被更新,跳转至S3;S3、当一个Cache行内的数据只有部分内容需要写回时,其他位掩码置0;S4、根据掩码粒度大小与置位情况,更新主存中对应掩码位为1的数据;S5、直接对Cache行进行写回操作。本发明有效解决共享主存Cache结构的假共享问题,还可以提高写回效率、有效降低处理器在Cache数据管理方面的硬件开销。

    基于cache写暗示机制的编译优化方法

    公开(公告)号:CN114217806A

    公开(公告)日:2022-03-22

    申请号:CN202110347315.3

    申请日:2021-03-31

    Abstract: 本发明公开一种基于cache写暗示机制的编译优化方法,自动识别对连续主存进行写操作的指令序列,并通过指令插桩,对这些指令序列的访存行为进行优化,包括以下步骤:S1:对代码中所有写操作进行识别,并通过插桩的方式进行标记;S2:对S1中识别的写操作的数据单元访问连续性进行判定,如果满足连续性要求,则更新cachesc指令参数;S3:写操作边界处理。本发明可减少因繁琐的存储管理对代码生产过程的干扰,进一步降低访存延迟,提高存储系统性能。

    支持多格式半精度浮点的编译方法

    公开(公告)号:CN114217804A

    公开(公告)日:2022-03-22

    申请号:CN202110324723.7

    申请日:2021-03-26

    Abstract: 本发明公开一种支持多格式半精度浮点的编译方法,包括以下步骤:S1、用户代码使用编译器提供的float16关键字来申明半精度浮点数据类型;S2、用户代码根据需要调用半精度浮点数据格式切换接口进行格式切换;S3、用户代码在切换半精度浮点数据格式后,调用编译器提供的半精度浮点数据转换接口进行数据格式转换;S4、在完成半精度浮点数据格式切换与数据转换后,用户程序在当前半精度浮点格式下进行后续的计算,需要再次切换半精度浮点格式时重复S2、S3。本发明可以在不增加代码编写复杂度的前提下发挥FP16和BF16两种半精度浮点格式的优势,满足应用场景使用半精度浮点加速计算的需求。

    基于国产异构平台的自适应可变参数优化方法

    公开(公告)号:CN112527263A

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

    申请号:CN201910885748.7

    申请日:2019-09-19

    Abstract: 本发明公开一种基于国产异构平台的自适应可变参数优化方法,包括以下步骤:S1、根据架构信息选择相应架构的ABI接口,编译器前端根据相应的ABI接口中的ABI约定对源程序进行处理,生成中间表示;S2、编译器后端扫描分析函数中的可变参函数,收集可变参函数的参数使用情况;S3、根据S2中扫描分析得到的信息,依据可变参数的数据类型和可变参数所存入的寄存器的不同,对可变参数进行后端对函数降级前的处理,为编译器后端的函数降级过程做准备;S4、编译器后端对可变参数的内建函数进行降级处理,获得降级后的中间表示;S5、生成汇编文件,即根据降级后的中间表示生成汇编指令。本发明实现了优化可变参函数的内存和减少访存指令的算法,提高了程序的性能。

    面向处理器指令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属性细粒度切换的方法

    公开(公告)号:CN114217810B

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

    申请号:CN202110398340.4

    申请日:2021-04-14

    Abstract: 本发明公开一种数据cache属性细粒度切换的方法,包括以下步骤:S1:编译选项识别:从程序的编译命令中识别‑fdynamic‑uncache‑symbols选项,若识别成功,使能编译器cache动态配置机制;S2:循环处理程序声明的数据,判定数据默认的Cache属性;S3.1:针对默认属性为可Cache访问的数据,假定其符号为“xxx”,编译器进行编译指示处理;S3.2:针对默认属性为不可Cache访问的数据,假定其符号为“xxx”,编译器进行编译指示处理本发明提高了用户程序数据对Cache空间的整体利用率,进而提高程序运行性能。

    基于cache写暗示机制的编译优化方法

    公开(公告)号:CN114217806B

    公开(公告)日:2025-01-10

    申请号:CN202110347315.3

    申请日:2021-03-31

    Abstract: 本发明公开一种基于cache写暗示机制的编译优化方法,自动识别对连续主存进行写操作的指令序列,并通过指令插桩,对这些指令序列的访存行为进行优化,包括以下步骤:S1:对代码中所有写操作进行识别,并通过插桩的方式进行标记;S2:对S1中识别的写操作的数据单元访问连续性进行判定,如果满足连续性要求,则更新cachesc指令参数;S3:写操作边界处理。本发明可减少因繁琐的存储管理对代码生产过程的干扰,进一步降低访存延迟,提高存储系统性能。

    一种基于操作系统内核的量子计算资源管理方法

    公开(公告)号:CN115269195B

    公开(公告)日:2024-08-30

    申请号:CN202210933675.6

    申请日:2022-08-04

    Abstract: 一种基于操作系统内核的量子计算资源管理方法,属于量子计算技术领域。本发明包括如下步骤:步骤1,解析当前量子计算任务所需的量子计算资源;步骤2,根据量子计算资源和当前系统中可用计算资源,给当前量子任务分配并映射相应的量子比特;步骤3,检测量子计算资源中量子比特的状态,若量子比特状态不满足计算需求,则对量子比特实施校准;步骤4,根据当前量子任务中所包含的量子逻辑门操作生成对应的控制脉冲波形文件;步骤5,根据控制脉冲波形文件,控制量子计算资源执行量子计算;步骤6,测量本次量子计算任务的计算结果。本发明对用户屏蔽了复杂的量子特性,为上层软件提供稳定的量子态描述,方便用户使用和控制量子设备。

    针对循环内条件转移指令的转移预测优化方法

    公开(公告)号:CN112445520B

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

    申请号:CN201910794939.2

    申请日:2019-08-27

    Abstract: 本发明公开一种针对循环内条件转移指令的转移预测优化方法,包括以下步骤:S11、判断一次循环内的指令条数是否能够满足带条件标记的运算指令在带条件转移标志位的条件转移指令之前至少提前N条的条件;S12、如果满足条件,编译器直接生成汇编代码,如果不满足,编译器根据循环体代码量与条件N计算需要循环展开的次数,进行循环展开,生成汇编代码;S13、带条件标记的运算指令提前改变条件转移指令的转移标志位;S14、条件转移指令根据对应的条件标记位进行判断,如果成立,则处理器根据条件转移标记指示跳转取指,否则顺序取指;S15、不论预测为跳转还是不跳转,条件标记位使用后即作废,转移指令条件标记位清0。本发明能够规避循环最后一次转移带来的性能损失。

Patent Agency Ranking