[发明专利]一种通用图形处理器多任务并发执行的任务派发方法在审
申请号: | 201510977450.0 | 申请日: | 2015-12-23 |
公开(公告)号: | CN105653243A | 公开(公告)日: | 2016-06-08 |
发明(设计)人: | 梁云;李秀红 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F9/38 | 分类号: | G06F9/38;G06T1/00 |
代理公司: | 北京万象新悦知识产权代理事务所(普通合伙) 11360 | 代理人: | 张肖琪 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 通用 图形 处理器 任务 并发 执行 派发 方法 | ||
1.一种通用图形处理器多任务并发执行的任务派发方法,通过线程块派发引擎方法首先 将核函数进行分类,然后根据核函数分类计算得到向一个流处理器分别派发的核函数的线程 块数目,将不同核函数相应数目的线程块派发到同一个流多处理器中,以达到提高通用图形 处理器中每个流多处理器资源的利用率,提升系统性能和能效比的目的;所述线程块派发引 擎方法包括如下步骤:
A1)将核函数进行分类,核函数的种类包括TypeDown、TypeUp和TypeOptimal;所述 核函数进行分类,具体通过每个核函数单独运行时性能最佳的线程块数目opt(Kernel)与一个 流多处理器最多可以容纳的来自核函数的线程块数目max(Kernel)的大小关系,对核函数进行 分类,分类过程执行操作A11)~A13):
A11)单独执行每个核函数Kernel多次,每次向流多处理器中派发不同数目的线程块, 得到相应的执行时间;
A12)将A11)中执行时间最短时每个流多处理器上的线程块数目定义为opt(Kernel);
A13)当A12)中opt(Kernel)等于1时,该核函数Kernel的分类为TypeDown;当opt(Kernel) 等于max(Kernel)时,该核函数分类为TypeUp,所述max(Kernel)是一个流多处理器最多可以 容纳的来自核函数的线程块数目;当opt(Kernel)不等于1且opt(Kernel)不等于max(Kernel)时, 该核函数分类为TypeOptimal;
A2)针对多个核函数的线程块,将所述核函数看作一个任务池,先从这些核函数中选择 两个核函数作为核函数{A,B},设定TbA和TbB分别表示线程块派发引擎向一个流处理器中分 别派发的核函数A和核函数B的线程块数目,根据A1)分类得到的核函数的种类信息,计 算得到TbA和TbB;
A21)对于两个并发执行的核函数组合{A,B},两个核函数A、B的类型分别设为TypeA和TypeB,当两个核函数TypeA和TypeB都属于TypeUp类型时,结束操作;当所述TypeA和 TypeB中至少有一个核函数的类型属于TypeDown或者TypeOptimal时,继续执行如下操作;
A22)根据核函数A、B的类型TypeA和TypeB,分别计算得到TbA和TbB;
A3)根据TbA和TbB,向通用图形处理器(GPGPU)的一个流处理器中分别派发相应数 目的核函数A和核函数B的线程块;
A4)循环执行上述A3),当其中有核函数的剩余线程块数目小于向流处理器派发的相应 线程块数目时,向流多处理器派发该核函数所有剩余线程块数目,该核函数的剩余线程块数 目为0,该核函数执行完成;此时从两个核函数{A,B}的并发执行变为一个核函数的单独执行; 当任务池中的核函数数目为0时,执行步骤A5);当任务池中的核函数数目不为0时,从任 务池中选择一个与所述未完成的核函数重新组合成{A,B},继续按照上述步骤A2~A4进行线 程块派发;
A5)在一个核函数Kernel单独执行期间,向流多处理器中派发该核函数的线程块数目为 opt(Kernel),当核函数的剩余线程块数目小于opt(Kernel)时,向流多处理器派发该核函 数的所有剩余线程块数目;直到该核函数执行完成。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510977450.0/1.html,转载请声明来源钻瓜专利网。