IRON Lab WorldTreeNetwork

Layout

Operators

One directory per operator, matching amd/IRON. C++ in aie_kernels/aie2p. Shared compile helper.

Layout matches amd/IRON:

operators/<name>/
  op.py          # NAME, TARGET, GEOMETRY (smoke | parakeet), sizes
  design.py      # IRON ObjectFifos + Worker + compile/run
  reference.py   # CPU ground truth
  test.py        # CPU self-check; NPU vs reference (npu_required)
aie_kernels/aie2p/<name>.cc
common/compile.py

ironlab init <name> scaffolds the Python files.

Inventory

Operator GEOMETRY Notes
dwconv_1d parakeet C=1024, K=9 Bit-exact vs NumPy at T=32 and T=375
layernorm parakeet C=1024 gamma||beta packed (tile has 2 in / 2 out DMA)
activations parakeet C=1024 SiLU / GeLU; no Peano expf/tanhf — Taylor/aie_*
gemm smoke 64×64×64
pointwise_conv smoke C=64 Full C=1024 needs multi-pass tiling
softmax smoke D=64

Compile

Every design.py calls common.compile.compile_external_and_module (Peano + aiecc). CI walks operators/*/design.py --no-run.

Do not use uv run. Use just run operators/<name>/design.py.

NPU tests: pytest.mark.npu_required. Skip with just test --no-npu.

Krackan / NPU6 first ironlab MIT OR Apache-2.0