Hyperspectral Unmixing on GPUs and Multi-Core Processors: A Comparison
One of the main problems in the analysis of remotely sensed hyperspectral data cubes is the presence of mixed pixels, which arise when the spatial resolution of the sensor is not able to separate spectrally distinct materials. Due to this reason, spectral unmixing has become one of the most important tasks for hyperspectral data exploitation. However, unmixing algorithms can be computationally very expensive, a fact that compromises their use in applications under real-time constraints. For this purpose, in this paper we develop two efficient implementations of a full hyperspectral unmixing chain on two different kinds of high performance computing architectures: graphics processing units (GPUs) and multi-core processors. The proposed full unmixing chain is composed for three stages: (i) estimation of the number of pure spectral signatures or endmembers, (ii) automatic identification of the estimated endmembers, and (iii) estimation of the fractional abundance of each endmember in each pixel of the scene. The two computing platforms used in this work are inter-compared in the context of hyperspectral unmixing applications. The GPU implementation of the proposed methodology has been implemented using the compute devide unified architecture (CUDA) and the cuBLAS library, and tested on two different GPU architectures: NVidia™ GeForce GTX 580 and NVidia™ Tesla C1060. It provides real-time unmixing performance in two different analysis scenarios using hyperspectral data collected by NASA's Airborne Visible Infra-Red Imaging Spectrometer (AVIRIS) over the Cuprite mining district in Nevada and the World Trade Center complex in New York City. The multi-core implementation, developed using the applications program interface (API) OpenMP and the Intel Math Kernel Library (MKL) used for matrix multiplications, achieved near real-time performance in the same scenarios. A comparison of both architectures in terms of performance, cost and mission payload considerations is given based on the results obtained in the two considered data analysis scenarios.