Parallel Viewshed Analysis on GPU Using CUDA
Viewshed analysis is a long established function of many geographical information systems to determine the visible cells of an input raster from one or more observers. It can be extended into large scale or higher resolution which requires the parallel implementation for time-tolerance. In this paper, we describe a GPU parallelization of viewshed analysis using CUDA. The implementation includes two layered components, matrix traversal and ray traversal, which can be implemented in parallel by CUDA or sequentially in iteration. Under the combined four scenarios, the experimental results show that parallel matrix traversal and sequential ray traversal (PMSR) achieves the best performance which is several orders of magnitude more efficient than the completely sequential version. This is because PMSR reaches a trade-off between the acceleration by multiple threads and their brought workloads on GPU.