This article describes Exo 2, a new programming language developed at MIT’s CSAIL, that aims to simplify and accelerate the creation of high-performance computing libraries. Unlike traditional compilers that automatically generate code, Exo 2 allows programmers to write “schedules” that explicitly control code generation, leading to significant performance improvements. Key features of Exo 2 include:
- User-Schedulable Language (USL): Empowers programmers to optimize code through explicit scheduling.
- Reusable Scheduling Libraries: Enables the creation of libraries that encapsulate optimization techniques, reducing code duplication and development time.
- Cursors: A novel mechanism that provides stable references to object code, facilitating the creation of reusable scheduling functions.
- Performance Competitiveness: Demonstrates performance comparable to or better than state-of-the-art libraries like MKL and OpenBLAS, with significantly less code.
Essentially, Exo 2 offers a more efficient and flexible approach to developing high-performance computing libraries, potentially democratizing access to optimized code and reducing the coding effort required.