Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
127174c
feat: Add conv2d production code (SPEC-012)
antmikinka May 29, 2026
2f35dac
ci: Add per-operator CI workflow (operator-ci.yml) for canonical branch
antmikinka May 29, 2026
4f6aecd
ci: fix YAML parse error in operator-ci.yml (python validation heredoc)
antmikinka May 29, 2026
34d5ee3
fix: AIE2P bf16 kernel + harness updates for real NPU runs
antmikinka May 29, 2026
7991f97
fix: L3 staging via .cons().forward() for ins/weights/bias (relieve t…
May 29, 2026
6a0326a
fix: implement get_arg_spec + get_callable on AIEConv2d (post-ABC ref…
May 29, 2026
9423dae
fix: defensive device query in conv2d op + mark forwards extensive (p…
May 29, 2026
f918703
fix: use input_chunk for fifodepth large-tile heuristic (design.py hy…
May 29, 2026
d98105e
fix: update conv2d set_up_artifacts to current PythonGeneratedMLIRArt…
May 29, 2026
e7e0e39
fix: reduce not-extensive preferred_col to 2 (workaround residual DMA…
May 29, 2026
0883284
fix: switch not-extensive matrix to nobias core configs (final minima…
May 29, 2026
fc262fa
fix(conv2d): active get_shim_dma_limit + per-ingress channel budgetin…
May 29, 2026
81e31e6
fix(conv2d): DMA-legal 1-col design with host-side bias
Jul 30, 2026
3411a63
feat(conv2d): Phase A OC tiling for L1 fit (1-col, groups=1)
Jul 30, 2026
9bf5c79
feat(conv2d): Phase A depthwise channel tiling for L1 fit
Jul 30, 2026
c7d51b0
test(conv2d): Phase A not-extensive multi-tile OC and depthwise coverage
Jul 30, 2026
a3ec50d
feat(conv2d): Phase B multi-col OC/channel split (2 DMA, host bias)
Jul 30, 2026
2fab796
feat(conv2d): export AIEConv2d from iron.operators (Phase C)
Jul 30, 2026
c520363
test(conv2d): Phase C not-extensive multi-col 2c CORE smoke
Jul 30, 2026
a932515
docs(conv2d): Phase C MODELING STATUS (export + 2c CI surface)
Jul 30, 2026
20066f1
feat(conv2d): Phase D.1 construct-time L1/column constraint hardening
Jul 30, 2026
a991fe0
fix(conv2d): float accum in standard conv kernel for groups=2 accuracy
Jul 30, 2026
330465e
fix(conv2d): modernize forward() for get_callable/XRTTensor path
Jul 30, 2026
c5bc25c
fix(conv2d): skip extensive L1-OOM configs via D.1 ConstraintError
Jul 30, 2026
d3980a2
feat(conv2d): Phase D.3 pointwise H-strip spatial L1 tiling
Aug 2, 2026
ebe40d7
feat(conv2d): Phase D.3 k>1 host-pad halo H-strip spatial L1 tiling
Aug 2, 2026
782c244
feat(conv2d): DMA-parity bottom/right pad for odd-OW k>1 H-strip
Aug 2, 2026
f71ca64
fix(conv2d): zero extensive skips via groups>1 H-strip and BD-safe to…
Aug 2, 2026
e17d2ba
fix(conv2d): BD u10 toh search for H-strip (eliminate extensive skips)
Aug 2, 2026
2ef7752
ci(conv2d): enforce operator-ci exit codes and fix lint for CI green
Aug 2, 2026
bd6acd2
ci: fix operator-ci.yml YAML indentation for types-runtime heredoc
Aug 2, 2026
862215b
chore: drop fork-only operator-ci and restore upstream ci scripts
Aug 2, 2026
1a7c063
fix(conv2d): align with pinned mlir-aie and review comment feedback
Aug 8, 2026
abc7224
feat(conv2d): P1 Ring-1 measurement harness (B1–B6, GFLOPS, median)
Aug 8, 2026
e9dc777
feat(conv2d): NPU2 Ring-1 baseline + AI/CPU metrics + depthwise float…
Aug 8, 2026
c976412
chore(conv2d): re-tag NPU2 baseline CSV to measurement commit
Aug 8, 2026
3e63c28
fix(conv2d): P2 dense kernels, safe k3 gather, measurement harness
Aug 8, 2026
c7683ca
chore(conv2d): NPU2 full remeasure baselines at 3e63c28
Aug 8, 2026
7b36295
fix(conv2d): use scalar path for k>1 OW loops (64x64 H-strip)
Aug 8, 2026
de1fd1f
chore(conv2d): NPU2 remeasure after k>1 scalar H-strip fix
Aug 8, 2026
2274a04
chore(conv2d): drop non-product roadmap, baselines, and bench harness
Aug 8, 2026
e35cb56
style(conv2d): apply code-commenting skill across operator and kernels
Aug 8, 2026
327bc37
style(conv2d): finish code-commenting pass on all PR files
Aug 8, 2026
ce18109
style(conv2d): black and clang-format for lint CI
Aug 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,6 @@ id_ed25519.pub
*.egg-info
**/*.prj/**
/outputs/

# Local agent tooling
.grok/
487 changes: 487 additions & 0 deletions aie_kernels/aie2/conv2d.cc

Large diffs are not rendered by default.

493 changes: 493 additions & 0 deletions aie_kernels/aie2p/conv2d.cc

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions iron/common/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

from .base import (
AIEOperatorBase,
AIEOperatorConstraintError,
MLIROperator,
CompositeOperator,
AIERuntimeArgSpec,
Expand All @@ -16,6 +17,8 @@
KernelArchiveArtifact,
SourceArtifact,
PythonGeneratedMLIRArtifact,
XclbinArtifact,
InstsBinArtifact,
DesignGenerator,
)
from .layout import Stride, TiledStride, TiledStridedLayout, tiled_2d
12 changes: 12 additions & 0 deletions iron/common/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -216,3 +216,15 @@ def __post_init__(self) -> None:
raise ValueError(
f"Invalid direction {self.direction!r}: must be one of 'in', 'out', 'inout'"
)


class AIEOperatorConstraintError(RuntimeError):
"""Raised by AIE operators when runtime inputs violate constructor-time constraints
(e.g., shape, dtype, channel count, or spatial dimensions that were baked into the
compiled kernel at operator construction time).

This allows clean separation between construction-time specialization and
runtime validation without using generic exceptions.
"""

pass
1 change: 1 addition & 0 deletions iron/operators/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from .elementwise_add.op import ElementwiseAdd
from .elementwise_mul.op import ElementwiseMul
from .conv2d.op import AIEConv2d
from .gemm.op import GEMM
from .gemv.op import GEMV
from .mha.op import MHA
Expand Down
Loading