[发明专利]基于CUDA的多边形栅格化GPU并行计算方法在审

专利信息
申请号: 201811350214.6 申请日: 2018-11-14
公开(公告)号: CN109670001A 公开(公告)日: 2019-04-23
发明(设计)人: 周琛;李满春;陈振杰 申请(专利权)人: 南京大学
主分类号: G06F16/29 分类号: G06F16/29;G06T1/20;G06F9/50
代理公司: 南京同泽专利事务所(特殊普通合伙) 32245 代理人: 赵洪玉
地址: 210023 江苏*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明涉及一种基于CUDA的多边形栅格化GPU并行计算方法,由CPU和GPU协同并行处理多边形栅格化;其中,CPU的执行过程包括以下步骤:所有多边形根据PNN进行升序排序,形成第一多边形队列;计算第一多边形队列中各多边形的占用内存MU;按照CUDA中grid、block和thread的层次结构进行多边形的划分:读取每一批次多边形数据并传递给GPU处理,并接收GPU的处理结果。GPU的处理过程包括以下步骤:接收CPU传递的多边形数据;将多边形数据分配给各block及thread;各thread分别调用BAF算法执行栅格化计算;将栅格化结果传递回CPU。本发明能有效提高并行效率、保证负载均衡,且适用于海量多边形的栅格化。
搜索关键词: 多边形数据 多边形栅格 栅格化 并行计算 队列 读取 并行处理 并行效率 层次结构 负载均衡 结果传递 算法执行 传递 升序 调用 内存 排序 协同 占用 分配 保证
【主权项】:
1.一种基于CUDA的多边形栅格化GPU并行计算方法,其特征在于:由CPU和GPU协同并行处理多边形栅格化;CPU的执行过程包括第一次执行调度和循环执行调度,其中第一次执行调度包括以下步骤:S101、计算各多边形的多边形节点数目PNN,对所有多边形根据PNN进行升序排序,形成第一多边形队列;S102、计算第一多边形队列中各多边形的占用内存MU;S103、按照CUDA中grid、block和thread的层次结构进行多边形的划分:1)grid层划分当GPU内存限制为MUlimit时,从第一多边形队列首端开始依次划分成若干批次多边形数据,每一批次多边形数据的MU总数小于GPU内存,即每一批次多边形数据的数目满足其中,MUgpuresult为GPU栅格化结果所占内存,Nmax为最大多边形数目;2)block层划分:在每一批次多边形数据中包含按PNN升序排列的第二多边形队列,每次从第二多边形队列的首端和末端各取一个多边形分配给一个block处理,直至第二多边形队列分配完毕,即完成了block层的划分;3)thread层划分:在block内部采用循环分配的方式将待处理多边形分给各线程并行处理:首次给各线程分配一个多边形进行处理;当有线程处理完毕后,则继续分给其一个多边形进行处理,直至该block中多边形处理完毕,即完成了thread层的划分;S104、读取第一批次多边形数据并传递给GPU处理,在GPU执行过程中读取第二批次多边形数据,然后接收GPU的处理结果;循环执行调度包括以下步骤:S201、依次读取每一批次多边形数据并传递给GPU处理;S202、开辟两个线程,分别用于写入上一次GPU的处理结果和读取下一批次多边形数据;S203、接收GPU的处理结果;S204、重复步骤S201‑S203,直至所有多边形处理完毕;GPU的处理过程包括以下步骤:S301、接收CPU传递的多边形数据;S302、将多边形数据分配给各block及thread;S303、各thread分别调用BAF算法执行栅格化计算;S304、将栅格化结果传递回CPU。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201811350214.6/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top