[发明专利]一种基于CPU和GPU混合的高速并行地形遮蔽计算方法有效
申请号: | 201810968397.1 | 申请日: | 2018-08-23 |
公开(公告)号: | CN109118583B | 公开(公告)日: | 2022-09-13 |
发明(设计)人: | 王毅;俞信;廉海明;张培 | 申请(专利权)人: | 中国科学院电子学研究所苏州研究院 |
主分类号: | G06T17/05 | 分类号: | G06T17/05;G06T1/20 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 楼高潮 |
地址: | 215000 江苏省苏州市工*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 cpu gpu 混合 高速 并行 地形 遮蔽 计算方法 | ||
本发明是一种基于CPU和GPU混合的高速并行地形遮蔽计算方法,该方法采用网格化数字高程模型,利用遮蔽分析算法,对区域的地形数据进行分析,从而计算出给定的视点和观察点这条线段上的最远可视距离。本发明采用的普通CPU并行算法和CUDA并行计算框架混合方法,解决地形遮蔽计算过程中对环境适应能力不足、计算效率低下的问题,实现了对多种应用场景下的支持,大大提高了算法的计算效率。
技术领域
本发明属于数据分析领域,涉及一种基于CPU和GPU混合的高速并行地形遮蔽计算方法。
背景技术
三维场景模拟仿真与地形数据息息相关,而对地形遮蔽的计算能够很好的分析一定范围数据与地形之间的关系,在军事、国土、测绘等方向具有很好的实际意义。
传统的地形遮蔽算法的实现过程常使用CPU编程的方法。CPU并行计算最常用的方法是多线程并行运算,通常利用OpenMP对循环进行并行化处理,OpenMP提供了一系列应用程序接口,通过在源代码中加入“pragma”来标明并行化,并通过系统级的抽象降低了并行编码的复杂性。OpenMP以fork-join模型执行。但是CPU编程的方法在大量数据情况下计算效率不高。
目前,在大规模的并行计算中,越来越多地应用图形处理器(GPU)进行并行计算。运算平台CUDA (Compute Unified Device Architecture)是一种操作GPU计算的硬件和软件架构,它将GPU视作一个数据并行计算设备,而且无需把这些计算映射到图形API。但在使用GPU进行并行计算的过程中,经常会遇到服务器或者工作站没有显卡或者显卡不支持CUDA的情况。
发明内容
本发明的目的在于采用普通CPU并行算法和CUDA并行计算框架混合的方法,解决地形遮蔽计算过程中对环境适应能力不足、计算效率低下的问题。
为实现上述技术目的,达到上述技术效果,本发明通过以下技术方案实现:
一种基于CPU和GPU混合的高速并行地形遮蔽计算方法,该方法包括以下步骤:
步骤1)建立网格化数字高程模型,以高程矩阵方式来表示地面高程,根据需要计算的区域和高程的读取范围,将该区域划分成若干网格,对网格进行编码,记录每个网格的高程值,计算网格化的高程矩阵,使得区域内任一位置有对应的网格编码,从而得到该位置的高程值;
步骤2)采用遮蔽分析算法对区域的地形数据进行分析,将两点在高程矩阵中的编码拟合成一条直线,通过计算直线与高程网格矩阵的交点,得到视点到观察点的地形剖面,根据点与点之间的夹角判断是否通视,计算出最远通视点;
步骤3)高程数据校正,将影响高程数据的地球曲率和大气衰减因素作为校正参数,构建校正公式对高程数据进行校正。
进一步的,所述步骤1)中,将需要计算的区域划分成网格m×n,网格编码以起始点的地理坐标为网格的原点(0,0),水平方向为0到n-1,垂直方向为0到m-1。
进一步的,所述步骤1)中,计算网格化的高程矩阵,包括以下步骤:
步骤1.1)根据需要计算的区域的网格大小(m×n),最小点的位置
单位网格的经纬度分辨率为:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院电子学研究所苏州研究院,未经中国科学院电子学研究所苏州研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810968397.1/2.html,转载请声明来源钻瓜专利网。