Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
⠀⠀⠑⢦⣄
⠀⠀⠀⠀⠙⢿⣦⣄
⠀⠀⠀⠀⠀⠀⠘⠻⣿⣦⣄⡀
⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣶⣄⡀⠀⢷⡄⠀⠀⣀⣀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⣶⣼⣿⣦⣾⣿⣿⣿
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠈⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣦⣄⠀⣤
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣦
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇⡀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡆
⠀⠀⠀⠀⠀⠀⠀⠀⠐⣿⣿⣿⣿⠿⠛⠉⠁⠀⠀⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠙⠻⠛⠁⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡷⠆
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡟
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣦⡄
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣇
A Just-In-Time compiler for the Exo language.
Exo's default backend emits C, requiring an offline
compile step. exojit lowers Exo IR through xDSL to
LLVM and compiles it at import time via llvmlite MCJIT.
$ uv run exojit example.py --mlir
$ uv run exojit example.py --c
$ uv run example.py
I also reimplemented microGPT with every kernel written
in Exo and benchmarked it against NumPy, PyTorch, JAX,
and karpathy's original scalar autograd.
name mean μs ±σ min max speedup
──────────────────────────────────────────────────
exojit 35 0 35 35 1902
numpy 176 133 140 3011 378
torch 185 25 165 391 360
jax 503 0 503 503 132
plain 7042 720 6670 18530 9
original 66601 20604 20522 179583 1
References:
- Exo: https://github.com/exo-lang/exo/commits/main/?author=sueszli
- xDSL: https://github.com/xdslproject/xdsl/commits/main/?author=sueszli
this project serves as a prototype for pyjit:
https://github.com/xdslproject/xdsl/tree/main/tests/filecheck/projects/pyjit
- llvmlite: https://github.com/numba/llvmlite
- microGPT: https://karpathy.github.io/2026/02/12/microgpt/