CN106971369A - 一种基于gpu的地形可视域分析的数据调度与分发方法 - Google Patents
一种基于gpu的地形可视域分析的数据调度与分发方法 Download PDFInfo
- Publication number
- CN106971369A CN106971369A CN201710119522.7A CN201710119522A CN106971369A CN 106971369 A CN106971369 A CN 106971369A CN 201710119522 A CN201710119522 A CN 201710119522A CN 106971369 A CN106971369 A CN 106971369A
- Authority
- CN
- China
- Prior art keywords
- data
- row
- region
- gpu
- delta
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000009826 distribution Methods 0.000 title claims abstract description 26
- 238000004364 calculation method Methods 0.000 claims abstract description 11
- 230000000007 visual effect Effects 0.000 claims description 14
- 235000019580 granularity Nutrition 0.000 claims description 5
- 238000005192 partition Methods 0.000 claims description 4
- 238000004220 aggregation Methods 0.000 claims description 3
- 230000002776 aggregation Effects 0.000 claims description 3
- 238000000205 computational method Methods 0.000 claims description 3
- 238000011156 evaluation Methods 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 description 15
- 230000015654 memory Effects 0.000 description 13
- 238000005194 fractionation Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000012913 prioritisation Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000011160 research Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000010025 steaming Methods 0.000 description 2
- 238000003860 storage Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 206010068052 Mosaicism Diseases 0.000 description 1
- 244000062793 Sorghum vulgare Species 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 235000019713 millet Nutrition 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 210000003765 sex chromosome Anatomy 0.000 description 1
- 238000012732 spatial analysis Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 235000019587 texture Nutrition 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30181—Earth observation
- G06T2207/30184—Infrastructure
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Image Generation (AREA)
- Multi Processors (AREA)
Abstract
本发明公开了一种基于GPU的地形可视域分析的数据调度与分发方法,具体如下:确定以视点为中心按照90°角度的三角形区域进行划分;对于每个三角形区域数据,按照以视点为参照点和区域特征选择行数据块调度或列数据块分发方法;对于行数据块调度,CPU进程按行方式计算数据段和读取数据,并分发给GPU设备,并启动大量GPU线程进行并行计算;对于列数据块调度,进程按列方式计算数据段和读取数据,并发给GPU设备,并启动大量GPU线程进行并行计算。本发明的数据调度方法可以保证数据单向依赖,使得后续的调度方法能有效实现并行可视域分析,提高了地形可视域分析的效率。本发明可应用于大规模海量数据的并行地形可视域分析的高性能计算的数据动态调度场合。
Description
技术领域
本发明涉及数字地形分析的可视域分析和并行计算的交叉技术领域,特别是一种基于GPU的地形可视域分析的数据调度与分发方法。
背景技术
数字地形分析(Digital Terrain Analysis,简称DTA)是在数字高程模型(Digital Elevation Model,简称DEM)的基础上进行地形属性计算和特征提取的数字信息处理技术。可视性分析是数字地形分析的重要地形分析因子,包括通视性分析和可视域分析。其中,可视域分析又称地形通视分析,指的是从单个或者多个地理位置所能看到的地形范围或者与其他地理位置之间的可见程度,是数字地形分析中的不可缺少的一部分。地形可视域分析在很多相关领域都有比较重要的意义,已经成为景观分析与评估、建筑规划、军事、空间认知与决策、考古等领域的重要研究手段。由于可视域分析算法中具有的数据的全局依赖特性和局部数据依赖特性,可视性分析并行化过程中所面临的各种复杂的问题需要考虑,已有的并行化手段无法彻底解决这一问题,同时在并行数字地形分析的大环境下,大尺度下的复杂数据依赖问题逐渐成为制约相关算法加速效果进一步提升的瓶颈。
并行可视域分析是使用并行计算的技术来解决可视域分析中的海量数据量的高效处理问题。随着各种新型传感器以及测量技术的出现,DEM数据呈级数增长,从而导致单机环境下对大规模的数据进行处理是一件十分困难的事情。因此使用并行计算技术可以有效地解决单处理器的计算瓶颈问题以及提高数据处理的效率。基于规则格网DEM的可视域计算,一种简单的方法就是沿着视线的方向,从视点开始到目标格网点,计算与视线相交的格网单元(边或面),判断相交的格网单元是否可视,从而确定视点与目标视点之间是否可视。该方法存在大量的冗余计算,导致海量规则格网DEM的可视域计算非常耗时。XDraw算法是一种近似的可视域分析算法,可以采用并行化的方法进行计算,大大提高计算的效率。
GPU(Graphics Processing Unit)主要是用于图形计算的处理单元,图形计算通常是并行的,因此GPU的结构设计尽可能具有好的并行计算能力。Nvidia公司开发的GPU结构如图1所示。通常,GPU被设计探究数据并行化,并能达到CPU10倍的FLOPS能力。CUDA(Compute Unified Device Architecture)是一个编程框架,其设计目的不仅是使用计算机的图形处理单元所具有的快速图形渲染能力,而是其强大的计算能力,也称为通用目的GPU编程。CUDA仅支持Nvidia GPU计算,而且数据密集型的应用得益于GPU的高带宽内存,其能够进行I/O管理功能,因而增强I/O性能。CUDA线程模型如图2所示,其被设计适用于数据密集型的空间分析,例如数字地形分析。
GPU有五种不同的内存类型,用于提高GPU的处理性能。(1)GM(global memory)用于存储从主机传送给GPU设备的数据,其可以被处于同一空间的CUDA的线程访问;(2)CM(Constant memory)是GM的一部分,常存储只读的常量数据,也可以是从CM读取的缓存内存,速度要比GM快;(3)TM(Texture memory)也是GM的一部分,称为L2级缓存,用于从一个图形或内核结构采样;(4)共享内存(Shared memory)仅能被同一个线程块中的线程访问,通过执行同步操作确保在共享内存的读写同步;(5)Private memory(PM)是线程的私有内存,对其他线程是不可见的。放在PM中的变量将使用寄存器以达到快速内存访问的水平。可以访问的寄存器数目取决于在内核中执行的线程的数目。GM和TM一般比较大,而每个线程的PM小于16KB,CM只有64KB,对于每个流式多处理器(stream multiprocessor,SM)共享内存仅达到16KB,以及每个处理器32位的寄存器只能到8192或16384。寄存器、CM和共享内存的时延至多是24个周期,但是GM和TM的访问时延大约是400-600周期。CUDA性能提高最重要的问题是内存优化。大规模的并行线程以流水线的方式被调度到多处理器上,可以减轻GM的访问延时。由于硬件资源有限,例如寄存器文件的大小、共享内存和线程调度插槽,一个流式多处理器同时只能拥有一定数量的线程块。驻留在SM中主动线程数目与GPU中的SM所支持的线程最大数目的比例称为多处理器占用比。对内存带宽受限的应用,提高占用比可以有助于减轻GM访问的时延。
CUDA基于GPU架构设计,可用于开发面向海量数据的并行计算。为了利用大量的线程并行计算能力,CUDA编程模型采用了SPMD(single program multiple data)模式,大量的处理器核被组织成一组流式多处理器来达到较高的FLOPS(floating-point operationsper second)。因此,应用开发者指定称作核(kernel)的数据并行函数,其通过主机的CPU请求运行在拥有大量的并行线程的GPU设备上,每个线程执行核函数的一个实例。这些线程被组织成线程块和线程块网格(grid),且每个线程可以通过线程ID和线程块唯一标识。一个网格有许多线程块,它们不能相互通信。一个线程块至少拥有512个线程,它们可以相互通信和同步。每个线程块被分配给一个SM,并被分成两个或三个段(warp)。每个段有八个线程,并以SIMT(simple instruction multiple threads)方式在SM中执行。线程调度器在不同段中切换以最大化处理器的效率。在CUDA应用中的变量应存储在GPU芯片中的设备内存中。这些内存资源可以灵活地分配给线程,以达到令人满意的内存访问性能。特别是,每个线程能够私有的方式访问自己的寄存器文件。在同一个线程块中的线程被允许访问芯片上的共享内存。不同线程块的线程能够共享GM,能够通过全体核同步方式进行通信。
XDraw可视域分析算法是由Franklin等人提出的可视域分析算法,其将DEM数据区域划分成8个45°角三角形区域,使得每个三角形区域保持独立,因而可以实现数据并行计算。XDraw算法通过由视点逐渐向外的矩形环来近似确定每个单元的可视性。如图3所示,目标单元p的可视性仅需通过前一层上的单元的信息确定。这种方式可以将两维的可视计算环简化成一维的基于视线插值的可视性问题。例如,XDraw使用两个参考点r1p与r2p的和观察点与目标点p视线的插值点的高程值来判断p点是否可视。具体就是通过插值点的高程值计算出p点的可视要求的高程值,然后判断p点的高程值是否大于要求的高程值,若大于,则可视,否则不可视。
目前并行可视域分析的研究热点主要集中在DEM数据拆分和可视域分析算法并行化,其中对于数据并行策略的研究主要集中在数据的有效拆分和数据调度策略方面。数据拆分主要分为等角度拆分和非等角度拆分。
基于等角度的数据拆分策略是按照角度对DEM进行数据拆分。每一块数据的视点角度为ANGLE=360°/n,n是处理器的数目。如图3所示,以视点为中心,地形被拆分为8个规格的三角形区域。各个区域的数据基本独立,不存在数据依赖,便于数据分发和并行计算。该拆分策略可以保证数据块拆分的角度大小与计算处理器的多少有关。对于单视点的并行可视域计算具有较好的适应性,可以保证相邻进程间的可视域计算不需要交互,各个进程可以根据本地数据独立计算。
数据按照角度拆分成三角形区域,每个三角形中的数据是按照视点从内到外依次计算的,存在从内到外的依赖关系,也就是说外面点的可视计算需要依赖里面点的结果。因此,每个三角形区域的数据还能否再次拆分,以便更细粒度的并行计算,是一个核心的问题之一。
尽管基于等角度数据划分的8个区域具有独立的特点,但是每个区域的数据量还是巨大的,且可视域算法的数据从里到外具有先后依赖关系,因此对每个区域的数据调度和计算效率还是比较低下的。从另一个角度看,这8个区域的数据依赖存在行数据块依赖或者是列数据块依赖。如图4所示,将这8个区域合并成4个区域,则I、III区域是列数据块依赖,而II、IV区域是行数据块依赖的。对于行数据块依赖,数据可以按照每一行的数据段来读取,且DEM栅格数据是按照行数据块存储的。对于列数据块依赖,数据可以按列数据块来读取。假设整个DEM数据区域起始点在左上方,坐标设为(0,0),终止点在右下方,坐标设为(n,n)。设视点在区域的中心,即为(n/2,n/2)。
对于区域I,数据可以按列方式读取每列数据段,且从里向外的顺序读取数据。设k为序号,则列号以及每列数据段的行起点和终点坐标给出如下:
对于区域II,数据可以按行方式读取每行数据段,且从里向外的顺序读取数据。设k为序号,则行号以及每行数据段的列起点和终点坐标给出如下:
对于区域III,数据可以按列方式读取每列数据段,且从里向外的顺序读取数据。设k为序号,则列号以及每列数据段的行起点和终点坐标给出如下:
对于区域IV,数据可以按行方式读取每行数据段,且从里向外的顺序读取数据。设k为序号,则行号以及每行数据段的列起点和终点坐标给出如下:
发明内容
本发明所要解决的技术问题是克服现有技术的不足而提供一种基于GPU的地形可视域分析的数据调度与分发方法,本发明方法可以有效实现并行可视域分析,提高了地形可视域分析的效率。
本发明为解决上述技术问题采用以下技术方案:
根据本发明提出的一种基于GPU的地形可视域分析的数据调度与分发方法,包括以下步骤:
步骤1、主进程读入DEM数据,并按照角度将DEM数据划分为4个三角形区域:首先,利用90度角的数据拆分方法,将该DEM数据以粗粒度的方式划分为以视点为中心的4个三角形区域;然后在粗划分得到的三角形区域数据的基础上,以视点为参照点,按照行或列数据块方式进行细粒度划分;
步骤2、主进程创建4个子进程,并将所述4个三角形区域的数据和类型分别分发给这4个子进程;
步骤3、每个子进程读取三角形区域的数据,按照三角形区域类型确定按行还是按列数据块方式来分发数据,计算三角形区域的行或列数据并将其发送至GPU;
步骤4、GPU启动多个GPU线程对每个子进程发送过来的行或列数据进行可视性计算,并将计算结果返回给各自的子进程;
步骤5、每个子进程接收和聚集计算结果,并保存结果;
步骤6、主进程确认各子进程计算完成,结束计算工作。
作为本发明所述的一种基于GPU的地形可视域分析的数据调度与分发方法进一步优化方案,所述步骤3中分发数据的计算方法如下:
设整个DEM数据大小为n×n,左上角坐标为(0,0),右下角坐标为(n,n),视点坐标为(n/2,n/2):4个三角形区域分别为区域I、区域II、区域III和区域IV;
(1)对于区域I,数据块按列方式读取区域I中的数据,对于第i列,则行取值范围为:列则为:其中,1≤i≤n/2;
(2)对于区域II,数据块按行方式读取该区域II中的数据,对于第i行,则列为:行取值范围则为:
(3)对于区域III,数据块按列方式读取该区域III中的数据,对于第i列,则行取值范围为:列则为:
(4)对于区域IV,数据块按照行方式读取该数据段,对于第i行,则列为:行取值范围则为:
作为本发明所述的一种基于GPU的地形可视域分析的数据调度与分发方法进一步优化方案,所述步骤4中可视性计算是通过核函数进行计算的。
作为本发明所述的一种基于GPU的地形可视域分析的数据调度与分发方法进一步优化方案,区域I和区域III是按列读取数据。
作为本发明所述的一种基于GPU的地形可视域分析的数据调度与分发方法进一步优化方案,区域II和区域IV是按行读取数据。
本发明采用以上技术方案与现有技术相比,具有以下技术效果:
(1)本发明提出的面向地形可视域分析的数据细粒度拆分方法,结合数据依赖关系特点,在基于90°角度粗粒度拆分的基础上,以视点为中心的行或列数据读取与分发策略,保证数据单向依赖,为数据调度建立基础;本发明的数据调度方法可以保证数据单向依赖,使得后续的调度方法能有效实现并行可视域分析,提高了地形可视域分析的效率;本发明可应用于大规模海量数据的并行地形可视域分析的高性能计算的数据动态调度场合;
(2)本发明提出的基于GPU架构的共享内存的数据调度与分发方法,基于进程和GPU线程的数据分发与计算策略,利用进程进行三角区域划分数据并进行调度,使用GPU线程进行以行或列方式分发数据进行计算。三角形拆分的数据区域由进程进行数据调度,每个进程上的三角形区域数据再按照以视点为中心的行或列进行数据段分发,并被分配到GPU线程上进行计算。上述调度方法可以有效实现并行可视域分析,提高了地形可视域分析的效率;
(3)本发明完全可应用于大规模海量数据的并行地形可视域分析的高性能计算的数据拆分和动态调度场合,例如,等角度三角区域划分的可视域分析计算、基于计算量的非等角度三角区域划分的可视域计算;也可以应用于景观分析与评估、建筑规划、军事、空间认知与决策、考古等领域的可视域分析为基础的研究手段等应用场合,提高处理效率。
附图说明
图1是本发明实施例中的Nvidia的GPU结构原理图;
图2是CUDA线程模型图;
图3是XDraw算法原理图;
图4为本发明实施例中的数据三角形区域拆分示意图;
图5为本发明实施例中的按照行或列依赖的数据段分发图;
图6为本发明实施例中的数据分发与调度流程图。
具体实施方式
下面结合附图对本发明的技术方案做进一步的详细说明:
本发明的实施例提供了一种基于GPU的地形可视域分析的数据调度与分发方法,主要包括:(1)面向并行地形可视域分析的数据三角区域划分和行或列的数据调度:基于90°角度等角度数据拆分策略,以视点为中心按照90°角度的三角形区域进行粗粒度划分;对于每个三角形区域数据,按照以视点为参照点,对不同的三角形区域按照行或列数据段进行细粒度划分;(2)基于进程与GPU线程相合的数据调度方法:进程进行三角形区域数据划分,并按照行或列的方式进行数据调度与分发,而GPU线程则进行以行或列的数据块进行数据调度与并行计算。具体为:
a)数据分层拆分
如图5所示所拆分的4个三角形区域,按照可视域分析算法,每个区域的数据保持独立,可以有一个进程进行数据读取和调度。无论是按照视线计算可视域,还是按照由外层节点依赖内层节点的可视性计算方法,数据都存在从内到外逐次向外扩展,如图3所示。
按照XDraw算法,数据是按照分层调度并计算的,第1层的两个点计算完成后,才能计算第2层的三个点,因为第2层的三个点依赖第1层的两个点的可视性结果。同理,第3层的四个点需要依赖第2层的三个的可视性结果。依次类推……。按照图5的4个三角形区域划分数据,每个区域的数据读取方式不同。I和III区域是按列读取数据的,II和IV区域是按行读取数据的,且不同的行或列上读取的数据大小也是不一样的。
b)基于GPU共享内存的数据调度与分发方法
如果一个三角形区域的数据被分发到一个进程上,那么对该区域的可视域计算可以独立进行。为了更细粒度的数据调度和基于GPU共享内存的并行计算,按照图5的行或列数据调度策略进行GPU数据分发和GPU线程调度与并行计算,有效提高计算的效率。
当按照图5所示的行或列数据调度策略,各行或列的数据由进程分发给相应的GPU设备,然后由GPU调度给不同的GPU线程进行计算。例如,对于图5中的区域I,数据按列来读取与分发,每一列的数据的起点和终点是由列决定的。区域I的列调度策略,第i列数据(1≤i≤n/2)对应的列号为该行数据的读取范围为其余区域的数据读取依次类推。
每个GPU接收到行或列数据,然后启动大量的GPU线程,以并行的方式进行核函数的并行计算。
上述的基于的GPU共享内存的数据调度策略,可以实现并行计算,从而提高计算的效率。
C)进程与GPU线程相结合的调度方法,如图6所示,包括以下步骤:
步骤1、主进程读入DEM数据,并按照角度将DEM数据划分为4个三角形区域:首先,利用90度角的数据拆分方法,将该DEM数据以粗粒度的方式划分为以视点为中心的4个三角形区域;然后在粗划分得到的三角形区域数据的基础上,以视点为参照点,按照行或列数据块方式进行细粒度划分;
步骤2、主进程创建4个子进程,并将所述4个三角形区域的数据和类型分别分发给这4个子进程;
步骤3、每个子进程读取三角形区域的数据,按照三角形区域类型确定按行还是按列数据块方式来分发数据,计算三角形区域的行或列数据并将其发送至GPU;
步骤4、GPU启动多个GPU线程对每个子进程发送过来的行或列数据进行可视性计算,并将计算结果返回给各自的子进程;
步骤5、每个子进程接收和聚集计算结果,并保存结果;
步骤6、主进程确认各子进程计算完成,结束计算工作。
Claims (5)
1.一种基于GPU的地形可视域分析的数据调度与分发方法,其特征在于,包括以下步骤:
步骤1、主进程读入DEM数据,并按照角度将DEM数据划分为4个三角形区域:首先,利用90度角的数据拆分方法,将该DEM数据以粗粒度的方式划分为以视点为中心的4个三角形区域;然后在粗划分得到的三角形区域数据的基础上,以视点为参照点,按照行或列数据块方式进行细粒度划分;
步骤2、主进程创建4个子进程,并将所述4个三角形区域的数据和类型分别分发给这4个子进程;
步骤3、每个子进程读取三角形区域的数据,按照三角形区域类型确定按行还是按列数据块方式来分发数据,计算三角形区域的行或列数据并将其发送至GPU;
步骤4、GPU启动多个GPU线程对每个子进程发送过来的行或列数据进行可视性计算,并将计算结果返回给各自的子进程;
步骤5、每个子进程接收和聚集计算结果,并保存结果;
步骤6、主进程确认各子进程计算完成,结束计算工作。
2.根据权利要求1所述的一种基于GPU的地形可视域分析的数据调度与分发方法,其特征在于,所述步骤3中分发数据的计算方法如下:
设整个DEM数据大小为n×n,左上角坐标为(0,0),右下角坐标为(n,n),视点坐标为(n/2,n/2):4个三角形区域分别为区域I、区域II、区域III和区域IV;
(1)对于区域I,数据块按列方式读取区域I中的数据,对于第i列,则行取值范围为:列则为:其中,1≤i≤n/2;
(2)对于区域II,数据块按行方式读取该区域II中的数据,对于第i行,则列为:行取值范围则为:
(3)对于区域III,数据块按列方式读取该区域III中的数据,对于第i列,则行取值范围为:列则为:
(4)对于区域IV,数据块按照行方式读取该数据段,对于第i行,则列为:行取值范围则为:
3.根据权利要求1所述的一种基于GPU的地形可视域分析的数据调度与分发方法,其特征在于,所述步骤4中可视性计算是通过核函数进行计算的。
4.根据权利要求2所述的一种基于GPU的地形可视域分析的数据调度与分发方法,其特征在于,区域I和区域III是按列读取数据。
5.根据权利要求2所述的一种基于GPU的地形可视域分析的数据调度与分发方法,其特征在于,区域II和区域IV是按行读取数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710119522.7A CN106971369B (zh) | 2017-03-02 | 2017-03-02 | 一种基于gpu的地形可视域分析的数据调度与分发方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710119522.7A CN106971369B (zh) | 2017-03-02 | 2017-03-02 | 一种基于gpu的地形可视域分析的数据调度与分发方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106971369A true CN106971369A (zh) | 2017-07-21 |
CN106971369B CN106971369B (zh) | 2020-06-12 |
Family
ID=59328593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710119522.7A Active CN106971369B (zh) | 2017-03-02 | 2017-03-02 | 一种基于gpu的地形可视域分析的数据调度与分发方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106971369B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378834A (zh) * | 2019-07-24 | 2019-10-25 | 重庆大学 | 一种基于异构并行架构的快速通视分析方法 |
CN110955525A (zh) * | 2019-12-05 | 2020-04-03 | 广东省新一代通信与网络创新研究院 | 一种基于fpga设备的网络定义存储方法、读取方法及系统 |
CN111245664A (zh) * | 2020-03-23 | 2020-06-05 | 上海理工大学 | 面向大规模数据流处理的gpu边缘计算集群通信系统 |
CN115329250A (zh) * | 2022-10-13 | 2022-11-11 | 中国空气动力研究与发展中心计算空气动力研究所 | 基于dg处理数据的方法、装置、设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2085752A2 (de) * | 2008-02-02 | 2009-08-05 | Dr. Johannes Heidenhain GmbH | Optische Positionsmesseinrichtung |
KR20140110575A (ko) * | 2013-03-08 | 2014-09-17 | (주)이지스 | 개선된 lod 기반의 화산재 확산 모델 가시화방법 |
CN104598600A (zh) * | 2015-01-23 | 2015-05-06 | 南京师范大学 | 一种基于分布式内存的并行数字地形分析优化方法 |
CN105022673A (zh) * | 2015-07-15 | 2015-11-04 | 南京师范大学 | 一种面向数据并行计算容错的快速并行复算方法 |
CN106055656A (zh) * | 2016-06-01 | 2016-10-26 | 南京师范大学 | 一种面向并行地形可视域分析的数据划分与调度方法 |
-
2017
- 2017-03-02 CN CN201710119522.7A patent/CN106971369B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2085752A2 (de) * | 2008-02-02 | 2009-08-05 | Dr. Johannes Heidenhain GmbH | Optische Positionsmesseinrichtung |
KR20140110575A (ko) * | 2013-03-08 | 2014-09-17 | (주)이지스 | 개선된 lod 기반의 화산재 확산 모델 가시화방법 |
CN104598600A (zh) * | 2015-01-23 | 2015-05-06 | 南京师范大学 | 一种基于分布式内存的并行数字地形分析优化方法 |
CN105022673A (zh) * | 2015-07-15 | 2015-11-04 | 南京师范大学 | 一种面向数据并行计算容错的快速并行复算方法 |
CN106055656A (zh) * | 2016-06-01 | 2016-10-26 | 南京师范大学 | 一种面向并行地形可视域分析的数据划分与调度方法 |
Non-Patent Citations (2)
Title |
---|
汤晓安 等: "一种基于视觉特征的地形模型数据提取与快速显示方法", 《测绘学报》 * |
邱清 等: "一种基于动态组播树的可靠数据分发方法", 《计算机工程》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110378834A (zh) * | 2019-07-24 | 2019-10-25 | 重庆大学 | 一种基于异构并行架构的快速通视分析方法 |
CN110955525A (zh) * | 2019-12-05 | 2020-04-03 | 广东省新一代通信与网络创新研究院 | 一种基于fpga设备的网络定义存储方法、读取方法及系统 |
CN110955525B (zh) * | 2019-12-05 | 2022-12-20 | 广东省新一代通信与网络创新研究院 | 一种基于fpga设备的网络定义存储方法、读取方法及系统 |
CN111245664A (zh) * | 2020-03-23 | 2020-06-05 | 上海理工大学 | 面向大规模数据流处理的gpu边缘计算集群通信系统 |
CN111245664B (zh) * | 2020-03-23 | 2022-12-09 | 上海理工大学 | 面向大规模数据流处理的gpu边缘计算集群通信系统 |
CN115329250A (zh) * | 2022-10-13 | 2022-11-11 | 中国空气动力研究与发展中心计算空气动力研究所 | 基于dg处理数据的方法、装置、设备及可读存储介质 |
CN115329250B (zh) * | 2022-10-13 | 2023-03-10 | 中国空气动力研究与发展中心计算空气动力研究所 | 基于dg处理数据的方法、装置、设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106971369B (zh) | 2020-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109255828A (zh) | 用于光线跟踪的混合层级 | |
US20220076110A1 (en) | Efficient Neural Network Accelerator Dataflows | |
CN103765376B (zh) | 具有无阻塞并行架构的图形处理器 | |
CN106971369A (zh) | 一种基于gpu的地形可视域分析的数据调度与分发方法 | |
Che et al. | A characterization of the Rodinia benchmark suite with comparison to contemporary CMP workloads | |
CN103761215B (zh) | 基于图形处理器的矩阵转置优化方法 | |
US11106261B2 (en) | Optimal operating point estimator for hardware operating under a shared power/thermal constraint | |
CN104050706B (zh) | 用于低功率图形渲染的像素着色器旁路 | |
CN106940815A (zh) | 一种可编程卷积神经网络协处理器ip核 | |
CN101324962B (zh) | 一种预投影光线投射体绘制的并行处理方法 | |
CN104036537A (zh) | 多分辨率一致光栅化 | |
CN103439743B (zh) | 一种地震数据剖面图形绘制方法 | |
CN110515053B (zh) | 基于cpu和多gpu的异构平台sar回波仿真并行方法 | |
Mišić et al. | Evolution and trends in GPU computing | |
CN103309889A (zh) | 一种利用gpu协同计算实现实时数据并行压缩的方法 | |
CN112783554A (zh) | 用于程序间数据交换的持久便签内存 | |
Balevic et al. | Accelerating simulations of light scattering based on finite-difference time-domain method with general purpose GPUs | |
Ito et al. | A GPU implementation of dynamic programming for the optimal polygon triangulation | |
CN106484532B (zh) | 面向sph流体模拟的gpgpu并行计算方法 | |
Strnad | Parallel terrain visibility calculation on the graphics processing unit | |
CN116775518A (zh) | 用于高效访问多维数据结构和/或其他大型数据块的方法和装置 | |
Bednárek et al. | Improving matrix-based dynamic programming on massively parallel accelerators | |
CN109840306A (zh) | 一种基于递归的并行快速傅里叶变换通信优化方法和系统 | |
CN106598552A (zh) | 基于Gridding模块的数据点转换方法及装置 | |
CN109670001A (zh) | 基于cuda的多边形栅格化gpu并行计算方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |