Document
拖动滑块完成拼图
首页 专利交易 科技果 科技人才 科技服务 国际服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于可重构线程发散的线程束大小测算方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:北京麟卓信息科技有限公司

摘要:本发明公开了一种基于可重构线程发散的线程束大小测算方法,构建第一CUDA核函数重构线性发散使处于不同线程束的线程产生内存访问冲突以大幅增加线程的执行时间,通过逐渐增大线程块大小使其中的线程被分配到不同线程束中执行导致执行时间增大,实现对线程束大小的粗粒度测算;构造第二CUDA核函数重构线性发散使线程块内最后一个线程执行复杂计算增加执行时间,通过细粒度增大线程块大小使最后一个线程被分配到不同线程束中执行导致第一个线程的执行时间明显减小,实现对线程束大小的细粒度精确测算,在不借助查询硬件手册的情况下以软件方式精确度量了GPU的线程束大小,为相关计算程序优化提供了准确的参数支撑。

主权项:1.一种基于可重构线程发散的线程束大小测算方法,其特征在于,具体包括以下步骤:构建执行第一CUDA核函数的粗粒度测算过程,实现当线程块大小大于线程束大小时触发共享内存访问冲突导致执行时间增加;构建执行第二CUDA核函数的细粒度测算过程,实现线程块内仅有最后一个线程执行第一计算,其他线程执行第二计算,记录线程块内所有线程的线程执行时间,第一计算的执行时间大于第二计算的执行时间;执行粗粒度测算过程,设置线程块大小及线程格大小的取值,将线程块大小与线程格大小的乘积作为待启动线程的总数,启动所有线程,每个线程均执行第一CUDA核函数,记录本轮执行时间;若本轮执行时间大于上轮执行时间且差值大于第一阈值,则将本轮的线程块大小作为线程束大小上限、将线程块大小的二分之一作为线程束大小下限,结束粗粒度测算过程后将线程块大小设置为线程束大小下限执行细粒度测算过程;否则增大线程块大小更新取值,重新编译并执行粗粒度测算过程;执行细粒度测算过程,将线程格大小设置为1,将线程块大小设置为线程束大小下限与设定值之差,将线程块大小与线程格大小的乘积作为待启动线程的总数,启动所有线程,每个线程均执行第二CUDA核函数;获取本轮记录的线程执行时间,若最后一个线程的执行时间大于其他线程的执行时间且差值大于第二阈值,则本轮的线程块大小与1的差值即为实际的线程束大小,结束本流程;否则以设定步长增大线程块大小后执行细粒度测算过程;所述第一CUDA核函数的实现方式为:创建长度为线程块大小的第一共享内存数组,将线程在线程块中的位置除以线程块大小的余数作为目标索引,对第一共享内存数组中目标索引的位置执行设定次数的写入操作;所述第二CUDA核函数内最后一个线程所执行的复杂计算仅涉及计算。

全文数据:

权利要求:

百度查询: 北京麟卓信息科技有限公司 一种基于可重构线程发散的线程束大小测算方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。