reference-and-backend-tests
Guides ONNX ReferenceEvaluator usage, reference-op behavior, backend test corpus, and bounded backend-data generation.
- License 许可
- Apache-2.0
- 最近更新
- 2026-09-03
- Stars
- ★ 351
- Forks
- 27
01 前言 Front Matter
- name
- reference-and-backend-tests
- license
- Apache 2.0
- metadata
- { "disco-role": "operating" }
- description
- Guides ONNX ReferenceEvaluator usage, reference-op behavior, backend test corpus, and bounded backend-data generation.
- disable-model-invocation
- true
02 资源文件 5
- 参考文档references/backend-test-workflows.md1.6 KB
- 参考文档references/reference-evaluator.md1.3 KB
- 参考文档references/troubleshooting.md1.5 KB
- 脚本scripts/generate_backend_test_subset.py2.8 KB
- 脚本scripts/reference_eval_smoke.py1.9 KB
03 SKILL.md 正文
ONNX Reference and Backend Tests
Use this sub-skill when a task needs to execute ONNX with the pure-Python ReferenceEvaluator, compare outputs against expected NumPy values, inspect reference operator behavior, work with the backend test corpus, or generate small backend-test data sets.
Workflow
- Use
ReferenceEvaluatorwhen you need a local execution baseline that follows ONNX semantics rather than a framework runtime. - If the model already exists, load it and run a tiny, deterministic input dictionary first.
- For backend-test corpus work, distinguish between safe local node/model cases and real model downloads. Prefer small, source-defined cases for smoke tests.
- Keep optional dependencies optional: install
onnx[reference]only when image-decoder/reference workflows need Pillow. - When a result differs from a backend/runtime, treat the ONNX spec and reference operator as the source of truth.
- Use the bounded helper script to create a small backend-test data directory or to smoke-check a tiny model.
Route to References and Helpers
- Read
references/reference-evaluator.mdforReferenceEvaluatorand debugging details. - Read
references/backend-test-workflows.mdfor backend-interface concepts and test-data generation patterns. - Read
references/troubleshooting.mdbefore retrying a missing-op, optional-dependency, or download-based backend issue. - Run
scripts/reference_eval_smoke.py --helpto see the safe tiny-model smoke options. - Run
scripts/generate_backend_test_subset.py --helpto see the bounded backend-data generator options.
Scope Boundaries
- Use
model-authoringfor creating or saving models and fixtures. - Use
validation-and-conversionfor checker, parser/printer, shape inference, and opset conversion. - Use
operator-spec-maintenancewhen the task changes the reference operator implementations or backend node tests themselves.
04 同仓库更多 Skills
passnet-triton-opt
Make a single PassNet Triton kernel fast AND numerically faithful: performance model (when a replacement can win at all), block/grid/warp tuning, autotune policy, launch overhead, and per-op numeric recipes to pass the dtype baseline tolerances. Use when a pass matches and is correct but speedup below expected, or when correctness fails by small numeric margins.
passnet-solve
END-TO-END playbook for solving one PassNet sample: analyze the computation graphs, decide the optimization strategy (what to fuse, what to replace, what to leave alone), drive the iteration loop, and maximize the sample score. This is the ENTRY skill — invoke it first for any PassNet optimization task; it tells you when to use passnet-pattern-fusion, passnet-triton-opt and passnet-feedback.
passnet-skill
PassNet GPU kernel optimization via compiler passes. Design and implement Triton-based optimization passes, create pass files under ./pass_dir/, self-evaluate with pass_evaluator, and iterate to maximize GPU speedup.
passnet-pattern-fusion
Author PassNet pass files: write patterns that actually MATCH the FX graph, pick fusion regions (which ops to absorb into one Triton kernel), and structure multi-pass submissions with the mandatory shared-dispatch architecture. Use when creating or fixing pattern()/replacement_args()/replacement_func() files, when a pass "failed to match", or when deciding how to fuse multiple kernels/ops.
passnet-orchestrate
Round/batch planning and decision support for PassNet graph optimization. Use for multi-sample triage, worker allocation, eval-budget policy, and post-eval keep/revert decisions. For solving one concrete sample end to end, use passnet-solve as the entry skill; consult this skill only when you need broader planning or a specific decision gate.
passnet-feedback
Fast, deterministic feedback for PassNet work: pre-flight pattern/match verification WITHOUT burning a GPU evaluation, per-node bottleneck analysis of a sample's graphs, and eval-log parsing into per-variant status + estimated score + failure classification. Use BEFORE every GPU evaluation (check_pattern), at the START of a sample (analyze_graph), and AFTER every evaluation (parse_eval_log).