Multi-core-CPU and GPU-accelerated radiative transfer models based on the discrete ordinate method
The operational processing of remote sensing data usually requires high-performance radiative transfer model (RTM) simulations. To date, multi-core CPUs and also Graphical Processing Units (GPUs) have been used for highly intensive parallel computations. In this paper, we have compared multi-core and GPU implementations of an RTM based on the discrete ordinate solution method. To implement GPUs, the original CPU code has been redesigned using the C-oriented Compute Unified Device Architecture (CUDA) developed by NVIDIA. GPU memory management is a crucial issue regarding the performance. To cope with limitations of GPU registers, we have adapted an RTM based on the matrix operator technique together with the interaction principle for multilayer atmospheric systems. The speed-up of such an implementation depends on the number of discrete ordinates used in the RTM. To reduce the CPU/GPU communication overhead, we have exploited the asynchronous data transfer between host and device. To obtain optimal performance, we have also used overlapping of CPU and GPU computations by distributing the workload between them. With GPUs, we have achieved a 20x40x speed-up for the multi-stream RTM, and 50x speed-up for the two-stream RTM with respect to the original single-threaded CPU codes. Based on these performance tests, an optimal workload distribution scheme between GPU and CPU is proposed. Additionally, CPU/GPU benchmark tests regarding basic matrix operations are given. Finally, we discuss the performance obtained with the multi-core-CPU and GPU implementations of the RTM.
radiative transfer models discrete ordinate method cuda