Archibald & Seibert - PIXIE: Blending Just-in-time and Ahead-of-time compilation | SciPy 2024

Learn about PIXIE, a groundbreaking compilation framework that combines JIT and AOT compilation in Python, optimizing scientific computing with minimal startup times.

Key takeaways
  • PIXIE is a new compilation framework that blends just-in-time (JIT) and ahead-of-time (AOT) compilation approaches for Python, focusing on scientific computing applications

  • Key components:

    • Storage convention for embedding metadata and multiple compiled function implementations
    • Runtime dispatch mechanism to select optimal implementation
    • Build-time tooling for creating specialized libraries
  • Main benefits:

    • Quick startup times of AOT compilation
    • Runtime optimization capabilities of JIT compilation
    • Hardware specialization without sacrificing JIT capabilities
    • No runtime dependencies for end users
  • Core features:

    • Can embed multiple CPU-specific implementations in a single .SO file
    • Automatic selection of optimal implementation at runtime
    • Support for C and Cython code (with more languages planned)
    • Preserves debugging information and optimization metadata
  • Current limitations/status:

    • Alpha stage software
    • Limited OS support (Linux x86, Mac ARM)
    • Some rough edges in tooling
    • Requires unreleased versions of Numba/LLVM
  • Future directions:

    • Cross-compilation support
    • GPU/accelerator support
    • Additional language wrappers (Fortran, Rust)
    • Integration with other tools like MLIR
    • Binary size optimization
    • Windows support
  • Designed to solve distribution problems where:

    • JIT compilation is not allowed
    • Startup latency must be minimized
    • Hardware-specific optimizations are needed
    • Multiple architecture targets must be supported