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

一种OpenCL内核提交的方法及装置 

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

申请/专利权人:中国船舶集团有限公司;武汉凌久微电子有限公司

摘要:本发明公开了一种OpenCL内核提交的方法,步骤如下:1、将内核信息传递给OpenCL的内核;2、工作项维度从一维转二维;3、检查OpenCL内核是否使用了局部内存,若使用了则申请空间保存;4、检查局部工作组的大小;5、将包含OpenCL内核信息的命令缓冲提交到硬件设备。本发明还公开了一种OpenCL内核提交的装置,包括:内核信息创建提交模块;工作项维度转换模块;局部内存变量模块;局部工作组模块;OpenCL工作线程模块。本发明在保证满足OpenCL标准框架的前提下,给硬件合理的分配工作任务,将OpenCL内核提交到硬件进行执行,提高并行运算的效率,可以广泛应用于高性能并行计算领域。

主权项:1.一种OpenCL内核提交的方法,其特征在于:包括如下步骤:S1、在主机程序中创建内核后,将内核信息传递给OpenCL的内核提交模块;S2、检查工作项维度是否满足从一维转二维的条件,若满足则进行转换;S3、检查OpenCL内核是否使用了局部内存,若使用了局部内存类型的变量,则在特定存储区域申请相应大小的空间保存该变量;S4、检查OpenCL内核中是否设置了局部工作组的大小,若已设置则需要判断设置的数据是否合法,若不合法或未设置则自适应分配一个合适的局部工作组项数;S5、启动OpenCL的工作线程,将包含OpenCL内核信息的命令缓冲提交到硬件设备;其中所述步骤S2包括如下子步骤:S21、判断工作项维度的大小和全局工作项数量的值,若同时满足维度为1且全局工作项数量的值大于最大全局工作项数量这两个条件,则执行子步骤S22,若不满足条件,则跳转执行步骤S3;S22、首先取一个值base作为一个基数,用来将工作项的维度由1维变为2维,若在步骤S1中传递的参数中设置了局部工作组项数的值,则将其值作为base的初始值,否则令base为一个合适的初始常数值,这个值取决于设备所能支持的最大并行工作项数量和工作组数量;S23、用全局工作项数量的值除以base,设得到的商为result,得到的余数为mod;S24、判断result的大小,若小于或等于最大全局工作项数量,则继续判断mod的值,若不为0,则转化后的2维工作项大小为GlobalWorkSize[result+1,base];若为0,则转化后的2维工作项大小GlobalWorkSize[result,base];若result的值大于最大全局工作项数量MaxGlobalWorkSize,则将base变为原来的2倍并跳转到子步骤S23;S25、检查OpenCL内核中是否设置了参数全局偏移量的值,若设置了全局偏移量的值且不为0,则将全局偏移量的值去除以子步骤S21到子步骤S24中得到的base值,得到的新的商为result_offset和余数mod_offset,得到转化后的2维数组偏移量大小为GlobalWorkOffset[result_offset,mod_offset];所述步骤S3包括如下子步骤:S31、从OpenCL内核中依次读取所有设置为OpenCL局部内存类型的变量,计算它们各自的大小,得到需要的空间大小之和;S32、从设备上动态分配一块所需空间大小之和容量的非主机内存;S33、将所有的OpenCL局部内存类型变量的值写入到所述非主机内存区域中,并返回相对应的指针以供后续访问;所述步骤S4包括如下子步骤:S41、检查OpenCL内核中是否设置了局部工作组的大小,若已设置则检查全局工作项大小是否与局部工作组大小成倍数关系且局部工作组的值小于最大局部工作组大小,若满足关系则执行子步骤S51,若不满足关系则执行子步骤S42;S42、给局部工作组预设一个值Size,对每一个维度的工作项,比较最大全局工作项数量除以Size的商和最大工作组数量的大小关系,若前者小于或等于后者,则取Size为最终的局部工作组在对应维度上的值;否则执行子步骤S43;S43、将Size变为原来的两倍,并比较此时的Size是否大于最大局部工作组大小,若是则取Size的一半为局部工作组在对应维度上的值,否则跳转到子步骤S42;所述步骤S5包括如下子步骤:S51、刷新相关着色器状态以及指令,根据工作项的分配情况计算执行OpenCL内核所要分配的线程数;S52、将OpenCL内核的信息传递给计算设备系统的命令队列中,修改命令队列的状态,使得包含OpenCL内核信息的命令进入硬件设备中,以指定的线程数并行执行,最终完成OpenCL内核的提交。

全文数据:

权利要求:

百度查询: 中国船舶集团有限公司 武汉凌久微电子有限公司 一种OpenCL内核提交的方法及装置

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