本发明涉及计算机领域,特别是涉及一种硬件加速指令确定方法、系统、电子设备及存储介质。
背景技术:
1、随着芯片在各个行业(如工程控制、自动驾驶和消费电子等)的大量应用,需要有大量的算法需要通过硬件电路实现加速。但硬件电路设计难度高、验证过程复杂、生成周期长,让硬件加速电路开发效率低、调试复杂、迭代周期长,导致开发成本提升。
技术实现思路
1、本发明的目的是提供一种硬件加速指令确定方法、系统、电子设备及存储介质,可提升硬件处理器的灵活性和开发效率,降低调试和验证难度。
2、为实现上述目的,本发明提供了如下方案:
3、一种硬件加速指令确定方法,包括:
4、获取待转化代码;
5、对所述待转化代码进行预处理,得到算法函数;
6、根据所述算法函数确定寄存器文件、状态寄存器、寄存器操作数和立即数操作数;
7、将所述寄存器文件、所述状态寄存器、所述寄存器操作数和所述立即数操作数添加至新文件中,得到指令;
8、根据实际需求确定所述指令在超长指令字编码格式中所占的指令槽以及编码方法并编写扩展编译控制指令;
9、对所述扩展编译控制指令进行编译,得到处理器文件;所述处理器文件用于生成硬件加速指令。
10、可选地,对所述待转化代码进行预处理,得到算法函数,具体包括:
11、对所述待转化代码在宿主平台进行编译和执行,得到正确的代码程序;
12、将所述正确的代码程序中需要转化的代码片段从源代码中提取成算法函数;所述算法函数为c语言的函数。
13、可选地,根据所述算法函数确定寄存器文件、状态寄存器、寄存器操作数和立即数操作数,具体包括:
14、根据所述算法函数的函数参数确定寄存器文件;
15、根据所述算法函数中访问的全局变量确定状态寄存器;
16、根据所述算法函数中的所有函数参数和返回值确定寄存器操作数和立即操作数。
17、可选地,将所述寄存器文件、所述状态寄存器、所述寄存器操作数和所述立即数操作数添加至新文件中,得到指令,具体包括:
18、将所述算法函数存入源文件;
19、将所述寄存器文件、所述状态寄存器、所述寄存器操作数和所述立即数操作数添加至新文件;所述寄存器文件和所述状态寄存器中均包括矢量类型标记;
20、在所述新文件中添加指令名称;
21、根据所述源文件和添加了指令名称的新文件确定指令。
22、可选地,根据实际需求确定所述指令在超长指令字编码格式中所占的指令槽以及编码方法并编写扩展编译控制指令,具体包括:
23、根据实际需求确定超长指令字编码格式并将所述超长指令字编码格式添加至新文件;
24、根据实际需求确定所述指令在超长指令字编码格式中所占的指令槽以及编码方法并编写扩展编译控制指令。
25、可选地,对所述扩展编译控制指令进行编译,得到处理器文件,具体包括:
26、对所述扩展编译控制指令进行编译,得到指令集库;
27、将具有不同功能的所述指令集库链接生成处理器文件。
28、可选地,对所述扩展编译控制指令进行编译,得到指令集库,具体包括:
29、对所述指令的源文件依次进行预处理,生成中间表达文件;所述预处理包括调用clang编译、静态单赋值转换、矢量标量转换和添加流水线终止信号;所述矢量标量转换为根据所述矢量类型标记进行标量转换;
30、对所述中间表达文件和所述扩展编译控制指令进行存储和打包,得到指令集库。
31、本发明还提供一种硬件加速指令确定系统,包括:
32、获取模块,用于获取待转化代码;
33、预处理模块,用于对所述待转化代码进行预处理,得到算法函数;
34、寄存器文件、状态寄存器、寄存器操作数和立即数操作数确定模块,用于根据所述算法函数确定寄存器文件、状态寄存器、寄存器操作数和立即数操作数;
35、添加模块,用于将所述寄存器文件、所述状态寄存器、所述寄存器操作数和所述立即数操作数添加至新文件中,得到指令;
36、编码模块,用于根据实际需求确定所述指令在超长指令字编码格式中所占的指令槽以及编码方法并编写扩展编译控制指令;
37、编译模块,用于对所述扩展编译控制指令进行编译,得到处理器文件;所述处理器文件用于生成硬件加速指令。
38、本发明还提供一种电子设备,包括:
39、一个或多个处理器;
40、存储装置,其上存储有一个或多个程序;
41、当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述的方法。
42、本发明还提供一种存储介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如上述的方法。
43、根据本发明提供的具体实施例,本发明公开了以下技术效果:
44、本发明对所述待转化代码进行预处理,得到算法函数;根据所述算法函数确定寄存器文件、状态寄存器、寄存器操作数和立即数操作数;将所述寄存器文件、所述状态寄存器、所述寄存器操作数和所述立即数操作数添加至新文件中,得到指令;根据实际需求确定所述指令在超长指令字编码格式中所占的指令槽以及编码方法并编写扩展编译控制指令;对所述扩展编译控制指令进行编译,得到处理器文件;所述处理器文件用于生成硬件加速指令。本发明能提升硬件处理器的灵活性和开发效率,降低调试和验证难度。
1.一种硬件加速指令确定方法,其特征在于,包括:
2.根据权利要求1所述的硬件加速指令确定方法,其特征在于,对所述待转化代码进行预处理,得到算法函数,具体包括:
3.根据权利要求1所述的硬件加速指令确定方法,其特征在于,根据所述算法函数确定寄存器文件、状态寄存器、寄存器操作数和立即数操作数,具体包括:
4.根据权利要求1所述的硬件加速指令确定方法,其特征在于,将所述寄存器文件、所述状态寄存器、所述寄存器操作数和所述立即数操作数添加至新文件中,得到指令,具体包括:
5.根据权利要求1所述的硬件加速指令确定方法,其特征在于,根据实际需求确定所述指令在超长指令字编码格式中所占的指令槽以及编码方法并编写扩展编译控制指令,具体包括:
6.根据权利要求4所述的硬件加速指令确定方法,其特征在于,对所述扩展编译控制指令进行编译,得到处理器文件,具体包括:
7.根据权利要求6所述的硬件加速指令确定方法,其特征在于,对所述扩展编译控制指令进行编译,得到指令集库,具体包括:
8.一种硬件加速指令确定系统,其特征在于,包括:
9.一种电子设备,其特征在于,包括:
10.一种存储介质,其特征在于,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7中任意一项所述的方法。
