| name | areno-develop-kernel |
| description | Develop, optimize, debug, and validate an AReno CUDA, Triton, fused, attention, convolution, routing, or MoE operator. Use when changes touch areno/accel or a runtime kernel boundary and require forward, backward, dtype, layout, CUDA graph, or benchmark validation. |
Develop an AReno Kernel
Define the mathematical reference, shapes, dtype, layout, supported devices, and backward contract before implementation.
Develop and commit on a local branch. A remote GPU checkout is validation-only:
pull the committed branch there, and never edit or copy source files into it.
Generic harnesses
Both callables must accept one tensor and return one tensor:
python .agents/skills/areno-develop-kernel/scripts/check_operator.py \
--reference package.module:reference --candidate package.module:candidate \
--shape 8,16 --dtype float32 --device cuda
python .agents/skills/areno-develop-kernel/scripts/benchmark_operator.py \
--callable package.module:candidate --shape 8,16 --dtype float16 --device cuda
For multi-input or stateful kernels, extend a focused test under tests/ rather than weakening this harness.
Workflow
- Locate Python wrapper, extension registration, C++/CUDA source, engine layer, and model call site.
- Add a small PyTorch reference and shape/dtype assertions.
- Implement forward and backward before using it in training.
- Test representative shapes, boundary shapes, supported non-contiguous layouts, finite output, and gradients.
- Validate TP/sequence-parallel local shapes and CUDA graph capture/replay.
- After pulling a branch that changes
areno/accel, rebuild remotely with pip install -e . --no-deps --no-build-isolation. Do not reinstall for Python-only changes.
- Benchmark only after correctness. Read references/kernel-checklist.md.
Do not add a silent production fallback for a required kernel. Report unsupported cases explicitly.