# Pim compiler options See the [quick start](../../README.md#compile-a-model) for a complete command and the [documentation index](../README.md) for the compilation pipeline. Pass these to `onnx-mlir`; `--help` also lists inherited ONNX-MLIR options. Boolean switches default to off unless stated otherwise. | Option | Purpose / default | |---|---| | `--maccel=PIM` | Select the PIM accelerator. | | `--EmitSpatial`, `--EmitPim`, `--EmitPimBufferized`, `--EmitPimCodegen` | Stop at a pipeline stage; default: codegen. | | `--core-count=N`, `--crossbar-size=N`, `--crossbar-count=N` | Required hardware resources; crossbars are square. | | `--pipeline=N` | Throughput stages; default: 1 (latency scheduling). | | `--pim-target-config=PATH` | Target cost/topology configuration; resources must match hardware flags. Default: built-in model. | | `--pim-memory-report=summary\|none` | Memory report at `reports/memory_report.txt`; default: `summary`. | | `--pim-only-codegen` | Run the codegen tail on bufferized Pim IR. | | `--pim-emit-json` | Also emit per-core JSON instructions. | | `--pim-export-spatial-dataflow=none\|spatial1\|spatial2\|spatial3\|spatial4\|all` | Export graph, trivially merged, scheduled, and realized CSV snapshots under `reports/`; default: `none`. | | `--pim-conv-lowering=STRATEGY` | `auto` (default), `legacy`, `depthwise`, `packed-im2col`, `streamed-patch`, `streamed-packed`, `output-channel-tiled`, `input-k-tiled`, or `tiled-2d`. | | `--pim-conv-im2col-max-elements=N` | Global im2col limit before streaming; default: 1048576. | | `--pim-conv-stream-chunk-positions=N` | Output positions per streamed chunk; default: 1024. | | `--pim-report-conv-lowering=true\|false` | Bounded lowering report; default: true. | | `--pim-disable-spatial-planning` | Choose each plan's first dense alternative; ONNX rewrites and graph merging remain enabled. | | `--pim-disable-synchronization` | Omit wait/sync for ablation; removes correctness guarantees for buffer reuse and restart. | | `--pim-detect-communication-deadlock` | Check expanded blocking send/receive ordering. | | `--pim-verify-bufferization-copy-freedom` | Run the expensive pre-bufferization copy-freedom proof. |