This directory contains several examples, along with documentation and code. If you are new to Exo, we recommend going through the examples in the following order:
-
AVX2 Matmul: This example demonstrates how to take a simple matrix multiplication kernel and transform it into an implementation that can make use of AVX2 instructions. It provides an overview of Exo and its scheduling system.
-
Cursor: This example shows how to use Cursors to efficiently write schedules and define a new scheduling operator.
-
RVM: This example illustrates how to use Exo to define and target a new hardware accelerator entirely in the user code.
-
Quizzes (quiz1, quiz2, quiz3) contain common scheduling mistakes in Exo and solutions to fix them. The best way to learn a programming language is by debugging code.