Verified tensor-program optimization via high-level scheduling rewrites
Author(s)
Liu, Amanda; Bernstein, Gilbert Louis; Chlipala, Adam; Ragan-Kelley, Jonathan
DownloadPublished version (344.5Kb)
Publisher with Creative Commons License
Publisher with Creative Commons License
Creative Commons Attribution
Terms of use
Metadata
Show full item recordAbstract
<jats:p>We present a lightweight Coq framework for optimizing tensor kernels written in a pure, functional array language. Optimizations rely on user scheduling using series of verified, semantics-preserving rewrites. Unusually for compilation targeting imperative code with arrays and nested loops, all rewrites are source-to-source within a purely functional language. Our language comprises a set of core constructs for expressing high-level computation detail and a set of what we call reshape operators, which can be derived from core constructs but trigger low-level decisions about storage patterns and ordering. We demonstrate that not only is this system capable of deriving the optimizations of existing state-of-the-art languages like Halide and generating comparably performant code, it is also able to schedule a family of useful program transformations beyond what is reachable in Halide.</jats:p>
Date issued
2022Department
Massachusetts Institute of Technology. Computer Science and Artificial Intelligence LaboratoryJournal
Proceedings of the ACM on Programming Languages
Publisher
Association for Computing Machinery (ACM)
Citation
Liu, Amanda, Bernstein, Gilbert Louis, Chlipala, Adam and Ragan-Kelley, Jonathan. 2022. "Verified tensor-program optimization via high-level scheduling rewrites." Proceedings of the ACM on Programming Languages, 6 (POPL).
Version: Final published version