金融行业标准网
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210570575.1 (22)申请日 2022.05.24 (71)申请人 中国人民解 放军国防科技大 学 地址 410073 湖南省长 沙市开福区德雅路 109号 (72)发明人 方建滨 张鹏 黄春 唐滔 彭林  崔英博  (74)专利代理 机构 北京丰浩知识产权代理事务 所(普通合伙) 11781 专利代理师 李强 (51)Int.Cl. G06F 8/41(2018.01) G06F 9/445(2018.01) (54)发明名称 一种多任务流代码生成方法及装置 (57)摘要 本发明公开了一种多任务流代码生成方法 及装置, 该方法包括: 获取串行程序; 对串行程序 进行并行循环分析识别, 得到第一并行循环信息 集合; 第一并行循环信息集合包括若干个第一并 行循环信息; 第一并行循环信息表征串行程序中 的并行循环; 对第一并行循环信息集合进行数据 流化分析, 得到第二并行循环信息集合; 第二并 行循环信息集合包括若干个第二并行循环信息; 对第二并行循环信息集合进行代码生成, 得到多 任务流代码; 多任务流代码可使不同任务流中的 计算任务和传输任务重叠执行。 可见, 本发明有 利于实现智能生成多任务流代码, 进而使得多任 务流代码能够使不同流中的计算任务和传输任 务重叠执行, 有效地隐藏宿主机端与加速设备端 间的数据传输开销。 权利要求书2页 说明书15页 附图4页 CN 114924744 A 2022.08.19 CN 114924744 A 1.一种多任务 流代码生成方法, 其特 征在于, 所述方法包括: 获取串行程序; 对所述串行程序进行并行循环分析识别, 得到第一并行循环信息集合; 所述第一并行 循环信息集合包括若干个第一并行循环信息; 所述第一并行循环信息表征所述串 行程序中 的并行循环; 对所述第一并行循环信息集合进行数据流化分析, 得到第二并行循环信息集合; 所述 第二并行循环信息集 合包括若干个第二并行循环信息; 对所述第二并行循环信息集合进行代码生成, 得到多任务流代码; 所述多任务流代码 可使不同任务 流中的计算任务和传输任务重 叠执行。 2.根据权利要求1所述的多任务流代码生成方法, 其特征在于, 所述对所述串行程序进 行并行循环分析识别, 得到第一并行循环信息集 合, 包括: 遍历所述串行程序, 得到第一待用循环信息集合; 所述第一待用循环信息集合包括若 干个第一待用循环信息; 对所述第一待用循环信息集合进行规范循环判定分析, 得到第二待用循环信息集合; 所述第二待用循环信息集 合包括若干个第二待用循环信息; 对所述第二待用循环信息集 合进行循环 依赖分析, 得到第一并行循环信息集 合。 3.根据权利要求2所述的多任务流代码生成方法, 其特征在于, 所述对所述第 二待用循 环信息集 合进行循环 依赖分析, 得到第一并行循环信息集 合, 包括: 对于任一所述第 二待用循环信 息, 判断该第 二待用循环信 息中的循环迭代之间是否存 在数据依赖, 得到依赖判断结果; 当所述依赖判断结果 为否时, 确定该第二待用循环信息为所述第一并行循环信息 。 4.根据权利要求1所述的多任务流代码生成方法, 其特征在于, 所述对所述第 一并行循 环信息集 合进行数据流化分析, 得到第二并行循环信息集 合, 包括: 利用预设的流化条件对所述第 二并行循环信 息集合进行分类, 得到第 一待用数据流化 信息集合和第二待用数据流化信息集合; 所述第一待用数据流化信息集合包括若干个第一 待用数据流化信息; 所述第二待用数据流化信息集合包括若干个第二待用数据流化信息; 所述第一待用数据流 化信息表征外层并行循环中的传输数组可以进行分块传输; 对所述第一待用数据流化信息集合进行数据结构分析, 得到第一数据流化信息集合; 所述第一数据流 化信息集 合包括若干个第一数据流 化信息; 对所述第二待用数据流化信息集合进行内层流化分析, 得到第二数据流化信息集合; 所述第二数据流 化信息集 合包括若干个第二数据流 化信息; 对所述第一数据流化信 息集合和所述第 二数据流化信 息集合进行整合, 得到第 二并行 循环信息集 合。 5.根据权利要求4所述的多任务流代码生成方法, 其特征在于, 所述对所述第 二待用数 据流化信息集 合进行内层流 化分析, 得到第二数据流 化信息集 合, 包括: 对于任一所述第 二待用数据流化信 息, 判断该第 二待用数据流化信 息对应的内层循环 并行化程度是否大于该第二待用数据流化信息对应的外层循环并行化程度, 得到并行程度 判断结果; 当所述并行程度判断结果为是时, 判断该第 二待用数据流化信 息对应的外层循环是否权 利 要 求 书 1/2 页 2 CN 114924744 A 2存在对内层循环数组的访问操作, 得到访问判断结果; 当所述访 问判断结果为否时, 对该第二待用数据流化信息进行内层流化处理, 得到该 第二待用数据流 化信息对应的第二数据流 化信息。 6.根据权利要求1所述的多任务流代码生成方法, 其特征在于, 所述多任务流代码包括 主机端代码和设备端代码; 所述对所述第二并行循环信息集 合进行代码生成, 得到多任务 流代码, 包括: 根据预设的主机端代码模板信 息和所述第 二并行循环信 息集合, 确定出所述主机端代 码; 所述主机端代码包括第一主机端代码和第二主机端代码; 所述第一主机端代码不 随输 入程序的变化而变化; 所述第一主机端代码表征初始化阶段生成的代码; 根据所述第二并行循环信息集 合, 确定出 所述设备端代码。 7.根据权利要求6所述的多任务流代码生成方法, 其特征在于, 所述根据 预设的主机端 代码模板信息和所述第二并行循环信息集 合, 确定出 所述主机端代码, 包括: 对预设的主机端代码模板信 息和所述第 二并行循环信 息集合进行实例化处理, 得到初 始化代码; 对所述初始化代码进行 数据块对应的缓冲区的创建和传输, 得到第一中间代码; 对所述第一中间代码进行参数设置并配置内核函数的启动信息, 得到第二中间代码; 对所述第二中间代码进行同步操作和资源释放, 得到所述主机端代码。 8.一种多任务 流代码生成装置, 其特 征在于, 所述装置包括: 获取模块, 用于获取串行程序; 第一分析模块, 用于对所述串行程序进行并行循环分析识别, 得到第一并行循环信息 集合; 所述第一并行循环信息集合包括若干个第一并行循环信息; 所述第一并行循环信息 表征所述串行程序中的并行循环; 第二分析模块, 用于对所述第一并行循环信息集合进行数据流化分析, 得到第二并行 循环信息集 合; 所述第二并行循环信息集 合包括若干个第二并行循环信息; 生成模块, 用于对所述第 二并行循环信 息集合进行代码生成, 得到多任务流代码; 所述 多任务流代码可使不同任务 流中的计算任务和传输任务重 叠执行。 9.一种多任务 流代码生成装置, 其特 征在于, 所述装置包括: 存储有可执行程序代码的存 储器; 与所述存 储器耦合的处 理器; 所述处理器调用所述存储器中存储的所述可执行程序代码, 执行如权利要求1 ‑7任一 项所述的多任务 流代码生成方法。 10.一种计算机存储介质, 其特征在于, 所述计算机存储介质存储有计算机指令, 所述 计算机指令被调用时, 用于执 行如权利要求1 ‑7任一项所述的多任务 流代码生成方法。权 利 要 求 书 2/2 页 3 CN 114924744 A 3

.PDF文档 专利 一种多任务流代码生成方法及装置

文档预览
中文文档 22 页 50 下载 1000 浏览 0 评论 309 收藏 3.0分
温馨提示:本文档共22页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
专利 一种多任务流代码生成方法及装置 第 1 页 专利 一种多任务流代码生成方法及装置 第 2 页 专利 一种多任务流代码生成方法及装置 第 3 页
下载文档到电脑,方便使用
本文档由 人生无常 于 2024-03-18 00:00:10上传分享
友情链接
站内资源均来自网友分享或网络收集整理,若无意中侵犯到您的权利,敬请联系我们微信(点击查看客服),我们将及时删除相关资源。