[发明专利]针对硬件加速器的软硬件交互方法、装置和存储介质有效
申请号: | 202010079758.4 | 申请日: | 2020-02-04 |
公开(公告)号: | CN111309384B | 公开(公告)日: | 2021-03-02 |
发明(设计)人: | 鄢贵海;陈玮;龚施俊 | 申请(专利权)人: | 中科驭数(北京)科技有限公司 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06F9/54 |
代理公司: | 北京金咨知识产权代理有限公司 11612 | 代理人: | 宋教花 |
地址: | 100190 北京市海淀区科学*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 硬件 加速器 软硬件 交互 方法 装置 存储 介质 | ||
1.一种针对硬件加速器的软硬件交互方法,其特征在于,该方法包括以下步骤:
主线程步骤,用于建立多个子线程,生成编译器调用指令,并生成以下队列:数据ID队列、指令和结果ID队列以及结果ID队列;
按所述多个子线程分别执行基于时间序列加速器的软硬件交互流程分解出的多个流水线的任务,所述多个流水线包括:第一流水线,发送数据至指定硬件;第二流水线,发送指令和结果相关信息给所述指定硬件;第三流水线,发送硬件计算指令;以及第四流水线,从指定硬件读取结果数据;
其中,执行所述第一流水线的子线程由编译器调用指令唤醒,按照所述数据ID队列进行数据向指定硬件的发送,并在发送完毕后唤醒下一子线程;
执行所述第二流水线的子线程基于所述指令和结果ID队列向所述指定硬件发送指令和结果相关信息;
执行所述第三流水线的子线程基于前一子线程的唤醒向指定硬件发送开启计算指令;
执行所述第四流水线的子线程基于前一子线程的唤醒来根据所述结果ID队列读取结果数据。
2.根据权利要求1所述的方法,其特征在于,所述多个子线程包括第一子线程、第二子线程和第三子线程,其中,第一子线程用于执行第一流水线的任务,第二子线程用于执行所述第二流水线和第三流水线的任务,第三子线程用于执行第四流水线的任务。
3.根据权利要求1所述的方法,其特征在于,所述主线程步骤还包括:在建立了多个子线程后初始化多个预建立的数据结构,所述多个数据结构用于保存所述软硬件交互流程中被访问的不同类别的数据。
4.根据权利要求3所述的方法,其特征在于,所述多个数据结构采用基于锁的map并发数据结构。
5.根据权利要求3所述的方法,其特征在于,所述多个数据结构为多个数据表,所述多个数据表包括:应用数据表、应用结果表、编译数据表、编译结果表、硬件数据表和硬件结果表;
所述主线程步骤还包括:在生成编译器调用指令后,添加源数据到所述应用数据表,并调用上层应用访问所述应用数据表,以获取所述应用数据表中的数据ID来生成数据ID队列;以及调用上层应用生成二进制指令数据和结果ID;
所述执行所述第一流水线的子线程由所述编译器调用指令唤醒,按照所述数据ID队列进行数据向指定硬件的发送,并在发送完毕后唤醒下一子线程,包括:执行所述第一流水线的第一子线程由所述编译器调用指令唤醒,访问所述应用数据表和数据ID队列,生成编译信息记录到所述编译数据表中,将所述编译数据表中的数据发送给所述指定硬件,并在发送数据成功的情况下在所述硬件数据表中生成数据记录;
所述执行所述第二流水线的子线程基于所述指令和结果ID队列向所述指定硬件发送指令和结果相关信息,包括:执行所述第二流水线的第二子线程访问指令和结果ID队列,填写编译结果表和硬件结果表,并向所述指定硬件传送指令和结果相关信息;以及执行所述第三流水线,发送硬件计算指令,并唤醒所述多个子线程中的用于执行所述第四流水线的第三子线程;
所述按所述多个子线程分别执行基于时间序列加速器的软硬件交互流程分解出的多个流水线的任务,还包括:执行第三子线程,读取在编译结果表中的结果数据,并将读取的结果数据添加到应用数据结果表。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在所述第一子线程中发送数据失败的情况下,删除编译数据表中对应的项,并将数据ID重新加入到所述数据ID队列中。
7.根据权利要求5所述的方法,其特征在于,
所述应用数据表和所述应用结果表包括如下信息:名称、ID、行大小、列大小、数据大小、数据内存中的地址;
所述编译数据表和编译结果表包括如下信息:ID、行大小、列大小、数据大小、数据内存中的地址;
所述硬件数据表和硬件结果表包括如下信息:ID、数据内存中的地址。
8.根据权利要求5所述的方法,其特征在于,所述方法还包括:所述多个子线程以并行方式执行不同软硬件交互流程的相应流水线。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科驭数(北京)科技有限公司,未经中科驭数(北京)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010079758.4/1.html,转载请声明来源钻瓜专利网。