Transforming raw synthetic aperture radar (SAR) data into images is a computation-intensive process. Because Sandia's SAR systems are deployed on manned aircraft and unmanned aerial vehicles (UAVs), designing and building hardware that can perform these computations in real time has proven difficult and expensive.
To process raw data, previous generations of Sandia SAR systems used multicomputers, both custom-designed and assembled from high-end commercial off-the-shelf (COTS) hardware. Recently, colleagues designed and built a custom board that performs computations using field programmable gate arrays (FPGAs). Due to their specialized nature, however, all these solutions have suffered from high hardware and non-recurring engineering (NRE) costs, together with a limited market choice for components.
In January 2007, we began investigating the possibility of using graphics processing units (GPUs) for raw SAR data. GPUs are specialized processors in graphics cards onto which the CPU can offload graphics calculations. Due to the gaming market's huge revenue stream, intense competition, and desire for maximum performance, GPU advances have greatly outstripped CPUs in recent years, moving away from graphics-specific to more general-purpose capabilities that permit expansion into other markets, such as scientific computing.1 A key enabler for our work was the NVIDIA Corporations's release of its CUDA environment for programming GPUs. Processing raw SAR data involves multiple stages of fast Fourier transforms (FFTs) and signal processing operations. It would have been unnecessarily cumbersome to cast these operations in terms of the graphics operations provided by DirectX or OpenGL. (Sumanaweera and Liu employed the FFT in OpenGL.2)
We have now implemented our two main SAR image formation algorithms on GPUs. These algorithms mapped easily onto CUDA's programming model of the GPU as a highly multithreaded single instruction multiple data (SIMD) co-processor.3 These algorithms readily broke down into kernels with hundreds to thousands of threads of execution that work well in the CUDA environment.4 Porting our algorithms was also accomplished quickly because the drivers for the GPU managed the threads for us. The productivity gain provided by GPUs and the CUDA environment is evidenced by the fact that porting two algorithms required a fraction of the NRE needed to implement the simpler of the two algorithms in FPGAs.
The results of our investigation were positive. With relatively little NRE, GPUs have enabled new real-time capabilities while simultaneously reducing hardware costs. Previously, it took seconds to process a single SAR image. We are now able to form several images per second on a single GPU. This rate enables a new capability we call VideoSAR. When seconds were required to form an image, our SAR imaging was analogous to still photography. VideoSAR in real time, analogous to motion pictures, was for some years only a dream.5 In addition, GPUs have reduced outlays for hardware. For a SAR system currently under development, the costs with GPUs are reduced by more than 80% as compared to a Pentium-based COTS multicomputer.
At present we face two main problems with GPUs in our SAR systems. First, they use significant amounts of power and therefore generate a great deal of heat. While these are not problems on pressurized manned aircraft, they present major challenges for small UAVs, which have limited payload power and must rely on conduction cooling. Secondly, maximum memory available on a GPU is currently much less than available for a conventional CPU. This restriction means that we cannot fit our largest problems into memory at one time and must therefore develop the capability of breaking the work into smaller pieces.
GPUs nevertheless enabled us to simultaneously achieve new levels of performance and significantly reduce hardware costs when implementing the first, real-time VideoSAR system. The resulting hardware cost a fraction of what it would have with PowerPC and Pentium-M based multicomputers.
Sandia is a multiprogram laboratory operated by Sandia Corporation, a Lockheed Martin Company, for the United States Department of Energy under contract DE-AC04-94AL85000.
Embedded Radar Processing
Sandia National Laboratories