Skip to content

Getting Started

This page is the fastest path for first-time Merlin usage:

  1. Create/activate environment.
  2. Build host compiler tools.
  3. Compile one model.
  4. Build one sample/runtime binary.
  5. Locate generated outputs.

1) Environment

conda env create -f env_linux.yml
conda activate merlin-dev
uv sync
pre-commit install

Optional convenience alias for your shell session:

alias merlin='uv run tools/merlin.py'

2) Build host compiler tools

conda activate merlin-dev
uv run tools/merlin.py build --profile vanilla

Expected tool locations:

  • build/host-vanilla-release/install/bin/
  • build/host-merlin-release/install/bin/ (when built with --with-plugin)

3) Compile one model

conda activate merlin-dev
uv run tools/merlin.py compile models/dronet/dronet.mlir --target spacemit_x60

Expected output:

  • build/compiled_models/dronet/spacemit_x60_RVV_dronet/dronet.vmfb

4) Build one sample binary

conda activate merlin-dev
uv run tools/merlin.py build --profile spacemit --cmake-target merlin_baseline_dual_model_async_run
find build/spacemit-merlin-release -name baseline-dual-model-async-run

Typical binary path:

  • build/spacemit-merlin-release/runtime/plugins/merlin-samples/SpacemiTX60/baseline_dual_model_async/baseline-dual-model-async-run

5) Where outputs go

  • Host tools: build/host-*/install/bin/
  • Cross builds: build/spacemit-*, build/firesim-*
  • Compiled models/artifacts: build/compiled_models/<model>/...
  • Local rendered docs: site/

Next

  • Practical extension guides (dialects/HAL/samples/targets): how_to/index.md
  • Repository layout and placement conventions: repository_guide.md
  • Active implementation notes and debugging logs: dev_blog/index.md
  • Full command and API reference: reference/
  • Setup details and prerequisites: iree_setup.md