行业标准网
(19)国家知识产权局 (12)发明 专利申请 (10)申请公布号 (43)申请公布日 (21)申请 号 202210780174.9 (22)申请日 2022.07.04 (71)申请人 上海交通大 学 地址 200240 上海市闵行区东川路80 0号 (72)发明人 陈榕 韩明聪 陈海波 臧斌宇  (74)专利代理 机构 上海汉声知识产权代理有限 公司 3123 6 专利代理师 胡晶 (51)Int.Cl. G06F 9/48(2006.01) G06F 9/50(2006.01) G06F 9/54(2006.01) G06F 8/41(2018.01) G06F 9/30(2006.01) G06T 1/20(2006.01) (54)发明名称 GPU动态多 任务可控并发执 行方法及系统 (57)摘要 本发明提供了一种GPU动态多任务可控并发 执行方法及系统, 包括: 步骤S1: 在程序编译阶段 生成一个或多个proxy  kernel作为待执行 kernel的入口; 步骤S2: 在程序运行阶段, 用户动 态选择并发执行的待执行kernel; 步骤S3: 根据 选择的待执行kernel所需要的寄存器 数量, 选择 proxykernel提交到GPU中; 步骤S4: 用户通过 proxykernel动态控制各个待执行kernel使用的 计算单元数量, 跳转到待执行kernel并执行。 本 发明通过proxy  kernel为待执行kernel动态分 配指定数量的计算单元, 可以实现GPU程序运行 阶段细粒度的计算单 元分配。 权利要求书3页 说明书9页 附图2页 CN 115114003 A 2022.09.27 CN 115114003 A 1.一种GPU动态多任务可控并发执 行方法, 其特 征在于, 包括: 步骤S1: 在程序编译阶段生成一个或多个proxy  kernel作为待执 行kernel的入口; 步骤S2: 在程序运行阶段, 用户动态选择并发执 行的待执 行kernel; 步骤S3: 根据选择的待执行kernel所需要的寄存器数量, 选择proxykernel提交到GPU 中; 步骤S4: 用户通过proxy  kernel动态控制各个待执行kernel使用的计算单元数量, 跳 转到待执 行kernel并执 行。 2.根据权利要求1所述的GPU动态多任务可控并发执行方法, 其特征在于, 在所述步骤 S1中: 生成一个或多个proxy  kernel的源代码, 每个proxy  kernel拥有相同的源代码, 每个 proxy kernel具有不同的寄存器数量; proxy  kernel是所有待执行kernel的入口, 所有 并 发执行的kernel都从proxy  kernel跳转执行; 将proxykernel和待执行kernel的源代码编 译为二进制文件; 将编译过的proxy  kernel和待执行kernel所在的二进制文件加载到GPU 内存中; proxy kernel的参数包括待执行kernel函数入口地址、 待执行kernel参数地址以及待 执行kernel使用的计算单 元数量; 对于每一个CUOc cupancy都生成对应最大寄存器数量的proxy  kernel。 3.根据权利要求1所述的GPU动态多任务可控并发执行方法, 其特征在于, 在所述步骤 S2中: 根据用户的需求选择并发执行的待执行kernel, 并根据选择的待执行kernel所需要的 寄存器数量, 选择proxykernel; 选择的proxy  kernel应满足以下两点: 首先, 其使用的寄存器数量应大于选择的待执 行kernel所需要的寄存器数量; 其次, 其应该是满足前述条件的所有proxy  kernel中, 使用 寄存器数量 最少的。 4.根据权利要求1所述的GPU动态多任务可控并发执行方法, 其特征在于, 在所述步骤 S3中: 根据用户的需求为每个待执行kernel分配计算单元数量, 设置proxykernel的启动参 数并启动proxykernel; 启动的proxy  kernel的线程块数量为GPU计算单元数量与当前proxykernel的 CUOccupancy的积; 启动的proxy  kernel的每个线程块所包含的线程数量为所有待执行kernel的线程块 最大线程数量; 启动的proxykernel的动态共享内存大小为所有待执行kernel所使用的最大共享内存 大小。 5.根据权利要求1所述的GPU动态多任务可控并发执行方法, 其特征在于, 在所述步骤 S4中: 在GPU中执行proxykernel, 根据当前所处的计算单元ID选择对应的待执行kernel, 设 置参数并跳转到待执 行kernel执 行; proxy kernel设置待执 行kernel的函数参数、 线程 块ID以及线程 ID;权 利 要 求 书 1/3 页 2 CN 115114003 A 2使用JMP指令跳转到待执 行kernel的函数入口地址 。 6.一种GPU动态多任务可控并发执 行系统, 其特 征在于, 包括: 模块M1: 在程序编译阶段生成一个或多个proxy  kernel作为待执 行kernel的入口; 模块M2: 在程序运行阶段, 用户动态选择并发执 行的待执 行kernel; 模块M3: 根据选择的待执行kernel所需要的寄存器数量, 选择proxykernel提交到GPU 中; 模块M4: 用户通过proxy  kernel动态控制各个待执行kernel使用的计算单元数量, 跳 转到待执 行kernel并执 行。 7.根据权利要求6所述的GPU动态多任务可控并发执行系统, 其特征在于, 在所述模块 M1中: 生成一个或多个proxy  kernel的源代码, 每个proxy  kernel拥有相同的源代码, 每个 proxy kernel具有不同的寄存器数量; proxy  kernel是所有待执行kernel的入口, 所有 并 发执行的kernel都从proxy  kernel跳转执行; 将proxykernel和待执行kernel的源代码编 译为二进制文件; 将编译过的proxy  kernel和待执行kernel所在的二进制文件加载到GPU 内存中; proxy kernel的参数包括待执行kernel函数入口地址、 待执行kernel参数地址以及待 执行kernel使用的计算单 元数量; 对于每一个CUOc cupancy都生成对应最大寄存器数量的proxy  kernel。 8.根据权利要求6所述的GPU动态多任务可控并发执行系统, 其特征在于, 在所述模块 M2中: 根据用户的需求选择并发执行的待执行kernel, 并根据选择的待执行kernel所需要的 寄存器数量, 选择proxykernel; 选择的proxy  kernel应满足以下两点: 首先, 其使用的寄存器数量应大于选择的待执 行kernel所需要的寄存器数量; 其次, 其应该是满足前述条件的所有proxy  kernel中, 使用 寄存器数量 最少的。 9.根据权利要求6所述的GPU动态多任务可控并发执行系统, 其特征在于, 在所述模块 M3中: 根据用户的需求为每个待执行kernel分配计算单元数量, 设置proxykernel的启动参 数并启动proxykernel; 启动的proxy  kernel的线程块数量为GPU计算单元数量与当前proxykernel的 CUOccupancy的积; 启动的proxy  kernel的每个线程块所包含的线程数量为所有待执行kernel的线程块 最大线程数量; 启动的proxykernel的动态共享内存大小为所有待执行kernel所使用的最大共享内存 大小。 10.根据权利要求6所述的GPU动态多任务可控 并发执行系统, 其特征在于, 在所述模块 M4中: 在GPU中执行proxykernel, 根据当前所处的计算单元ID选择对应的待执行kernel, 设 置参数并跳转到待执 行kernel执 行;权 利 要 求 书 2/3 页 3 CN 115114003 A 3

.PDF文档 专利 GPU动态多任务可控并发执行方法及系统

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