Skip to content

Repository files navigation

ondrix

ondrix - DSL for embedded DSP kernels

ondrix is a language and compiler framework for portable embedded DSP kernels. It separates algorithm intent, target-independent numeric semantics, and target capabilities in a layered MLIR stack, with AOT code generation as the primary execution model.

The intended compilation flow is:

ondrix language
  -> ondrix dialect
  -> ondsp dialect
  -> generic scalar, generic Vector, or ortumcore path
  -> LLVM dialect / LLVM IR
  -> object file or firmware integration

The three project dialects have distinct responsibilities:

  • ondrix preserves DSP algorithm and kernel intent.
  • ondsp defines target-independent numeric and accumulator semantics.
  • ortumcore represents abstract target capabilities without exposing private instruction encodings or physical registers.

Textual MLIR remains the complete development and debugging entry point. An experimental .ox frontend, executable Q15/Q31 scalar and Vector paths, DSP algorithm contracts, and bounded OrtumCore capability validation are under active development.

Documentation

See the documentation index for language usage, numeric semantics, implementation status, and experimental feature notes.

Build

ondrix tracks LLVM/MLIR 17.0.6 at commit 6009708b4367171ccdbf4b5905cb6a803753fe18. This is the tested baseline. Other LLVM 17 revisions are accepted with a configuration warning for migration experiments; other major versions are rejected.

Configure against an external LLVM/MLIR build:

cmake -G Ninja \
  -S /path/to/ondrix \
  -B /path/to/ondrix/build \
  -DMLIR_DIR=/path/to/llvm-project/build/lib/cmake/mlir \
  -DLLVM_DIR=/path/to/llvm-project/build/lib/cmake/llvm \
  -DLLVM_EXTERNAL_LIT=/path/to/llvm-project/build/bin/llvm-lit

Build and run the regression suite:

ninja -C /path/to/ondrix/build ondrix-opt
ninja -C /path/to/ondrix/build check-ondrix

License

Licensed under the Apache License 2.0.

About

Domain-specific language and compiler for high-performance DSP kernels

Resources

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages