CN103809937B - 一种基于gpu的通视并行处理方法 - Google Patents
一种基于gpu的通视并行处理方法 Download PDFInfo
- Publication number
- CN103809937B CN103809937B CN201410038204.4A CN201410038204A CN103809937B CN 103809937 B CN103809937 B CN 103809937B CN 201410038204 A CN201410038204 A CN 201410038204A CN 103809937 B CN103809937 B CN 103809937B
- Authority
- CN
- China
- Prior art keywords
- intervisibility
- gpu
- point
- sight line
- parallel
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Processing Or Creating Images (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种基于GPU的通视并行计算方法,包括如下步骤:S1:构建GPU编程环境;S2:计算连接观察点和目标点的视线;S3:写入数据到GPU;S4:并行计算视线线段上每点通视情况;S5:设置同步点;S6:并行判断通视结果;S7:读出数据到CPU。本发明的通视并行处理方法能够支持CPU、GPU异构混合体系结构,有效利用新型处理器、通信、同步等优化资源,实现通视计算的高效并行运行;通过将CUDA架构与通视性计算方法有机结合,充分利用CUDA并行存储和通信机制,实现分层并行的高效能通视方法,保证通视计算精度的同时有效减少计算时间。
Description
技术领域
本发明涉及通视并行处理方法技术领域,特别涉及一种基于GPU(GraphicProcessing Unit,图形处理单元)的通视并行处理方法。
背景技术
通视处理是在三维空间中计算任意给定的两点之间连线上的通视情况,是仿真***中必不可少的部分。现有的通视处理方法以格网DEM地形为基础形成的方法较多,例如Janus算法、Dyntacs算法、ModSAF算法和Bresenham算法,这些通视处理方法的原理基本一致,所不同的是高程内插方法和通视判断原则,使得通视处理的精度和效率有所不同。上述串行的通视计算方法不能同时解决通视计算的准确性和快速性两个问题。
现有的通视处理大多在CPU上串行执行,其算法注重改进单次视线通视计算方法的效率,但由于通视计算复杂度仍是O(N2),所以效率提高并不明显。
在通视并行处理方面,Ware等人采用一些区域分割策略在计算机集群上实现并行的通视计算;Kidner等人设计了一种多尺度隐式的不规则三角网格以支持多种分辨率下的通视计算;Mineter等人通过在高吞吐量的分布式***中建立完整的通视数据库实现通视计算的并行。上述通视并行处理方法都主要关注在分布式***中实现并行的通视处理,通过网络进行通视处理的通信和同步。因此,上述通视并行处理方法的效率受限于分布式***的环境条件。
发明内容
本发明目的在于提供一种基于GPU的通视并行计算方法,解决现有仿真***中通视计算效率不高的问题,在保证计算精度的同时有效减少通视计算的时间。
本发明提供的基于GPU的通视并行处理方法包括如下步骤:
S1:构建GPU编程环境;
S2:计算连接观察点和目标点的视线;
S3:写入数据到GPU;
S4:并行计算视线线段上每点通视情况;
S5:设置同步点;
S6:并行判断通视结果;
S7:读出数据到CPU。
优选地,所述GPU编程环境包括硬件环境和软件环境,其中硬件环境包括CPU、支持CUDA架构的显示芯片、以及连接CPU与显示芯片的PCI总线;软件环境包括C/C++编译器和CUDA。
优选地,所述步骤S2包括如下子步骤:
S2.1:读入观察点的位置、目标点的位置、观察点的地形数据和目标点的地形数据;
S2.2:在CPU上确定通过观察点和目标点的视线线段;
S2.3:将观察点和目标点的位置从地理坐标系转换为地心坐标系;
S2.4:在地心坐标系下计算得到观察点与目标点之间的视线线段。
优选地,观察点和目标点的地形数据各包括经度、纬度和高度。
优选地,所述步骤S3包括如下子步骤:
S3.1:将所有的数据从CPU的内存写入到GPU的显存;
S3.2:将数据量较大并保持不变的地形数据从显存放入纹理缓存来加速读取;
S3.3:将计算中频繁访问的观测点和目标点位置放入常量缓存来加速读取。
优选地,所述步骤S4包括如下子步骤:
S4.1:GPU内一个线程块对应一条视线线段,分配共享内存保存通信数据;
S4.2:每个线程块中的线程平均分配计算视线上的部分离散点;
S4.3:所有线程同时执行相同的离散点通视判断。
优选地,所述步骤S4.3为:利用插值计算方法由观察点和目标点的地心坐标计算得到对应离散点的地心坐标,由该离散点的地心坐标计算得到该离散点的经度、纬度和高度,根据该离散点的经度和纬度查询地形数据得到该离散点所在位置的地形的高度,通过比较判断该离散点的高度是否大于该离散点所在位置的地形的高度,并将判断结果写入共享内存。
优选地,所述步骤S5为:对GPU内的线程设置同步点,直到同一线程块内所有的线程都完成视线线段上每点通视判断才继续下一步的计算。
优选地,所述步骤S6为:GPU内的每个线程块通过并行遍历方法共享内存中的通视判断结果,如果视线上所有离散点的高度都大于该点所在位置的地形的高度,则判定该视线通视,否则判定该视线不通视,并且将该视线的通视结果保存在GPU的显存上。
优选地,所述步骤S7为:将GPU得到的所有视线的通视判断结果写回CPU内存,通过PCI总线从GPU的显存复制到CPU内存上。
本发明具有如下有益效果:
与现有技术的通视并行处理方法相比,本发明的通视并行处理方法能够支持CPU、GPU异构混合体系结构,有效利用新型处理器、通信、同步等优化资源,实现通视计算的高效并行运行;通过将CUDA架构与通视性计算方法有机结合,充分利用CUDA并行存储和通信机制,实现分层并行的高效能通视方法,保证通视计算精度的同时有效减少计算时间。
附图说明
图1为本发明实施例提供的基于GPU的通视并行处理方法的流程图;
图2为基于GPU的通视并行计算方法的数据交换走向示意图;
图3为树状加法示意图。
具体实施方式
下面结合附图及实施例对本发明的发明内容作进一步的描述。
如图1所示,本实施例提供的基于GPU的通视并行处理方法包括如下步骤:
S1:构建GPU编程环境;
S2:计算连接观察点和目标点的视线;
S3:写入数据到GPU;
S4:并行计算视线线段上每点通视情况;
S5:设置同步点;
S6:并行判断通视结果;
S7:读出数据到CPU。
在上述步骤S1中,GPU编程环境包括硬件环境和软件环境,其中硬件环境包括CPU、支持CUDA架构的显示芯片、以及连接CPU与显示芯片的PCI总线,且将CPU作为主机(host),将GPU作为设备(device);软件环境包括C/C++编译器和CUDA。
上述步骤S2包括如下子步骤:
S2.1:读入观察点的位置、目标点的位置、观察点的地形数据和目标点的地形数据;在本实施例中,观察点和目标点的地形数据各包括经度、纬度和高度;
S2.2:在CPU上确定通过观察点和目标点的视线线段;
S2.3:将观察点和目标点的位置从地理坐标系转换为地心坐标系;
S2.4:在地心坐标系下计算得到观察点与目标点之间的视线线段。
将观察点和目标点的位置从地理坐标系转换为地心坐标系的转换关系式为:
X=(N+H)cos(B)cos(L) 公式(1)
Y=(N+H)cos(B)sin(L) 公式(2)
Z=[N(1-e_2_C)+H]sin(B) 公式(3)
公式(1)、公式(2)和公式(3)中,(X,Y,Z)为观察点或目标点的地心坐标;L为观察点或目标点在地理坐标系的经度;B为观察点或目标点在地理坐标系的纬度;H为观察点或目标点在地理坐标系的高度;e_2_C为椭球第一偏心率平方,且
公式(4)中,a为椭球长半轴;b为椭球短半轴;在本实施例中,a=6378137.0;且b=6356752.3142。
公式(1)、公式(2)和公式(3)中,N为卯酉圈曲率半径,且
上述步骤S3为:将CPU上计算得到的视线线段和地形数据复制到GPU上,具体地,在GPU的显存上设置能够存储视线线段和地形数据的存储空间,通过PCI总线将视线线段和地形数据从CPU的内存传输到GPU的显存的存储空间。
上述步骤S3包括如下子步骤:
S3.1:将所有的数据从CPU的内存写入到GPU的显存,如图2中的标号1所示;
S3.2:将数据量较大并保持不变的地形数据从显存放入纹理缓存来加速读取,如图图2中的标号2所示;
S3.3:将计算中频繁访问的观测点和目标点位置放入常量缓存来加速读取,如图图2中的标号3所示。
上述步骤S4包括如下子步骤:
S4.1:GPU内一个线程块对应一条视线线段,分配共享内存保存通信数据;
S4.2:每个线程块中的线程平均分配计算视线上的部分离散点;
S4.3:所有线程同时执行相同的离散点通视判断。
上述步骤S4.3为:利用插值计算方法由观察点和目标点的地心坐标计算得到对应离散点的地心坐标,由该离散点的地心坐标计算得到该离散点的经度、纬度和高度,根据该离散点的经度和纬度查询地形数据得到该离散点所在位置的地形的高度,通过比较判断该离散点的高度是否大于该离散点所在位置的地形的高度,并将判断结果写入共享内存。
将观察点和目标点的位置从地心坐标系转换为地理坐标系的转换关系式为:
公式(6)、公式(7)和公式(8)中,e_2nd_2_C为椭球第二偏心率平方,且
上述插值计算方法为:
利用距离加权法计算内插点的高度的计算公式为:
公式(12)中,n=4;zi为格网结点的高度;di为格网结点到内插点的距离。在格网边上点的高度采用简单的线性内插算出。已知两相邻的格网结点分别为A(x1,y1,z1)和B(x2,y2,z2),查询点C的平面坐标为(x0,y0),则点C(x0,y0,z0)的高度为:
公式(13)中,S1为A点与C点时间的距离;S2为A点与B点之间的距离。
上述步骤S5为:对GPU内的线程设置同步点,直到同一线程块内所有的线程都完成视线线段上每点通视判断才继续下一步的计算,以保证读取通视结果的正确性。CUDA架构中通过栅栏(barrier)实现同步点的设置,调用syncthreads函数即可。
上述步骤S6为:GPU内的每个线程块通过并行遍历方法共享内存中的通视判断结果,如果视线上所有离散点的高度都大于该点所在位置的地形的高度,则判定该视线通视,否则判定该视线不通视,并且将该视线的通视结果保存在GPU的显存上。
如图3所示,上述并行遍历方法通过树状加法来完成并行计算:将通视结果记为值0,不通视结果记为值1。通过树状加法将所有线程的通视结果的求和过程并行化。如果树状加法返回值为0则视线通视,否则视线不通视。将视线通视结果写回共享内存,如图2中的标号4所示。
上述步骤S7为:将GPU得到的所有视线的通视判断结果写回CPU内存,通过PCI总线从GPU的显存复制到CPU内存上。
每个线程块将共享内存中的视线通视结果写入显存,如图2中的标号5所示;然后由CPU读取显存获得所有通视结果,如图2中的标号1所示。
应当理解,以上借助优选实施例对本发明的技术方案进行的详细说明是示意性的而非限制性的。本领域的普通技术人员在阅读本发明说明书的基础上可以对各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种基于GPU的通视并行处理方法,其特征在于,包括如下步骤:
S1:构建GPU编程环境;
S2:计算连接观察点和目标点的视线;
S3:写入数据到GPU;
S4:并行计算视线线段上每点通视情况;
S5:设置同步点;
S6:并行判断通视结果;
S7:读出数据到CPU;
所述步骤S2包括如下子步骤:
S2.1:读入观察点的位置、目标点的位置、观察点的地形数据和目标点的地形数据;
S2.2:在CPU上确定通过观察点和目标点的视线线段;
S2.3:将观察点和目标点的位置从地理坐标系转换为地心坐标系;
S2.4:在地心坐标系下计算得到观察点与目标点之间的视线线段。
2.根据权利要求1所述的基于GPU的通视并行处理方法,其特征在于,所述GPU编程环境包括硬件环境和软件环境,其中硬件环境包括CPU、支持CUDA架构的显示芯片、以及连接CPU与显示芯片的PCI总线;软件环境包括C/C++编译器和CUDA。
3.根据权利要求1所述的基于GPU的通视并行处理方法,其特征在于,观察点和目标点的地形数据各包括经度、纬度和高度。
4.根据权利要求1所述的基于GPU的通视并行处理方法,其特征在于,所述步骤S3包括如下子步骤:
S3.1:将所有的数据从CPU的内存写入到GPU的显存;
S3.2:将数据量较大并保持不变的地形数据从显存放入纹理缓存来加速读取;
S3.3:将计算中频繁访问的观察点和目标点位置放入常量缓存来加速读取。
5.根据权利要求1所述的基于GPU的通视并行处理方法,其特征在于,所述步骤S4包括如下子步骤:
S4.1:GPU内一个线程块对应一条视线线段,分配共享内存保存通信数据;
S4.2:每个线程块中的线程平均分配计算视线上的部分离散点;
S4.3:所有线程同时执行相同的离散点通视判断。
6.根据权利要求5所述的基于GPU的通视并行处理方法,其特征在于,所述步骤S4.3为:利用插值计算方法由观察点和目标点的地心坐标计算得到对应离散点的地心坐标,由该离散点的地心坐标计算得到该离散点的经度、纬度和高度,根据该离散点的经度和纬度查询地形数据得到该离散点所在位置的地形的高度,通过比较判断该离散点的高度是否大于该离散点所在位置的地形的高度,并将判断结果写入共享内存。
7.根据权利要求1所述的基于GPU的通视并行处理方法,其特征在于,所述步骤S5为:对GPU内的线程设置同步点,直到同一线程块内所有的线程都完成视线线段上每点通视判断才继续下一步的计算。
8.根据权利要求1所述的基于GPU的通视并行处理方法,其特征在于,所述步骤S6为:GPU内的每个线程块通过并行遍历方法共享内存中的通视判断结果,如果视线上所有离散点的高度都大于该点所在位置的地形的高度,则判定该视线通视,否则判定该视线不通视,并且将该视线的通视结果保存在GPU的显存上。
9.根据权利要求1所述的基于GPU的通视并行处理方法,其特征在于,所述步骤S7为:将GPU得到的所有视线的通视判断结果写回CPU内存,通过PCI总线从GPU的显存复制到CPU内存上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410038204.4A CN103809937B (zh) | 2014-01-26 | 2014-01-26 | 一种基于gpu的通视并行处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410038204.4A CN103809937B (zh) | 2014-01-26 | 2014-01-26 | 一种基于gpu的通视并行处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103809937A CN103809937A (zh) | 2014-05-21 |
CN103809937B true CN103809937B (zh) | 2016-09-21 |
Family
ID=50706774
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410038204.4A Active CN103809937B (zh) | 2014-01-26 | 2014-01-26 | 一种基于gpu的通视并行处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103809937B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104121942A (zh) * | 2014-07-08 | 2014-10-29 | 哈尔滨工业大学 | 基于GPU和openCV图像处理的汽车仪表自动检测装置 |
CN110378834A (zh) * | 2019-07-24 | 2019-10-25 | 重庆大学 | 一种基于异构并行架构的快速通视分析方法 |
CN110456319A (zh) * | 2019-08-29 | 2019-11-15 | 西安电子工程研究所 | 一种基于srtm的雷达通视性计算方法 |
CN115794414B (zh) * | 2023-01-28 | 2023-05-05 | 中国人民解放军国防科技大学 | 基于并行计算的卫星对地通视分析方法、装置和设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102662641A (zh) * | 2012-04-16 | 2012-09-12 | 浙江工业大学 | 一种基于cuda的种子分布数据并行获取方法 |
CN102708590A (zh) * | 2011-03-28 | 2012-10-03 | 上海日浦信息技术有限公司 | 一种可扩展通用三维地景仿真*** |
CN103336959A (zh) * | 2013-07-19 | 2013-10-02 | 西安电子科技大学 | 一种基于gpu多核并行加速的车辆检测方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990827B2 (en) * | 2011-10-11 | 2015-03-24 | Nec Laboratories America, Inc. | Optimizing data warehousing applications for GPUs using dynamic stream scheduling and dispatch of fused and split kernels |
US9529575B2 (en) * | 2012-02-16 | 2016-12-27 | Microsoft Technology Licensing, Llc | Rasterization of compute shaders |
-
2014
- 2014-01-26 CN CN201410038204.4A patent/CN103809937B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102708590A (zh) * | 2011-03-28 | 2012-10-03 | 上海日浦信息技术有限公司 | 一种可扩展通用三维地景仿真*** |
CN102662641A (zh) * | 2012-04-16 | 2012-09-12 | 浙江工业大学 | 一种基于cuda的种子分布数据并行获取方法 |
CN103336959A (zh) * | 2013-07-19 | 2013-10-02 | 西安电子科技大学 | 一种基于gpu多核并行加速的车辆检测方法 |
Non-Patent Citations (2)
Title |
---|
Research on GPU-based Computation method for Line-Of-Sight Queries;Liu Bin, Yao Yiping, Tang Wenjie, Lu Yang;《IEEE Conference Publications》;20121231;第84-86页 * |
地形通视性算法研究与设计;王智杰;《工程科技Ⅱ辑》;20050228;第12-14页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103809937A (zh) | 2014-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10984286B2 (en) | Domain stylization using a neural network model | |
US10872399B2 (en) | Photorealistic image stylization using a neural network model | |
US20190035113A1 (en) | Temporally stable data reconstruction with an external recurrent neural network | |
KR102047031B1 (ko) | 딥스테레오: 실세계 이미지로부터 새로운 뷰들을 예측하는 러닝 | |
JP7166383B2 (ja) | 高精度マップの作成方法及び装置 | |
Salamunićcar et al. | LU60645GT and MA132843GT catalogues of Lunar and Martian impact craters developed using a Crater Shape-based interpolation crater detection algorithm for topography data | |
TWI695188B (zh) | 用於寬視野互動式三維電腦圖形的近眼光場渲染之系統及方法 | |
US20230237313A1 (en) | Layout Parasitics and Device Parameter Prediction using Graph Neural Networks | |
Rupnow et al. | High level synthesis of stereo matching: Productivity, performance, and software constraints | |
US20200410322A1 (en) | Neural architecture for self supervised event learning and anomaly detection | |
CN103809937B (zh) | 一种基于gpu的通视并行处理方法 | |
KR20180034557A (ko) | 2차원 어레이 프로세서의 성능 향상 | |
CN108279670A (zh) | 用于调整点云数据采集轨迹的方法、设备以及计算机可读介质 | |
CN103020620B (zh) | 基于cpu和gpu协同处理的遥感影像正射校正方法 | |
CN107766471A (zh) | 一种多源数据的组织管理方法与装置 | |
CN110637461A (zh) | 计算机视觉***中的致密光学流处理 | |
US10055875B2 (en) | Real-time eulerian water simulation using a restricted tall cell grid | |
Stojanovic et al. | High performance processing and analysis of geospatial data using CUDA on GPU | |
CN106484532B (zh) | 面向sph流体模拟的gpgpu并行计算方法 | |
Poostchi et al. | Efficient GPU implementation of the integral histogram | |
Bai et al. | Understanding spatial growth of the old city of Nanjing during 1850–2020 based on historical maps and Landsat data | |
CN117115200A (zh) | 用于致密光学流的阶层式数据组织 | |
US20230418705A1 (en) | Hardware-efficient pam-3 encoder and decoder | |
Stojanović et al. | Performance improvement of viewshed analysis using GPU | |
CN108197613B (zh) | 一种基于深度卷积级联网络的人脸检测优化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |