Skip to main content
Log in

Correlation acceleration in GNSS software receivers using a CUDA-enabled GPU

  • Original Article
  • Published:
GPS Solutions Aims and scope Submit manuscript

Abstract

The correlation process in a GNSS receiver tracking module can be computationally prohibitive if it is executed on a central processing unit (CPU) using single-instruction single-data algorithms. An efficient replacement for a CPU is a graphics processing unit (GPU). A GPU is composed of massive parallel processors with high floating point performance and memory bandwidth. It can be used to accelerate the burdensome correlation process in GNSS software receivers. We propose a novel GPU-based correlator architecture for GNSS software receivers, which is independent of the GPU device, the number of the processing channels, the signal type, and the correlation time. The proposed architecture is implemented and optimized using CUDA, a parallel computing platform and programming model for GPUs. We focus on the following aspects: the design and the time complexity analysis of the proposed GPU-based correlator algorithm, the tests that verify the correctness and the optimization of the implementation, and the performance evaluation of the optimized GPU-based correlator. Moreover, we introduce some new CUDA features that can be applied in a GPU-based correlator.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14

Similar content being viewed by others

References

  • Buck I, Tim F, Daniel H, Jeremy S, Kayvon F, Mike H, Pat H (2004) Brook for GPUs: stream computing on graphics hardware. ACM Trans Graph (TOG) 23:777–786

    Article  Google Scholar 

  • Chen YH, Juang JC, Seo J, Lo S, Akos DM, De Lorenzo DS, Enge P (2012) Design and implementation of real-time software radio for anti-interference GPS/WAAS sensors. Sensors 10:13417–13440

    Article  Google Scholar 

  • Farber R (2011) CUDA application design and development. Elsevier, Amsterdam

    Google Scholar 

  • Harris M (2007) Optimizing parallel reduction in CUDA. Available on the Internet

  • Heckler GW, Garrison JL (2006) SIMD correlator library for GNSS software receivers. GPS Solut 10(4):269–276

    Article  Google Scholar 

  • Hobiger T, Tadahiro G, Jun A, Yasuhiro K, Tetsuro K (2010) A GPU based real-time GPS software receiver. GPS Solut 14(2):207–216

    Article  Google Scholar 

  • Huang B, Yao Z, Guo F, Deng S, Cui X, Lu M (2013) STARx—a GPU based multi-system full-band real-time GNSS software receiver. ION GNSS+ 2013, Institute of Navigation, Nashville, Tennessee, September, pp 1549–1559

  • Karimi K, Pamir AG, Afzal MH (2013) Accelerating a cloud-based software GNSS receiver. arXiv preprint arXiv:1309.0052

  • Nvidia (2014) CUDA C best practices guide. Available on the Internet

  • Pany T, Gohler E, Irsigler M, Winkel J (2010) On the state-of-the-art of real-time GNSS signal acquisition—a comparison of time and frequency domain methods. Indoor positioning and indoor navigation (IPIN), 2010 international conference, pp 1–8

  • Pany T, Riedl B, Winkel J (2010) Efficient GNSS signal acquisition with massive parallel algorithms using GPUs. In: Proceedings of ION NTM 2010, San Diego, CA, pp 1889–1895

  • Park KW, Yang JS, Park C, Lee MJ (2014) Implementation of GPGPU based real-time signal acquisition and tacking module for multi-constellation GNSS software receiver. In: Proceedings of ION GNSS+ 2014, Institute of Navigation, Tampa, FL, September, pp 1410–1416

  • Roule P, Jakubov O et al (2013) GNSS signal processing in GPU. Artif Satell 48(2):51–61

    Google Scholar 

  • Seo J, Chen YH, De Lorenzo DS, Lo S, Enge P, Akos D, Lee J (2011) A real-time capable software-defined receiver using GPU for adaptive anti-jam GPS Sensors. Sensors 9:8966–8991

    Article  Google Scholar 

  • Suzuki T, Kubo N (2014) GNSS-SDRLIB: An open-source and real-time GNSS software defined radio library. In: Proceedings of ION GNSS+ 2014, Institute of Navigation, Tampa, FL, September, pp 1364–1375

  • Tanenbaum AS, Austin T, Chandavarkar BR (2013) Structured computer organization. Pearson, London

    Google Scholar 

  • Whitehead N, Fit-Florea A (2011) Precision and performance: Floating point and IEEE 754 compliance for NVIDIA GPUs. Available on the Internet

  • Wilt N (2013) The CUDA handbook: a comprehensive guide to GPU programming. Pearson, London

    Google Scholar 

Download references

Acknowledgments

This work was supported by the National Natural Science Foundation of China (41174028, 61273053, 41404029), China Postdoctoral Science Foundation funded project (2013M542061, 2014T70738), and National Natural Science Foundation of Hubei province (2014CFB727).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Wenfei Guo.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Xu, L., Ziedan, N.I., Niu, X. et al. Correlation acceleration in GNSS software receivers using a CUDA-enabled GPU. GPS Solut 21, 225–236 (2017). https://doi.org/10.1007/s10291-016-0516-2

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10291-016-0516-2

Keywords

Navigation