Skip to main content

make-op

Add a new CV-CUDA operator end-to-end per .agents/guidance/MAKE_OP_GUIDELINES.md, with a deterministically-enforced definition-of-done. Use when asked to create/add a new operator, scaffold one, or verify that a new operator is complete (approved spec, wired scaffold, bit-exact regression tests across the declared support matrix, required layout parity, complement negatives, docs + relnote, benched dtypes, tests that run and pass, optimization-ready).

Datos de origen

Repositorio
CVCUDA/CV-CUDA
Última actividad en el origen
16 de septiembre de 2026 a las 16:43
Idioma detectado de SKILL.md
inglés
Estrellas
2727
Forks
264

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
make-op
description
Add a new CV-CUDA operator end-to-end per .agents/guidance/MAKE_OP_GUIDELINES.md, with a deterministically-enforced definition-of-done. Use when asked to create/add a new operator, scaffold one, or verify that a new operator is complete (approved spec, wired scaffold, bit-exact regression tests across the declared support matrix, required layout parity, complement negatives, docs + relnote, benched dtypes, tests that run and pass, optimization-ready).
[//]: # "SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved." [//]: # "SPDX-License-Identifier: Apache-2.0" # Make Op Thin entry point. The workflow + rules live in `.agents/guidance/MAKE_OP_GUIDELINES.md` and the narrative how-to in `docs/sphinx/advanced/make_operator.rst`; the definition-of-done is gated by the deterministic checker `tools/make_op.py`. Keep this skill thin; do not duplicate the guidelines. ## Workflow 1. **Spec & approval (Part 0)** — propose the operator's semantics + a **cited reference oracle** (e.g. mimic TorchVision/OpenCV, or an explicit formula) + API + the support matrix (dtype × channel × layout × container); **get user approval** (or an explicit oracle waiver for a novel custom op), then record the contract in `Op<Name>.h` (`@brief` + `Reference:` + Limitations matrix). 2. **Scaffold** — `tools/mkop/mkop.sh <Name>` → the wired skeleton; gate with `python3 tools/make_op.py <Name> --phase scaffold` (SCF-green). 3. **Implement** — kernel + an independent CPU gold reference + tests/bench per the `COV-*` rules: bit-exact for every declared variant, required equivalent-layout parity, complement negatives, and every declared dtype benched. Image operators support interleaved and planar layouts by default; record an operator-local reason when image layouts do not apply. The scaffold emits the always-on NVTX markers (C-API submit / priv `operator()` / Python `NvtxTrace`); keep them and add the op to the `OPERATORS` registry in `tests/cvcuda/python/test_nvtx_markers.py` (`NVTX-1`). 4. **Done gate** — `python3 tools/make_op.py <Name> --phase done --run`: composes `/review-op` (all domains) + `/optimize-op` preflight and adds COV/EXEC/DOC-REL. Must be green; loop on the verdict — for each `GAP` apply its named fix and re-run. **Inviolable:** never fabricate baselines (missing → `GAP [requires CI]` → CI regen); bit-exact is the default (an `EXPECT_NEAR` on an interleaved path is a GAP); layout-support gaps are author work. 5. **Calibrate + seed baselines** — calibrate each bench config to **1–2 ms nvbench GPU time** (per-dtype; measure with `bench_<op>` and adjust the batch), exercise with `bench/run_bench.py --operator <op> --lang both` (noise < 5% + C++/Python parity), then seed baselines from reference-SKU runs and import their artifacts with `bench/_internal/update_baseline.py --from <artifact-dir> --operator <op>`. This closes `BEN-7`/`RDY-1`; never fabricate baselines because absolute timings are SKU-specific. 6. **Hand off** to `/optimize-op <Name>` for the performance campaign. For a wired skeleton with the implementation delegated to a human/other AI, use `make-op-scaffold` (optionally `--bare`); `make-op-verify` is the done-gate. Findings-first.
Ver en GitHub