Skip to content

Latest commit

 

History

826 Commits

Folders and files

NameName
Last commit message
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/

About

just-in-time compiler for the exo language

Topics

Resources

Stars

6 stars

Watchers

0 watching

Forks

Contributors

Languages