Verified tensor-program optimization via high-level scheduling rewrites

23Citations
Citations of this article
22Readers
Mendeley users who have this article in their library.

Abstract

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.

Cite

CITATION STYLE

APA

Liu, A., Bernstein, G. L., Chlipala, A., & Ragan-Kelley, J. (2022). Verified tensor-program optimization via high-level scheduling rewrites. Proceedings of the ACM on Programming Languages, 6(POPL). https://doi.org/10.1145/3498717

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free