[发明专利]基于CUDA的格网数字高程模型邻域分析的系统和方法有效
申请号: | 201210344622.7 | 申请日: | 2012-09-17 |
公开(公告)号: | CN102880509A | 公开(公告)日: | 2013-01-16 |
发明(设计)人: | 高勇;郁浩;刘磊;李浩然 | 申请(专利权)人: | 北京大学 |
主分类号: | G06F9/46 | 分类号: | G06F9/46 |
代理公司: | 北京万象新悦知识产权代理事务所(普通合伙) 11360 | 代理人: | 苏爱华 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 cuda 数字 高程 模型 邻域 分析 系统 方法 | ||
技术领域
本发明属于高性能地理信息计算领域。具体涉及一种基于CUDA(Compute Unified Device Architecture,计算机统一架构体系)技术的格网DEM(Digital Elevation Model,数字高程模型)邻域分析的通用加速系统。
背景技术
在地理信息系统(GeographicalInformation System,GIS)领域,数字高程模型(Digital Elevation Model,DEM)常被用来描述区域地貌形态的空间分布。目前应用广泛的DEM模型分为两类:格网DEM和三角网DEM。格网DEM是给定范围内规则格网点的高程值模型。基于格网DEM的邻域分析(如,坡度、坡向分析、边缘检测、滤波变化等等),以其可以提取出很多基础性数据,而成为一类重要的空间分析。格网DEM邻域分析的特点是每个值的计算都需要通过邻域模板找到附近的格网点数值,再按照模板算子求得最终处理结果。因此这类分析面临两个问题:一是计算密集,对于每个结果值的计算都需要进行一个邻域模板的计算;二是数据量较大,工业生产的DEM数据常常达到GB量级。因此需要高性能的地理信息计算,来支撑邻域分析更广泛的应用。
基于GPU的通用计算(General Purpose GPU,GPGPU),一直是高性能计算的重要方向。其核心思想是在显卡芯片上,增加用于计算的晶体管数量,降低用于寄存器的晶体管数量,使得同样工艺、同样体积的芯片中,GPU的计算能力较CPU提高上百倍。Nvidia公司提出了CUDA(Compute Unified Device Architecture,计算机统一架构体系)技术,让开发者可以直接用标准C语言写出在GPU 芯片上运行的通用计算应用程序,而不需要熟悉GPU芯片的指令。但是CUDA技术也有缺陷:其计算模型不够通用。由于GPU芯片减少了大量用于缓存的寄存器数量,因此传统CPU中的缓存技术、流水线技术、指令乱序执行等优化技术无法复用。需要开发自己考虑如何从存储器件获取数据以及规则化指令执行的细节问题。因此将传统的基于CPU的程序移植到GPU芯片上,需要重新设计并编写代码,移植成本巨大。如何将传统的算法应用于CUDA环境是GPU高性能研究领域的需要解决的问题。
目前,已有很多研究将CUDA的高性能计算应用于GIS领域,尤其是DEM处理领域,如范国忠等研究过地杂波快速仿真[1],赵向辉等研究过汇流分析并行算法[2],刘二永等研究过基于CUDA和DEM的IDW并行算法分析[3],高勇等研究过基于通视分析[4]等。但是这些研究都只是将一个算子应用于CUDA优化,还没有研究给出一个更通用的方案。
发明内容
本发明提出了一种基于CUDA的格网DEM邻域分析的通用加速系统,目的是提供一个通用的加速系统和方法,既能利用GPU高性能地处理格网DEM邻域分析问题,又能复用CUDA加速格网DEM邻域分析过程中相同的部分,简化开发过程。
为了达到上述目的,本发明的技术方案如下:
一种基于CUDA的格网数字高程模型邻域分析的系统,包括:数据IO模块、函数调度模块、核函数模块、邻域分析算子,其特征是,
所述数据IO模块,独占一个线程,该线程称为IO线程,提供数据读写支持;
所述函数调度模块,负责协调数据的IO线程和CUDA核函数(CUDA中在GPU上执行的函数)的执行;该模块开辟出多个内存块用作缓冲区,同时启动多个线程,一个线程负责数据IO,即IO线程;其余线程称为worker线程,其个数与主机的GPU数量一致,每个worker线程对应一个GPU;这样的作用是让数据IO和CUDA函数执行并行执行,提高计算性能;
所述核函数模块,负责将数据从内存缓冲区中拷贝到GPU芯片的存储器上,调用CUDA核函数对数据进行计算,并在计算结束后将数据从GPU芯片的存储器拷贝到内存中;
所述邻域分析算子,被核函数模块调用,用以执行邻域分析中单个邻域模板的数据计算;所述邻域分析算子对外以函数接口提供,由系统使用者实现。
本发明同时提供一种基于CUDA的格网DEM邻域分析的方法,包括如下步骤:
1)实现邻域分析的函数,并将该函数指针传给CUDA核函数,进行注册;
2)启动一个IO线程,从输入文件读取原始DEM数据分块导入到内存缓冲区;当所有的缓冲区都写满数据时,进入阻塞状态,等待数据被worker线程处理;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210344622.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:无线IC卡智能读卡机
- 下一篇:一种部分解耦的平面三自由度并联精密定位平台