[发明专利]一种并行数据结构构建及其搜索的方法、系统在审
申请号: | 202110193649.X | 申请日: | 2021-02-20 |
公开(公告)号: | CN112967170A | 公开(公告)日: | 2021-06-15 |
发明(设计)人: | 易卫东;万海军 | 申请(专利权)人: | 中航万通(北京)装备科技有限公司 |
主分类号: | G06T1/20 | 分类号: | G06T1/20;G06T1/60 |
代理公司: | 北京冠和权律师事务所 11399 | 代理人: | 李建华 |
地址: | 102305 北京市门头*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 并行 数据结构 构建 及其 搜索 方法 系统 | ||
本发明提供一种并行数据结构构建及其搜索的方法、系统,所述方法包括:获取待组织数据并进行GPU全局存储模式;根据所述待组织数据的属性确定GPU存储区域对应的区域格;将所述待组织数据构建第一四分树群,且将所述待组织数据对应线程的数据点处理至对应的区域格;根据所述数据点将所有待组织数据部署存储至所述区域格中。本发明利用GPU高速但有限的片上存储实现四分树的构建和搜索,极大地提升了存储访问的效率。同时,树群以每个CUDA线程块为单位实现一棵较小的四分树,线程并行度相对一个单一的四分树要高许多倍,从而提升了建树的效率。
技术领域
本发明涉及数据结构以及存储技术领域,尤其涉及一种并行数据结构构建及其搜索的方法、系统。
背景技术
图形处理器(GPU)它起源于图形渲染,现在已出现高级语言支持GPU上的便捷编程。NVIDIA为其GPU提供了Compute Unified Device Architecture(CUDA)编程模型,拥有类C语言的编程接口。结合CUDA的GPU提供了强大的计算能力和非常高的存储带宽,适合于高度并行、计算密集的应用。尽管计算能力强大,但NVIDIA GPU的花销较低,而且普遍存在于PC或工作站等不太昂贵的机器中。
目前,使用CUDA在GPU上建立一个树型数据结构方面的工作较少。Zhou Kun等在GPU上构建了一个针对多维数据的KD-tree,他们将树的节点信息等存储在GPU的全局存储上,并使用该数据结构加速图像渲染中的光线追踪和K个最近邻搜索,但存在效率不高的问题。且现有实验证明该基于CUDA的八分树在树型结构构建全局存储上存在延迟较高的问题。
现有工作集中于在GPU的全局存储上构建一个单一的树型数据结构。这样的策略导致大量效率较低的无法优化的对全局存储的访问,而且由于线程竞争着将数据点插入到树中,致使CUDA程序的线程并行度较低,且其性能受到很大影响。
发明内容
本发明提供的一种并行数据结构构建及其搜索的方法、系统,利用GPU高速但有限的片上存储实现四分树的构建和搜索,极大地提升了存储访问的效率。同时,树群以每个CUDA线程块为单位实现一棵较小的四分树,线程并行度相对一个单一的四分树要高许多倍,从而提升了建树的效率。
第一方面,本发明实施例提供的一种并行数据结构构建及其搜索的方法,所述方法包括:
获取待组织数据并进行GPU全局存储模式;
根据所述待组织数据的属性确定GPU存储区域对应的区域格;
将所述待组织数据构建第一四分树群,且将所述待组织数据对应线程的数据点处理至对应的区域格;
根据所述数据点将所有待组织数据部署存储至所述区域格中。
在一种可能的设计中,所述方法,包括:根据所述待组织数据的分布范围和分布密度预估划分第一区域格;
所述根据所述待组织数据的属性确定GPU存储区域对应的区域格,包括:
若所述第一区域格中包含的数据点个数大于预设阈值,则将所述第一区域格划分为第一子区域格,并将所述第一子区域格作为所述待组织数据在GPU存储区域对应的区域格;其中所述第一子区域格包含至少一个数据点。
在一种可能的设计中,所述根据所述待组织数据的属性确定GPU存储区域对应的区域格,还包括:
若所述第一区域格中包含的数据点个数不大于预设阈值,则将所述第一区域格作为所述待组织数据在GPU存储区域对应的区域格。
在一种可能的设计中,将所述待组织数据对应线程的数据点处理至对应的区域格,包括:
将所述待组织数据对应线程的数据点组织到所述第一四分树群对应的区域格。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中航万通(北京)装备科技有限公司,未经中航万通(北京)装备科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110193649.X/2.html,转载请声明来源钻瓜专利网。