Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to main content

Verification of Vectorization of Signal Transforms

  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 2020)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 13149))

  • 419 Accesses

Abstract

This paper proves properties of the vectorized code generated by the SPIRAL system for implementing, optimizing, and tuning fast signal transforms. In particular, it is shown that the generated code is correct and fully vectorized. The SPIRAL system uses multiple rewrite systems with varying levels of abstraction to generate, optimize, parallelize and implement code. The proofs proceed by showing that the rules preserve semantics and lead to code with guaranteed performance and correctness properties. Unlike more general approaches, much of the work is done at a higher level incorporating the underlying mathematics. This shifts much of the verification from proving equivalence of programs to proving equivalence of mathematical expressions. Furthermore, the proofs incorporate domain specific knowledge leading to stronger guarantees than could be obtained for a more general vectorizing compiler.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Similar content being viewed by others

References

  1. Allen, R., Kennedy, K.: Optimizing Compilers for Modern Architectures: A Dependence-based Approach. Morgan Kaufmann Publishers, San Francisco (2002)

    Google Scholar 

  2. Almeida, J.B., et al.: The last mile: high-assurance and high-speed cryptographic implementations. In: 2020 IEEE Symposium on Security and Privacy (SP), pp. 965–982 (2020)

    Google Scholar 

  3. Barthe, G., Crespo, J.M., Gulwani, S., Kunz, C., Marron, M.: From relational verification to simd loop synthesis. In: Proceedings of the 18th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 123–134. PPoPP 2013, Association for Computing Machinery, New York, NY, USA (2013). https://doi.org/10.1145/2442516.2442529

  4. Barthe, G., Grégoire, B., Heraud, S., Béguelin, S.Z.: Computer-aided security proofs for the working cryptographer. In: Rogaway, P. (ed.) CRYPTO 2011. LNCS, vol. 6841, pp. 71–90. Springer, Heidelberg (2011). https://doi.org/10.1007/978-3-642-22792-9_5

    Chapter  Google Scholar 

  5. Bonelli, A., Franchetti, F., Lorenz, J., Püschel, M., Ueberhuber, C.W.: Automatic performance optimization of the discrete fourier transform on distributed memory computers. In: Guo, M., Yang, L.T., Di Martino, B., Zima, H.P., Dongarra, J., Tang, F. (eds.) ISPA 2006. LNCS, vol. 4330, pp. 818–832. Springer, Heidelberg (2006). https://doi.org/10.1007/11946441_74

    Chapter  Google Scholar 

  6. Brinich, P.: Formal Verification of SPIRAL Generated Code. Master’s thesis, Drexel University (2020)

    Google Scholar 

  7. Cadar, C., Dunbar, D., Engler, D.: Klee: unassisted and automatic generation of high-coverage tests for complex systems programs. In: Proceedings of the 8th USENIX Conference on Operating Systems Design and Implementation, pp. 209–224. OSDI 2008, USENIX Association, USA (2008)

    Google Scholar 

  8. Collingbourne, P., Cadar, C., Kelly, P.H.: Symbolic crosschecking of floating-point and simd code. In: Proceedings of the Sixth Conference on Computer Systems, pp. 315–328. EuroSys 2011, Association for Computing Machinery, New York, NY, USA (2011). https://doi.org/10.1145/1966445.1966475

  9. Dutta, S.: Validation of parallelizing transformations of sequential programs. Concurr. Comput. Pract. Exp. 29(8), e3958 (2017). https://doi.org/10.1002/cpe.3958, https://onlinelibrary.wiley.com/doi/abs/10.1002/cpe.3958, e3958 cpe.3958

  10. Felleisen, M., Hieb, R.: The revised report on the syntactic theories of sequential control and state. Theor. Comput. Sci. 103(2), 235–271 (1992). https://doi.org/10.1016/0304-3975(92)90014-7

    Article  MathSciNet  MATH  Google Scholar 

  11. Franchetti, F., et al.: High-assurance SPIRAL: end-to-end guarantees for robot and car control. IEEE Control Syst. Mag. 37(2), 82–103 (2017)

    Article  Google Scholar 

  12. Franchetti, F., et al.: SPIRAL: extreme performance portability. Proc. IEEE 106(11), 1935–1968 (2018)

    Article  Google Scholar 

  13. Franchetti, F., de Mesmay, F., McFarlin, D., Püschel, M.: Operator language: a program generation framework for fast kernels. In: Taha, W.M. (ed.) DSL 2009. LNCS, vol. 5658, pp. 385–409. Springer, Heidelberg (2009). https://doi.org/10.1007/978-3-642-03034-5_18

    Chapter  Google Scholar 

  14. Franchetti, F., Voronenko, Y., Püschel, M.: A rewriting system for the vectorization of signal transforms. In: Daydé, M., Palma, J.M.L.M., Coutinho, Á.L.G.A., Pacitti, E., Lopes, J.C. (eds.) VECPAR 2006. LNCS, vol. 4395, pp. 363–377. Springer, Heidelberg (2007). https://doi.org/10.1007/978-3-540-71351-7_28

    Chapter  MATH  Google Scholar 

  15. Franchetti, F., Voronenko, Y., Püschel, M.: FFT program generation for shared memory: SMP and multicore (January 2006). https://doi.org/10.1145/1188455.1188575

  16. Hoare, C.A.R.: An axiomatic basis for computer programming. Commun. ACM 12(10), 576–580 (1969). https://doi.org/10.1145/363235.363259

  17. Leroy, X.: Formal verification of a realistic compiler. Commun. ACM 52(7), 107–115 (2009). https://doi.org/10.1145/1538788.1538814

  18. Püschel, M., et al.: SPIRAL: code generation for dsp transforms. Proc. IEEE 93(2), 232–275 (2005)

    Article  Google Scholar 

  19. The Coq Development Team: The Coq Reference Manual, version 8.9.1 (2019). available electronically at https://coq.inria.fr/distrib/V8.9.1/refman/

  20. Wolfe, M., Wolfe, M.: High Performance Compilers for Parallel Computing. Addison-Wesley, Boston (1996)

    Google Scholar 

  21. Xiong, J., Johnson, J., Johnson, R., Padua, D.: SPL: a language and compiler for DSP algorithms. In: Proceedings of the ACM SIGPLAN 2001 Conference on Programming Language Design and Implementation (PLDI 2001), pp. 298–308. Snowbird, Utah (June 2001). https://doi.org/10.1145/378795.378860

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Patrick Brinich .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2022 Springer Nature Switzerland AG

About this paper

Check for updates. Verify currency and authenticity via CrossMark

Cite this paper

Brinich, P., Johnson, J. (2022). Verification of Vectorization of Signal Transforms. In: Chapman, B., Moreira, J. (eds) Languages and Compilers for Parallel Computing. LCPC 2020. Lecture Notes in Computer Science(), vol 13149. Springer, Cham. https://doi.org/10.1007/978-3-030-95953-1_15

Download citation

  • DOI: https://doi.org/10.1007/978-3-030-95953-1_15

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-030-95952-4

  • Online ISBN: 978-3-030-95953-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics