Parallel IDW Algorithm Based on CUDA and Experimental Analysis
LIU Eryong,WANG Yunjia
DOI: https://doi.org/10.3724/sp.j.1047.2011.00709
2011-01-01
Geo-information Science
Abstract:In recent years,spatial data acquisition methods were significantly improved,such as LiDAR,which usually generated hundreds of millions of points.These amounts of datasets create great challenges to computation capacity of computers.In the past several years,the computing capacity of graphical processing unit(GPU) has improved significantly,too.General-purpose computing on GPUs has come into notice.GPUs are an aggregation of streaming processors.The amount of streaming processors in latest device exceeds 240.The peak floating-point operations per second of CPUs are ten times slower than that of GPUs now.A new software platform,called Computer Unified Device Architecture(CUDA),allows GPU programs to be developed in ANSI C.Parallel parts are worked on GPUs based on kernels,which are invoked by the CPU.Each kernel works on a grid of blocks,and each block is an array of threads.In the application process,each block is mapped to a multiprocessor,and each thread is mapped to a streaming processor.A typical CUDA program follows the flows as follow.First,the host function begins by locating one or more buffers in the GPU global memory and conveys the data to them.Then the CUDA program is started more times by appointing the number of threads per block.Finally,the results are transformed back to CPU memory.GPUs have been applied to solve many problems in signal processing,computational geometry and so forth.However,little has been used in spatial interpolation.CUDA Inverse-distance weighting(IDW) algorithm is the most frequently used model in spatial interpolation because it is relatively easy to compute.However,when dimensions increase,obtaining fast running time remains important.In this study,we explore the parallel algorithm for IDW,using the CUDA developed by NVIDIA.The main objective is to compare running times using CPUs versus GPUs under the same conditions.The numerical experiments show that processing speed of CUDA-based algorithm is 6 times faster than that of CPU-based method.