Skip to Main Content
The ray-tracing of signals emitted by the Global Navigation Satellite Systems (GNSS) is implemented on Graphics Processing Units (GPU) by two parallel programming techniques: the “Compute Unified Device Architecture” (CUDA) C-language and the directives for “Hybrid Multicore Parallel Programming” (HMPP) developed by CAPS Entreprise. The signal propagation is obtained by the numerical integration of the differential system derived from the eikonal equation by the Runge-Kutta method. The computation of atmospheric delays on GPU has to preserve the millimeter accuracy using the double precision arithmetic. Four versions describe how the ray-tracing of 8,100 rays was optimized for the Fermi architecture. As referring to a single-core single-threaded CPU version, accelerations ranging from 20 to 50 times are progressively obtained when the software enhancements gradually harness the hardware capabilities. The versions HMPP and CUDA provide exactly the same accelerations. HMPP further provides an easy implementation for multiple kind of GPU cards. A speed-up of 75 times versus the CPU version is finally reached when the ray-tracing algorithm is applied to 130,000 rays.