cann-workbench 0.0.0-stage → 0.0.2-alpha
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +183 -2
- package/THIRD_PARTY_NOTICES.md +85 -0
- package/cordis.patch.yml +3 -0
- package/doctor/LICENSE +202 -0
- package/doctor/NOTICE +12 -0
- package/doctor/README.md +18 -0
- package/lib/client.js +94437 -0
- package/lib/index.d.ts +722 -0
- package/lib/index.js +33711 -0
- package/locale/en.json +6 -0
- package/locale/zh.json +6 -0
- package/package.json +171 -4
- package/skills/asc-tools/tool-ops-tune/INSTALL.md +52 -0
- package/skills/asc-tools/tool-ops-tune/LICENSE +38 -0
- package/skills/asc-tools/tool-ops-tune/README.md +167 -0
- package/skills/asc-tools/tool-ops-tune/SKILL.md +93 -0
- package/skills/asc-tools/tool-ops-tune/agent/AGENTS.md +195 -0
- package/skills/asc-tools/tool-ops-tune/agent/agents/perf-implementer.md +68 -0
- package/skills/asc-tools/tool-ops-tune/agent/agents/perf-reviewer.md +86 -0
- package/skills/asc-tools/tool-ops-tune/agent/workflows/task-prompts.md +362 -0
- package/skills/asc-tools/tool-ops-tune/agent/workflows/troubleshooting.md +43 -0
- package/skills/asc-tools/tool-ops-tune/docs/figures/opstune-architecture.png +0 -0
- package/skills/asc-tools/tool-ops-tune/docs/figures/opstune-architecture.svg +253 -0
- package/skills/asc-tools/tool-ops-tune/docs/ops-tune-design.md +404 -0
- package/skills/asc-tools/tool-ops-tune/docs//347/224/250/344/276/213/346/236/204/345/273/272.md +730 -0
- package/skills/asc-tools/tool-ops-tune/docs//347/237/245/350/257/206/345/272/223/350/247/204/350/214/203.md +103 -0
- package/skills/asc-tools/tool-ops-tune/evals/evals.json +242 -0
- package/skills/asc-tools/tool-ops-tune/ops-collect/SKILL.md +146 -0
- package/skills/asc-tools/tool-ops-tune/ops-collect/references/tool-routing.md +86 -0
- package/skills/asc-tools/tool-ops-tune/ops-collect/scripts/collect_board.sh +458 -0
- package/skills/asc-tools/tool-ops-tune/ops-collect/scripts/collect_cases.py +368 -0
- package/skills/asc-tools/tool-ops-tune/ops-collect/scripts/collect_sim.sh +134 -0
- package/skills/asc-tools/tool-ops-tune/ops-collect/scripts/csv_to_db.py +314 -0
- package/skills/asc-tools/tool-ops-tune/ops-collect/scripts/db_bench.py +545 -0
- package/skills/asc-tools/tool-ops-tune/ops-collect/scripts/facts_bridge.py +1102 -0
- package/skills/asc-tools/tool-ops-tune/ops-collect/scripts/isolation_test.py +452 -0
- package/skills/asc-tools/tool-ops-tune/ops-collect/scripts/jsonl_to_cases.py +163 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/SKILL.md +76 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/broadcast/advanced_tiling.md +92 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/broadcast/broadcast_design.md +160 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/broadcast/code/broadcast_add_kernel.cpp +126 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/broadcast/code/broadcast_add_tiling.cpp +144 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/broadcast/code/broadcast_tiling_common.h +401 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/broadcast/code/onedim_add_kernel.cpp +107 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/broadcast/code/onedim_add_tiling.cpp +64 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/broadcast/datacopypad_design.md +46 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/broadcast/guide.md +14 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/broadcast/nddma_design.md +53 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/broadcast/onedim_design.md +114 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/broadcast/ub_broadcast_design.md +67 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/common/datacopy_optimization_design.md +351 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/common/index.md +9 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/common/tail_block_design.md +268 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/common/timing_harness/index.md +38 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/common/timing_harness/timing_harness_aclrt_event.cpp +199 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/common/timing_harness/timing_harness_torch_event.py +130 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/common/ub_resident_design.md +342 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/guide.md +69 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/index.md +4 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/templates/dav3510/transpose_base.template +81 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/templates/dav3510/transpose_big_dim.template +217 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/templates/dav3510/transpose_cut_one_axis.template +336 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/templates/dav3510/transpose_cut_two_axis.template +781 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/templates/dav3510/transpose_n_last.template +340 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/templates/dav3510/transpose_small_shape.template +321 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/templates/dav3510/transpose_tensor_move.template +102 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/templates/dav3510/transpose_transdata_5hd.template +480 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/templates/dav3510/transpose_transdata_5hd_021axis.template +533 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/templates/dav3510/transpose_with_gather.template +688 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/templates/transpose_tiling_data.template +192 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/transpose_big_dim.md +220 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/transpose_cut_one_axis.md +175 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/transpose_cut_two_axis.md +177 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/transpose_fusion_design.md +398 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/transpose_gather.md +191 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/transpose_n_last.md +276 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/transpose_small_shape.md +315 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/transpose_tensor_move.md +203 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/transpose_tiling_data.md +176 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/transpose_vconv_021.md +206 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/conversion/transpose_vconv_5hd.md +179 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/double_buffer_design.md +288 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/guide.md +46 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/index.md +10 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/templates/add_custom/CMakeLists.txt +131 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/templates/add_custom/README.md +55 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/templates/add_custom/op_extension/add_custom_torch.cpp +80 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/templates/add_custom/op_extension/ops.h +23 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/templates/add_custom/op_extension/register.cpp +30 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/templates/add_custom/op_host/add_custom.asc +149 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/templates/add_custom/op_host/data_utils.h +97 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/templates/add_custom/op_kernel/add_custom_kernel.asc +136 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/templates/add_custom/op_kernel/add_custom_tiling.h +31 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/templates/add_custom/run.sh +87 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/templates/add_custom/scripts/gen_data.py +70 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/templates/add_custom/scripts/golden.py +34 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/templates/add_custom/scripts/test_torch.py +99 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/templates/add_custom/scripts/verify_result.py +56 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/templates/usage_guide.md +61 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/elementwise/vector_efficiency_design.md +203 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/fa/fa_mixed_kernel_design.md +174 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/fa/fa_roofline_design.md +141 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/fa/guide.md +87 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/knowledge_gaps.json +56 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/matmul/best-practices-guide.md +14 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/matmul/fullload_design.md +344 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/matmul/guide.md +52 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/matmul/mte2_preload_design.md +320 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/matmul/pingpong_design.md +254 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/matmul/scale_coalescing_design.md +282 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/matmul/streamk_design.md +374 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/matmul/swat_design.md +423 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/matmul/templates/matmul_basic_blaze.template +165 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/matmul/templates/usage_guide.md +29 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/mc2/best-practices-guide.md +43 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/mc2/guide.md +42 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/mc2/local_matmul_design.md +130 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/mc2/pipeline_balancing_design.md +502 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/guide.md +178 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/dav310/kernel_utils.template +75 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/dav310/softmax_v2_ar_full_load.template +429 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/dav310/softmax_v2_ar_recompute.template +485 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/dav310/softmax_v2_ar_small_r.template +348 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/dav310/softmax_v2_ara_full_load.template +574 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/dav310/softmax_v2_ara_online.template +324 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/dav310/softmax_v2_ara_recompute.template +436 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/dav310/softmax_v2_base.template +950 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/fused_attention_online_softmax_design.md +428 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/softmax_v2_ar_full_load.md +137 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/softmax_v2_ar_recompute.md +135 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/softmax_v2_ar_small_r.md +122 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/softmax_v2_ara_full_load.md +144 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/softmax_v2_ara_online.md +185 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/softmax_v2_ara_recompute.md +163 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/softmax_v2_tiling.template +460 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/softmax_v2_tiling_data.template +278 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/state_resident_design.md +337 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/reduce/templates/usage_guide.md +253 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/scalar/coding_principles.md +476 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/scalar/conv_scalar.md +163 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/scalar/guide.md +30 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/simt/guide.md +91 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/simt/optimization-guide.md +110 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/sort/guide.md +83 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/references/sort/radix_sort.md +354 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/scripts/family_asset_audit.py +68 -0
- package/skills/asc-tools/tool-ops-tune/ops-family/scripts/tiling_candidates.py +419 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/SKILL.md +23 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/cases/ascendc/case_groupedmatmul_pipeline.md +23 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/cases/ascendc/case_triton_atomic_revert.md +19 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/cases/mc2/case_mc2_fusion.md +19 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/references/optimize/api-usage.md +70 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/references/optimize/ascendc-regbase-vf.md +45 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/references/optimize/ascendc-tiling.md +51 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/references/optimize/data-copy.md +67 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/references/optimize/index.md +45 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/references/optimize/mc2-balancing.md +77 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/references/optimize/mc2.md +103 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/references/optimize/memory-hierarchy.md +40 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/references/optimize/pipeline.md +95 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/scripts/case_backfill.py +170 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/scripts/log_gap.py +145 -0
- package/skills/asc-tools/tool-ops-tune/ops-mechanism/scripts/mc2_search.py +367 -0
- package/skills/asc-tools/tool-ops-tune/ops-report/SKILL.md +77 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/evals/run_evals.py +963 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/evals/smoke/install-hooks.sh +65 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/evals/smoke/run_smoke.sh +535 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/fixtures/core_tail_a5.csv +25 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/fixtures/few_cores_a5.csv +5 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/fixtures/mte2_bound_a2.csv +17 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/fixtures/multi_kernel_mix_a5.csv +7 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/fixtures/no_bound_a5.csv +9 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/fixtures/serial_no_overlap_a2.csv +9 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/fixtures/vec_bound_a5.csv +9 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/references/io-contracts.md +94 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/references/rule-schema.md +130 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/references/scope-schema.md +61 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/references/soc-spec.yaml +140 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/rules/L0-instruction.yaml +67 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/rules/L1-single-core.yaml +316 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/rules/L2-inter-core.yaml +173 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/rules/L3-inter-card.yaml +156 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/scripts/batch_pipeline.py +466 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/scripts/calibrate.py +249 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/scripts/delta_compare.py +278 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/scripts/render_html.py +304 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/scripts/snapshot.py +200 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/scripts/trace_bubble.py +331 -0
- package/skills/asc-tools/tool-ops-tune/ops-verdict/scripts/verdict.py +1094 -0
- package/skills/asc-tools/tool-ops-tune/scripts/diff_audit.py +281 -0
- package/skills/asc-tools/tool-precision-debug/LICENSE +38 -0
- package/skills/asc-tools/tool-precision-debug/README.md +190 -0
- package/skills/asc-tools/tool-precision-debug/scripts/install.sh +475 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/LICENSE +38 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/SKILL.md +136 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/evals/evals.json +932 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/diagnosis/baseline.md +69 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/diagnosis/checkpoint-design.md +82 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/diagnosis/dumptensor.md +83 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/diagnosis/hypothesis-experiment.md +114 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/diagnosis/index.md +20 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/diagnosis/localization.md +85 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/diagnosis/numerical-modeling.md +94 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/diagnosis/operator-modeling.md +116 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/diagnosis/progressive-error-analysis.md +86 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/diagnosis/reporting.md +140 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/diagnosis/reproducibility.md +121 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/diagnosis/semantic-bisection.md +72 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/diagnosis/sensitive-points.md +146 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/cases/fp16-promotion-boundary.md +46 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/cases/fused-rmsnorm-gelu-residual.md +162 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/cases/index.md +16 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/cases/integer-float-collision.md +44 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/cases/partial-statistics-merge.md +30 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/cases/softplus-v2-grad-family.md +156 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/cases/sync-dataflow-handshake.md +89 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/cases/tail-valid-region-state.md +30 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/cases/thnn-fused-gru-bias-reduction.md +73 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/index.md +34 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/mechanisms/accumulation-order.md +108 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/mechanisms/algorithm-parameter-contract.md +118 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/mechanisms/buffer-lifetime-alias.md +133 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/mechanisms/cast-rounding.md +76 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/mechanisms/complex-operator-boundary.md +48 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/mechanisms/data-movement-alignment.md +104 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/mechanisms/golden-host-contract.md +84 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/mechanisms/index-address-ownership.md +57 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/mechanisms/index.md +32 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/mechanisms/multicore-ownership.md +117 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/mechanisms/pipeline-sync-visibility.md +146 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/mechanisms/precision-mode-approximation.md +90 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/mechanisms/shape-boundary-contract.md +57 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/mechanisms/special-values.md +122 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/mechanisms/tiling-tail-state.md +146 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/operators/broadcast-transpose.md +64 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/operators/convolution.md +60 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/operators/dynamic-quant.md +47 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/operators/index.md +18 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/operators/matmul-mmad.md +131 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/operators/normalization.md +145 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/operators/reduction.md +167 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/operators/softplus-v2-grad.md +58 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/patterns/operators/sort-merge.md +65 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/tools/index.md +18 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/tools/kernel-debug-data.md +133 -0
- package/skills/asc-tools/tool-precision-debug/skills/tool-precision-debug/references/tools/msobjdump.md +150 -0
- package/skills/cann-doctor/SKILL.md +15 -0
- package/skills/catalog.json +79 -0
- package/skills/mattpocock/GLOSSARY.md +30 -0
- package/skills/mattpocock/LICENSE +21 -0
- package/skills/mattpocock/README.md +258 -0
- package/skills/mattpocock/SCOPE.md +35 -0
- package/skills/mattpocock/docs/agents/triage-labels.md +15 -0
- package/skills/mattpocock/docs/engineering/ask-matt.md +91 -0
- package/skills/mattpocock/docs/engineering/code-review.md +101 -0
- package/skills/mattpocock/docs/engineering/codebase-design.md +88 -0
- package/skills/mattpocock/docs/engineering/diagnosing-bugs.md +94 -0
- package/skills/mattpocock/docs/engineering/domain-modeling.md +86 -0
- package/skills/mattpocock/docs/engineering/grill-with-docs.md +82 -0
- package/skills/mattpocock/docs/engineering/implement-spec.md +86 -0
- package/skills/mattpocock/docs/engineering/implement.md +97 -0
- package/skills/mattpocock/docs/engineering/improve-codebase-architecture.md +113 -0
- package/skills/mattpocock/docs/engineering/pr.md +79 -0
- package/skills/mattpocock/docs/engineering/prototype.md +67 -0
- package/skills/mattpocock/docs/engineering/research.md +73 -0
- package/skills/mattpocock/docs/engineering/resolving-merge-conflicts.md +53 -0
- package/skills/mattpocock/docs/engineering/retro.md +81 -0
- package/skills/mattpocock/docs/engineering/setup-matt-pocock-skills.md +94 -0
- package/skills/mattpocock/docs/engineering/tdd.md +94 -0
- package/skills/mattpocock/docs/engineering/to-spec.md +81 -0
- package/skills/mattpocock/docs/engineering/to-tickets.md +99 -0
- package/skills/mattpocock/docs/engineering/triage.md +109 -0
- package/skills/mattpocock/docs/engineering/wayfinder.md +103 -0
- package/skills/mattpocock/docs/engineering/wizard.md +96 -0
- package/skills/mattpocock/docs/productivity/grill-me.md +76 -0
- package/skills/mattpocock/docs/productivity/grilling.md +87 -0
- package/skills/mattpocock/docs/productivity/handoff.md +76 -0
- package/skills/mattpocock/docs/productivity/teach.md +97 -0
- package/skills/mattpocock/docs/productivity/to-questionnaire.md +78 -0
- package/skills/mattpocock/docs/productivity/wait-what.md +36 -0
- package/skills/mattpocock/docs/productivity/writing-for-agents.md +70 -0
- package/skills/mattpocock/scripts/link-skills.sh +62 -0
- package/skills/mattpocock/scripts/list-skills.sh +7 -0
- package/skills/mattpocock/scripts/sync-plugin-version.mjs +41 -0
- package/skills/mattpocock/skills/deprecated/README.md +3 -0
- package/skills/mattpocock/skills/engineering/README.md +34 -0
- package/skills/mattpocock/skills/engineering/ask-matt/PHASE-BOUNDARIES.md +55 -0
- package/skills/mattpocock/skills/engineering/ask-matt/SKILL.md +97 -0
- package/skills/mattpocock/skills/engineering/ask-matt/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/engineering/code-review/SKILL.md +89 -0
- package/skills/mattpocock/skills/engineering/code-review/agents/openai.yaml +3 -0
- package/skills/mattpocock/skills/engineering/codebase-design/DEEPENING.md +37 -0
- package/skills/mattpocock/skills/engineering/codebase-design/DESIGN-IT-TWICE.md +44 -0
- package/skills/mattpocock/skills/engineering/codebase-design/SKILL.md +114 -0
- package/skills/mattpocock/skills/engineering/codebase-design/agents/openai.yaml +3 -0
- package/skills/mattpocock/skills/engineering/diagnosing-bugs/SKILL.md +138 -0
- package/skills/mattpocock/skills/engineering/diagnosing-bugs/agents/openai.yaml +3 -0
- package/skills/mattpocock/skills/engineering/diagnosing-bugs/scripts/hitl-loop.template.sh +44 -0
- package/skills/mattpocock/skills/engineering/domain-modeling/ADR-FORMAT.md +47 -0
- package/skills/mattpocock/skills/engineering/domain-modeling/GLOSSARY-FORMAT.md +60 -0
- package/skills/mattpocock/skills/engineering/domain-modeling/SKILL.md +74 -0
- package/skills/mattpocock/skills/engineering/domain-modeling/agents/openai.yaml +3 -0
- package/skills/mattpocock/skills/engineering/grill-with-docs/SKILL.md +7 -0
- package/skills/mattpocock/skills/engineering/grill-with-docs/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/engineering/implement/SKILL.md +17 -0
- package/skills/mattpocock/skills/engineering/implement/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/engineering/implement-spec/SKILL.md +42 -0
- package/skills/mattpocock/skills/engineering/implement-spec/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/engineering/improve-codebase-architecture/HTML-REPORT.md +123 -0
- package/skills/mattpocock/skills/engineering/improve-codebase-architecture/SKILL.md +71 -0
- package/skills/mattpocock/skills/engineering/improve-codebase-architecture/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/engineering/pr/CREDITS.md +3 -0
- package/skills/mattpocock/skills/engineering/pr/SKILL.md +170 -0
- package/skills/mattpocock/skills/engineering/pr/agents/openai.yaml +3 -0
- package/skills/mattpocock/skills/engineering/prototype/LOGIC.md +67 -0
- package/skills/mattpocock/skills/engineering/prototype/SKILL.md +26 -0
- package/skills/mattpocock/skills/engineering/prototype/UI.md +112 -0
- package/skills/mattpocock/skills/engineering/prototype/agents/openai.yaml +3 -0
- package/skills/mattpocock/skills/engineering/research/SKILL.md +12 -0
- package/skills/mattpocock/skills/engineering/research/agents/openai.yaml +3 -0
- package/skills/mattpocock/skills/engineering/retro/SKILL.md +44 -0
- package/skills/mattpocock/skills/engineering/retro/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/engineering/setup-matt-pocock-skills/SKILL.md +120 -0
- package/skills/mattpocock/skills/engineering/setup-matt-pocock-skills/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/engineering/setup-matt-pocock-skills/domain.md +51 -0
- package/skills/mattpocock/skills/engineering/setup-matt-pocock-skills/issue-tracker-github.md +50 -0
- package/skills/mattpocock/skills/engineering/setup-matt-pocock-skills/issue-tracker-gitlab.md +46 -0
- package/skills/mattpocock/skills/engineering/setup-matt-pocock-skills/issue-tracker-local.md +30 -0
- package/skills/mattpocock/skills/engineering/setup-matt-pocock-skills/triage-labels.md +15 -0
- package/skills/mattpocock/skills/engineering/tdd/SKILL.md +38 -0
- package/skills/mattpocock/skills/engineering/tdd/agents/openai.yaml +3 -0
- package/skills/mattpocock/skills/engineering/tdd/mocking.md +59 -0
- package/skills/mattpocock/skills/engineering/tdd/tests.md +77 -0
- package/skills/mattpocock/skills/engineering/to-spec/SKILL.md +75 -0
- package/skills/mattpocock/skills/engineering/to-spec/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/engineering/to-tickets/SKILL.md +105 -0
- package/skills/mattpocock/skills/engineering/to-tickets/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/engineering/triage/AGENT-BRIEF.md +207 -0
- package/skills/mattpocock/skills/engineering/triage/OUT-OF-SCOPE.md +105 -0
- package/skills/mattpocock/skills/engineering/triage/SKILL.md +112 -0
- package/skills/mattpocock/skills/engineering/triage/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/engineering/wayfinder/SKILL.md +128 -0
- package/skills/mattpocock/skills/engineering/wayfinder/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/engineering/wizard/SKILL.md +44 -0
- package/skills/mattpocock/skills/engineering/wizard/agents/openai.yaml +3 -0
- package/skills/mattpocock/skills/engineering/wizard/template.sh +223 -0
- package/skills/mattpocock/skills/in-progress/README.md +17 -0
- package/skills/mattpocock/skills/in-progress/chief-of-staff/SKILL.md +75 -0
- package/skills/mattpocock/skills/in-progress/chief-of-staff/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/in-progress/claude-handoff/SKILL.md +18 -0
- package/skills/mattpocock/skills/in-progress/claude-handoff/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/in-progress/loop-me/SKILL.md +32 -0
- package/skills/mattpocock/skills/in-progress/loop-me/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/in-progress/setup-ts-deep-modules/SKILL.md +102 -0
- package/skills/mattpocock/skills/in-progress/setup-ts-deep-modules/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/in-progress/setup-ts-deep-modules/dependency-cruiser.config.cjs +95 -0
- package/skills/mattpocock/skills/in-progress/software-factory/EXAMPLE-TASKS.md +80 -0
- package/skills/mattpocock/skills/in-progress/software-factory/GIT-HOSTS.md +84 -0
- package/skills/mattpocock/skills/in-progress/software-factory/OBSERVABILITY-PLATFORMS.md +75 -0
- package/skills/mattpocock/skills/in-progress/software-factory/RUNNERS.md +94 -0
- package/skills/mattpocock/skills/in-progress/software-factory/SKILL.md +98 -0
- package/skills/mattpocock/skills/in-progress/software-factory/TICKET-TRACKERS.md +85 -0
- package/skills/mattpocock/skills/in-progress/writing-beats/SKILL.md +67 -0
- package/skills/mattpocock/skills/in-progress/writing-beats/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/in-progress/writing-fragments/SKILL.md +79 -0
- package/skills/mattpocock/skills/in-progress/writing-fragments/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/in-progress/writing-shape/SKILL.md +79 -0
- package/skills/mattpocock/skills/in-progress/writing-shape/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/misc/README.md +8 -0
- package/skills/mattpocock/skills/misc/git-guardrails-claude-code/SKILL.md +95 -0
- package/skills/mattpocock/skills/misc/git-guardrails-claude-code/agents/openai.yaml +3 -0
- package/skills/mattpocock/skills/misc/git-guardrails-claude-code/scripts/block-dangerous-git.sh +25 -0
- package/skills/mattpocock/skills/misc/migrate-to-shoehorn/SKILL.md +118 -0
- package/skills/mattpocock/skills/misc/migrate-to-shoehorn/agents/openai.yaml +3 -0
- package/skills/mattpocock/skills/misc/scaffold-exercises/SKILL.md +106 -0
- package/skills/mattpocock/skills/misc/scaffold-exercises/agents/openai.yaml +3 -0
- package/skills/mattpocock/skills/misc/setup-pre-commit/SKILL.md +91 -0
- package/skills/mattpocock/skills/misc/setup-pre-commit/agents/openai.yaml +3 -0
- package/skills/mattpocock/skills/productivity/README.md +20 -0
- package/skills/mattpocock/skills/productivity/grill-me/SKILL.md +7 -0
- package/skills/mattpocock/skills/productivity/grill-me/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/productivity/grilling/SKILL.md +30 -0
- package/skills/mattpocock/skills/productivity/grilling/agents/openai.yaml +3 -0
- package/skills/mattpocock/skills/productivity/handoff/SKILL.md +16 -0
- package/skills/mattpocock/skills/productivity/handoff/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/productivity/teach/GLOSSARY-FORMAT.md +35 -0
- package/skills/mattpocock/skills/productivity/teach/LEARNING-RECORD-FORMAT.md +46 -0
- package/skills/mattpocock/skills/productivity/teach/MISSION-FORMAT.md +31 -0
- package/skills/mattpocock/skills/productivity/teach/RESOURCES-FORMAT.md +32 -0
- package/skills/mattpocock/skills/productivity/teach/SKILL.md +140 -0
- package/skills/mattpocock/skills/productivity/teach/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/productivity/to-questionnaire/SKILL.md +54 -0
- package/skills/mattpocock/skills/productivity/to-questionnaire/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/productivity/wait-what/SKILL.md +7 -0
- package/skills/mattpocock/skills/productivity/wait-what/agents/openai.yaml +5 -0
- package/skills/mattpocock/skills/productivity/writing-for-agents/SKILL-MECHANICS.md +22 -0
- package/skills/mattpocock/skills/productivity/writing-for-agents/SKILL.md +81 -0
- package/skills/mattpocock/skills/productivity/writing-for-agents/agents/openai.yaml +3 -0
- package/skills/task-agents/operator-development/Agent.md +71 -0
- package/skills/task-agents/operator-development/skills.json +120 -0
- package/skills/task-agents/operator-development/stages.schema.json +532 -0
- package/skills/task-agents/performance-optimization/Agent.md +78 -0
- package/skills/task-agents/performance-optimization/skills.json +64 -0
- package/skills/task-agents/response-protocol.md +35 -0
- package/skills/task-agents/sidebar-contracts.schema.json +4168 -0
- package/skills/task-agents/sidebar-selection.schema.json +971 -0
- package/skills/task-agents/visuals/components.json +283 -0
- package/skills/task-agents/visuals/contracts.schema.json +3628 -0
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
# ----------------------------------------------------------------------------------------------------------
|
|
4
|
+
# Copyright (c) 2026 Huawei Technologies Co., Ltd.
|
|
5
|
+
# This program is free software, you can redistribute it and/or modify it under the terms and conditions of
|
|
6
|
+
# CANN Open Software License Agreement Version 2.0 (the "License").
|
|
7
|
+
# Please refer to the License for details. You may not use this file except in compliance with the License.
|
|
8
|
+
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,
|
|
9
|
+
# INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
|
|
10
|
+
# See LICENSE in the root of the software repository for the full text of the License.
|
|
11
|
+
# ----------------------------------------------------------------------------------------------------------
|
|
12
|
+
"""diff_audit.py — 实施范围机器校验
|
|
13
|
+
|
|
14
|
+
设计对齐:
|
|
15
|
+
- 单变量铁律与 diff 范围此前完全靠 perf-implementer 自报("diff 摘要(改动点
|
|
16
|
+
列表)"),无机器校验——多机制混入导致的归因失败(KEEP 了无法归因的收益)
|
|
17
|
+
无机制拦截。
|
|
18
|
+
- 本脚本用目录 diff + 方案卡 diff_sketch 对照做机器校验:改动文件集超出
|
|
19
|
+
方案卡声明的范围 → 该轮标 UNATTRIBUTABLE,禁止进 KEEP 仲裁(退出码 2)。
|
|
20
|
+
- 与 perf-reviewer subagent 的分工:本脚本只做**范围**校验(哪些文件被动了),
|
|
21
|
+
代码质量与模板保真(MicroAPI VF 是否被降级)由 perf-reviewer subagent
|
|
22
|
+
独立审查。
|
|
23
|
+
|
|
24
|
+
用法:
|
|
25
|
+
python3 diff_audit.py --baseline <原工程目录> --opt <优化副本目录> \
|
|
26
|
+
[--candidates candidates.json --index 0] [-o audit.json]
|
|
27
|
+
|
|
28
|
+
方案卡对照(--candidates 提供时):
|
|
29
|
+
candidates.json 的条目可带 diff_sketch_files(数组:预期改动的文件/目录,
|
|
30
|
+
相对工程根,支持目录前缀匹配)——有声明则逐文件对照;未声明时只输出
|
|
31
|
+
改动清单(audit 记录在案,不判 UNATTRIBUTABLE——不能拿不存在的声明当红线)。
|
|
32
|
+
|
|
33
|
+
判定:
|
|
34
|
+
exit 0 范围内(或未声明范围:记录不判罚)
|
|
35
|
+
exit 2 超范围(UNATTRIBUTABLE:该轮收益不可归因到方案卡机制,禁进 KEEP 仲裁)
|
|
36
|
+
|
|
37
|
+
排除项(测量设施与产物,非优化变量——ops-collect 计时口径表既有纪律):
|
|
38
|
+
*.o / *.so / *.d / build/ 输出 / .git / __pycache__ / result.json /
|
|
39
|
+
comparison.md / collection_manifest.json / PROF_* / *.log
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
from __future__ import annotations
|
|
43
|
+
|
|
44
|
+
import argparse
|
|
45
|
+
import datetime
|
|
46
|
+
import json
|
|
47
|
+
import subprocess
|
|
48
|
+
import sys
|
|
49
|
+
from pathlib import Path
|
|
50
|
+
|
|
51
|
+
SCHEMA = "opstune.diff-audit/1.0"
|
|
52
|
+
|
|
53
|
+
# 测量设施与构建产物:复制目录带入的 harness / 采集产物 / 编译中间物不属优化变量
|
|
54
|
+
# (ops-collect 计时口径表既有纪律:harness 属测量设施而非优化变量)
|
|
55
|
+
EXCLUDE_NAMES = {
|
|
56
|
+
"result.json",
|
|
57
|
+
"comparison.md",
|
|
58
|
+
"collection_manifest.json",
|
|
59
|
+
"verdict.json",
|
|
60
|
+
"audit.json",
|
|
61
|
+
"scalars.json",
|
|
62
|
+
"timing_harness.log",
|
|
63
|
+
"iso_result.json",
|
|
64
|
+
"perf_data.csv",
|
|
65
|
+
"scope.json",
|
|
66
|
+
# 计时 harness 文件(timing_harness 货架模板拷入:测量设施非优化变量)
|
|
67
|
+
"timing_harness_aclrt_event.cpp",
|
|
68
|
+
"timing_harness_torch_event.py",
|
|
69
|
+
}
|
|
70
|
+
EXCLUDE_PARTS = {
|
|
71
|
+
"build",
|
|
72
|
+
".git",
|
|
73
|
+
"__pycache__",
|
|
74
|
+
"out",
|
|
75
|
+
"prof",
|
|
76
|
+
"tuning_artifacts",
|
|
77
|
+
"mindstudio_profiler_output",
|
|
78
|
+
"PROF_DATA",
|
|
79
|
+
"node_modules",
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def is_excluded(rel: str) -> bool:
|
|
84
|
+
p = Path(rel)
|
|
85
|
+
if p.name in EXCLUDE_NAMES:
|
|
86
|
+
return True
|
|
87
|
+
if p.suffix in (".o", ".so", ".d", ".log", ".pyc"):
|
|
88
|
+
return True
|
|
89
|
+
return any(part in EXCLUDE_PARTS for part in p.parts)
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
def diff_files(baseline: Path, opt: Path) -> dict[str, str]:
|
|
93
|
+
"""git diff --no-index --name-status(M/A/D 三态;R 罕见按 M 处理)。"""
|
|
94
|
+
proc = subprocess.run(
|
|
95
|
+
[
|
|
96
|
+
"git",
|
|
97
|
+
"diff",
|
|
98
|
+
"--no-index",
|
|
99
|
+
"--name-status",
|
|
100
|
+
"--no-renames",
|
|
101
|
+
str(baseline),
|
|
102
|
+
str(opt),
|
|
103
|
+
],
|
|
104
|
+
capture_output=True,
|
|
105
|
+
text=True,
|
|
106
|
+
)
|
|
107
|
+
out: dict[str, str] = {}
|
|
108
|
+
for line in proc.stdout.splitlines():
|
|
109
|
+
line = line.strip()
|
|
110
|
+
if not line or "\t" not in line:
|
|
111
|
+
continue
|
|
112
|
+
status, path = line.split("\t", 1)
|
|
113
|
+
# path 形如 <baseline>/xxx 或 <opt>/xxx —— 剥掉前缀取相对路径
|
|
114
|
+
for root in (baseline, opt):
|
|
115
|
+
prefix = str(root).rstrip("/") + "/"
|
|
116
|
+
if path.startswith(prefix):
|
|
117
|
+
rel = path[len(prefix) :]
|
|
118
|
+
status = (
|
|
119
|
+
"D"
|
|
120
|
+
if status.startswith("D")
|
|
121
|
+
else ("A" if status.startswith("A") else "M")
|
|
122
|
+
)
|
|
123
|
+
out[rel] = status
|
|
124
|
+
break
|
|
125
|
+
return out
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
def declared_files(card: dict) -> list[str] | None:
|
|
129
|
+
"""方案卡声明的改动文件集(diff_sketch_files;旧卡无此字段 → None)。"""
|
|
130
|
+
v = card.get("diff_sketch_files")
|
|
131
|
+
if isinstance(v, list) and v and all(isinstance(x, str) for x in v):
|
|
132
|
+
return v
|
|
133
|
+
return None
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
def matches_declared(rel: str, declared: list[str]) -> bool:
|
|
137
|
+
"""rel 命中声明集:精确路径或目录前缀(声明 'op_kernel/' 覆盖其下全部)。"""
|
|
138
|
+
p = Path(rel)
|
|
139
|
+
for d in declared:
|
|
140
|
+
d = d.strip().strip("/")
|
|
141
|
+
if not d:
|
|
142
|
+
continue
|
|
143
|
+
if rel == d or str(p) == d:
|
|
144
|
+
return True
|
|
145
|
+
if d.endswith("/") and rel.startswith(d):
|
|
146
|
+
return True
|
|
147
|
+
if not d.endswith("/") and (rel.startswith(d + "/")):
|
|
148
|
+
return True
|
|
149
|
+
return False
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
def main() -> int:
|
|
153
|
+
ap = argparse.ArgumentParser(
|
|
154
|
+
description="实施范围机器校验(单变量铁律的 diff 侧闸门)"
|
|
155
|
+
)
|
|
156
|
+
ap.add_argument(
|
|
157
|
+
"--baseline", required=True, help="原工程目录(perf-implementer 复制源)"
|
|
158
|
+
)
|
|
159
|
+
ap.add_argument("--opt", required=True, help="优化副本目录")
|
|
160
|
+
ap.add_argument(
|
|
161
|
+
"--candidates", default=None, help="candidates.json(对照第 index 张方案卡)"
|
|
162
|
+
)
|
|
163
|
+
ap.add_argument("--index", type=int, default=0, help="方案卡序号(默认 0)")
|
|
164
|
+
ap.add_argument(
|
|
165
|
+
"--max-changed-lines",
|
|
166
|
+
type=int,
|
|
167
|
+
default=2000,
|
|
168
|
+
help="改动行数上限(防爆改;超出按超范围处置)",
|
|
169
|
+
)
|
|
170
|
+
ap.add_argument("-o", "--output", default=None, help="audit.json 输出")
|
|
171
|
+
args = ap.parse_args()
|
|
172
|
+
|
|
173
|
+
baseline, opt = Path(args.baseline), Path(args.opt)
|
|
174
|
+
if not baseline.is_dir() or not opt.is_dir():
|
|
175
|
+
print(
|
|
176
|
+
f"ERROR: --baseline/--opt 必须是目录({baseline} / {opt})", file=sys.stderr
|
|
177
|
+
)
|
|
178
|
+
return 1
|
|
179
|
+
|
|
180
|
+
card = {}
|
|
181
|
+
if args.candidates:
|
|
182
|
+
data = json.loads(Path(args.candidates).read_text(encoding="utf-8"))
|
|
183
|
+
cards = (
|
|
184
|
+
data
|
|
185
|
+
if isinstance(data, list)
|
|
186
|
+
else data.get("candidates", data.get("cards", []))
|
|
187
|
+
)
|
|
188
|
+
if not isinstance(cards, list) or args.index >= len(cards):
|
|
189
|
+
print(
|
|
190
|
+
f"ERROR: candidates.json 无序号 {args.index} 的方案卡", file=sys.stderr
|
|
191
|
+
)
|
|
192
|
+
return 1
|
|
193
|
+
card = cards[args.index]
|
|
194
|
+
|
|
195
|
+
changed = {
|
|
196
|
+
rel: st for rel, st in diff_files(baseline, opt).items() if not is_excluded(rel)
|
|
197
|
+
}
|
|
198
|
+
# 统计改动行数(仅 M 文件;A/D 大文件同样计入 diff 语义但极少见)
|
|
199
|
+
n_lines = 0
|
|
200
|
+
if changed:
|
|
201
|
+
proc = subprocess.run(
|
|
202
|
+
[
|
|
203
|
+
"git",
|
|
204
|
+
"diff",
|
|
205
|
+
"--no-index",
|
|
206
|
+
"--numstat",
|
|
207
|
+
"--no-renames",
|
|
208
|
+
str(baseline),
|
|
209
|
+
str(opt),
|
|
210
|
+
],
|
|
211
|
+
capture_output=True,
|
|
212
|
+
text=True,
|
|
213
|
+
)
|
|
214
|
+
for line in proc.stdout.splitlines():
|
|
215
|
+
parts = line.split("\t")
|
|
216
|
+
if len(parts) >= 3:
|
|
217
|
+
try:
|
|
218
|
+
n_lines += int(parts[0]) + int(parts[1])
|
|
219
|
+
except ValueError:
|
|
220
|
+
pass
|
|
221
|
+
|
|
222
|
+
declared = declared_files(card)
|
|
223
|
+
out_of_scope = []
|
|
224
|
+
if declared is not None:
|
|
225
|
+
out_of_scope = [rel for rel in changed if not matches_declared(rel, declared)]
|
|
226
|
+
oversized = n_lines > args.max_changed_lines
|
|
227
|
+
|
|
228
|
+
audit = {
|
|
229
|
+
"schema": SCHEMA,
|
|
230
|
+
"generated_at": datetime.datetime.now().isoformat(timespec="seconds"),
|
|
231
|
+
"baseline": str(baseline),
|
|
232
|
+
"opt": str(opt),
|
|
233
|
+
"mechanism": card.get("mechanism"),
|
|
234
|
+
"target_rule": card.get("target_rule"),
|
|
235
|
+
"declared_files": declared,
|
|
236
|
+
"changed_files": [
|
|
237
|
+
{"file": rel, "status": st} for rel, st in sorted(changed.items())
|
|
238
|
+
],
|
|
239
|
+
"changed_lines": n_lines,
|
|
240
|
+
"out_of_scope": out_of_scope,
|
|
241
|
+
"oversized": oversized,
|
|
242
|
+
"verdict": "OK" if (not out_of_scope and not oversized) else "UNATTRIBUTABLE",
|
|
243
|
+
}
|
|
244
|
+
if args.output:
|
|
245
|
+
out = Path(args.output)
|
|
246
|
+
out.parent.mkdir(parents=True, exist_ok=True)
|
|
247
|
+
out.write_text(
|
|
248
|
+
json.dumps(audit, indent=2, ensure_ascii=False) + "\n", encoding="utf-8"
|
|
249
|
+
)
|
|
250
|
+
print(f"audit → {out}")
|
|
251
|
+
|
|
252
|
+
print(
|
|
253
|
+
f"diff audit: {audit['verdict']}({len(changed)} 文件 / {n_lines} 行"
|
|
254
|
+
f"{',方案卡未声明范围:仅记录' if declared is None else ''})"
|
|
255
|
+
)
|
|
256
|
+
for rel, st in sorted(changed.items()):
|
|
257
|
+
mark = " ✗ 超范围" if rel in out_of_scope else ""
|
|
258
|
+
print(f" [{st}] {rel}{mark}")
|
|
259
|
+
if out_of_scope:
|
|
260
|
+
print(
|
|
261
|
+
f"\nERROR: {len(out_of_scope)} 个文件超出方案卡 diff_sketch_files 声明范围——"
|
|
262
|
+
"该轮收益不可归因(UNATTRIBUTABLE),禁止进 KEEP 仲裁;",
|
|
263
|
+
file=sys.stderr,
|
|
264
|
+
)
|
|
265
|
+
print(
|
|
266
|
+
" 处置:回滚超范围改动重测,或确认后把文件补进方案卡并说明为何属同一原子机制。",
|
|
267
|
+
file=sys.stderr,
|
|
268
|
+
)
|
|
269
|
+
return 2
|
|
270
|
+
if oversized:
|
|
271
|
+
print(
|
|
272
|
+
f"\nERROR: 改动 {n_lines} 行 > 上限 {args.max_changed_lines}——疑似混入无关改动"
|
|
273
|
+
"(UNATTRIBUTABLE)。确属大改(如模板整体替换)时用 --max-changed-lines 重估。",
|
|
274
|
+
file=sys.stderr,
|
|
275
|
+
)
|
|
276
|
+
return 2
|
|
277
|
+
return 0
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
if __name__ == "__main__":
|
|
281
|
+
sys.exit(main())
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
CANN Open Software License Agreement Version 2.0
|
|
2
|
+
|
|
3
|
+
This CANN Open Software License Agreement Version 2.0 (hereinafter referred to as this "Agreement") is a legal agreement between you and Huawei, and it governs your use, modification, or distribution of CANN Open Software (hereinafter referred to as "Software"). Please read this Agreement carefully.
|
|
4
|
+
|
|
5
|
+
If you are entering into this Agreement on behalf of a company or other legal entity, you represent that you have the legal authority to bind that entity to this Agreement, in which case "you" will mean the entity you represent.
|
|
6
|
+
|
|
7
|
+
BY DOWNLOADING, INSTALLING, OR USING THE SOFTWARE, YOU AGREE YOU HAVE FULLY UNDERSTOOD AND ACCEPTED THE TERMS CONTAINED HEREIN. IF YOU DO NOT AGREE TO ANY OF THE TERMS OF THIS AGREEMENT, OR IF YOU DO NOT QUALIFY FOR AGREEING TO THIS AGREEMENT, YOU ARE NOT AUTHORIZED TO AND SHALL NOT DOWNLOAD, INSTALL, OR MAKE ANY USE OF THE SOFTWARE.
|
|
8
|
+
|
|
9
|
+
1. Definition
|
|
10
|
+
|
|
11
|
+
1.1 Software means the APIs, source code files, binaries, and related documents of Compute Architecture for Neural Networks("CANN") that are licensable by Huawei, and provided and licensed under this Agreement.
|
|
12
|
+
|
|
13
|
+
1.2 Huawei AI Processors mean AI chipsets (i) branded with "Ascend", "Kirin"," Yueying" or other brands owned or controlled by Huawei; or (ii) manufactured (including have manufactured), supplied (including have supplied) or designed (including have designed) by Huawei.
|
|
14
|
+
|
|
15
|
+
2. Grant of Intellectual Property Rights
|
|
16
|
+
2.1 Subject to the terms and conditions of this Agreement, including your full compliance thereof, Huawei hereby grants you a limited, worldwide, royalty-free, non-transferable, non-sublicensable, and revocable license for you to (i) download, use, modify, integrate, and distribute the Software or its derivative works for the purpose of developing software solely for use in systems with Huawei AI Processors and/or Software, and (ii) distribute any software developed based upon Software and/or its derivative works solely for use in systems with Huawei AI Processors and/or Software.
|
|
17
|
+
|
|
18
|
+
3. Restrictions
|
|
19
|
+
3.1 You are not authorized to, and shall not use, modify, or distribute this Software or its derivative works for any other purposes than those expressly permitted by this Agreement. You shall not make any use of the Software or its derivative works to develop or distribute any software for use in systems with processors other than Huawei AI Processors. All rights not expressly granted herein are expressly reserved by Huawei.
|
|
20
|
+
|
|
21
|
+
3.2 You are not authorized to, and shall not remove, obscure, or alter any copyright or other notices in this Software or any part of it.
|
|
22
|
+
|
|
23
|
+
3.3 Distribution Restrictions
|
|
24
|
+
You may distribute the Software or its derivative works in any medium, whether in source or executable forms, for the purpose stipulated in Section 2; provided that you provide recipients with a copy of this Agreement, and retain all notices in the Software.
|
|
25
|
+
|
|
26
|
+
4. Disclaimer of Warranty and Limitation of Liability
|
|
27
|
+
THE SOFTWARE IS PROVIDED WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL HUAWEI OR ANY OTHER COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR INABILITY TO USE THE SOFTWARE, IN WHOLE OR IN PART, NO MATTER HOW IT IS CAUSED OR THE LEGAL THEORY IT IS BASED ON, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
|
|
28
|
+
|
|
29
|
+
5. Termination
|
|
30
|
+
5.1 This Agreement will continue to apply until terminated by either you or Huawei as described below:
|
|
31
|
+
a.You may terminate this Agreement by ceasing your use of the Software;
|
|
32
|
+
b. Huawei may at any time, terminate this Agreement if: (i) you fail to comply with any term of this Agreement; or (ii) you directly or indirectly initiate any legal proceeding against any individual or entity by alleging that the Software or any part of it infringes your intellectual property rights.
|
|
33
|
+
5.2 By termination, all the rights granted to you under this Agreement are terminated, and you shall cease to use and delete this Software or any derivative works immediately. All rights granted to you under this Agreement shall hereby be void ab initio in the event of termination in accordance with Section 5.1. b above. Huawei reserves the right to pursue any and all legal remedies available to enforce the terms and conditions of this Agreement or to protect Huawei’s intellectual property rights for such breach or violation. All provisions shall survive the termination of this Agreement except for Section 2 and Section 3.3.
|
|
34
|
+
|
|
35
|
+
6. MISCELLANEOUS
|
|
36
|
+
If the application of any provision of this Agreement to any particular facts or circumstances is held to be invalid or unenforceable by a court of competent jurisdiction, then (a) the validity and enforceability of such provision as applied to any other particular facts or circumstances and the validity of other provisions of this Agreement shall not in any way be affected or impaired thereby and (b) such provision shall be enforced to the maximum extent possible so as to affect the intent of the you and Huawei and reformed without further action by you and Huawei to the extent necessary to make such provision valid and enforceable.
|
|
37
|
+
|
|
38
|
+
END OF THE TERMS AND CONDITIONS
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# Ascend C 精度调试 Skill
|
|
2
|
+
|
|
3
|
+
`tool-precision-debug` 用于定位 Ascend C 算子的精度异常,引导 Agent 从复现问题、分析计算链到验证根因、实施修复和完成回归。适用于精度验证失败、输出全零或随机、NaN/Inf、低精度误差超预期,以及 Cast、DataCopy、归约或同步相关的数值异常。
|
|
4
|
+
|
|
5
|
+
## 工作流与架构图
|
|
6
|
+
|
|
7
|
+
```mermaid
|
|
8
|
+
flowchart TB
|
|
9
|
+
INPUT["用户问题、算子源码与失败用例"] --> A
|
|
10
|
+
|
|
11
|
+
subgraph FLOW["精度调试流程"]
|
|
12
|
+
direction LR
|
|
13
|
+
A["1. 复现与基线"] --> B["2. 算子建模"]
|
|
14
|
+
B --> C["3. 定位与根因验证"]
|
|
15
|
+
C -->|修复任务| D["4. 最小修复"]
|
|
16
|
+
D --> E["5. 回放与回归"]
|
|
17
|
+
E -->|通过| F["6. 报告交付"]
|
|
18
|
+
E -->|未通过| C
|
|
19
|
+
C -->|仅定位| F
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
subgraph SUPPORT["知识与工具"]
|
|
23
|
+
direction LR
|
|
24
|
+
METHODS["诊断方法"]
|
|
25
|
+
EXPERIENCE["故障机制、算子经验与案例"]
|
|
26
|
+
KNOWLEDGE["CANN 架构与 API 查询"]
|
|
27
|
+
TOOLS["观察与调试工具"]
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
METHODS -.-> C
|
|
31
|
+
EXPERIENCE -.-> C
|
|
32
|
+
KNOWLEDGE -.-> B
|
|
33
|
+
TOOLS -.-> C
|
|
34
|
+
F --> RESULT["根因说明、验证结果与未决问题"]
|
|
35
|
+
|
|
36
|
+
classDef flow fill:#edf5ff,stroke:#1677ff,color:#171a1d;
|
|
37
|
+
classDef support fill:#eef9f4,stroke:#18a66b,color:#171a1d;
|
|
38
|
+
classDef result fill:#fff7e6,stroke:#d48806,color:#171a1d;
|
|
39
|
+
class A,B,C,D,E,F flow;
|
|
40
|
+
class METHODS,EXPERIENCE,KNOWLEDGE,TOOLS support;
|
|
41
|
+
class INPUT,RESULT result;
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
| 阶段 | 主要工作 |
|
|
45
|
+
| --- | --- |
|
|
46
|
+
| 复现与基线 | 复现失败,确认输入、参考结果和精度判据 |
|
|
47
|
+
| 算子建模 | 理解数学语义与实际计算链,识别舍入、类型转换、索引及同步等敏感点 |
|
|
48
|
+
| 定位与根因验证 | 结合经验提出候选,通过观察和区分实验缩小范围、确认原因 |
|
|
49
|
+
| 最小修复 | 根据根因修改实现,清理临时调试改动 |
|
|
50
|
+
| 回放与回归 | 重跑原失败用例,检查受影响路径和关键边界 |
|
|
51
|
+
| 报告交付 | 汇总根因、修改内容、验证结果及尚未解决的问题 |
|
|
52
|
+
|
|
53
|
+
仅要求定位时,确认结论后直接交付报告。完整流程见 [SKILL.md](skills/tool-precision-debug/SKILL.md)。
|
|
54
|
+
|
|
55
|
+
## 知识与工具
|
|
56
|
+
|
|
57
|
+
| 能力 | 内容 |
|
|
58
|
+
| --- | --- |
|
|
59
|
+
| 诊断方法 | 错误分布分析、观察点设计、语义二分、逐层误差分析、数值对照与设备探针 |
|
|
60
|
+
| 经验知识 | 可复用的故障机制、算子族精度风险和历史诊断案例,按知识目录与 Markdown 链接查阅 |
|
|
61
|
+
| CANN 知识查询 | `knowledge-query` 查询架构、示例和类似算子;`ascendc-api-knowledge-query` 查询 Ascend C API |
|
|
62
|
+
| 调试工具指引 | DumpTensor、show_kernel_debug_data、msobjdump、msSanitizer 等工具的选用与操作方法 |
|
|
63
|
+
|
|
64
|
+
## 使用指南
|
|
65
|
+
|
|
66
|
+
### 安装
|
|
67
|
+
|
|
68
|
+
安装内容包括 `tool-precision-debug`、`knowledge-query` 和 `ascendc-api-knowledge-query`。默认安装到当前目录 `.`,以下命令可直接复制执行。需要更改安装目录时,将 `.` 改为已有项目的路径,例如 `/path/to/project`。省略目录参数时也使用当前目录。
|
|
69
|
+
|
|
70
|
+
安装到 Codex:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
curl -fsSL https://raw.gitcode.com/cann/asc-tools/raw/master/skills/tool-precision-debug/scripts/install.sh | bash -s -- codex .
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
安装到 Claude Code:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
curl -fsSL https://raw.gitcode.com/cann/asc-tools/raw/master/skills/tool-precision-debug/scripts/install.sh | bash -s -- claude .
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
安装到 OpenCode:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
curl -fsSL https://raw.gitcode.com/cann/asc-tools/raw/master/skills/tool-precision-debug/scripts/install.sh | bash -s -- opencode .
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
本地已有文件时,在本 README 所在目录执行:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
bash scripts/install.sh codex .
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### 全局安装
|
|
95
|
+
|
|
96
|
+
需要在当前用户的所有项目中使用时,显式添加 `--global`。
|
|
97
|
+
|
|
98
|
+
Codex:
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
curl -fsSL https://raw.gitcode.com/cann/asc-tools/raw/master/skills/tool-precision-debug/scripts/install.sh | bash -s -- codex --global
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Claude Code:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
curl -fsSL https://raw.gitcode.com/cann/asc-tools/raw/master/skills/tool-precision-debug/scripts/install.sh | bash -s -- claude --global
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
OpenCode:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
curl -fsSL https://raw.gitcode.com/cann/asc-tools/raw/master/skills/tool-precision-debug/scripts/install.sh | bash -s -- opencode --global
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
| 客户端 | 默认全局 Skill 入口 |
|
|
117
|
+
| --- | --- |
|
|
118
|
+
| [Codex](https://learn.chatgpt.com/docs/build-skills) | `~/.agents/skills/` |
|
|
119
|
+
| [Claude Code](https://code.claude.com/docs/en/skills) | `~/.claude/skills/` |
|
|
120
|
+
| [OpenCode](https://opencode.ai/docs/skills/) | `~/.config/opencode/skills/` |
|
|
121
|
+
|
|
122
|
+
已有 `CLAUDE_CONFIG_DIR`、`OPENCODE_CONFIG_DIR` 或 `XDG_CONFIG_HOME` 设置时,安装器使用对应配置目录。全局安装的精度 Skill 实体位于 `~/.asc-tools/tool-precision-debug/`,知识库默认位于 `~/.cannbot/cannbot-knowledge/`,只为所选客户端建立入口。查询时按当前任务指定目标平台。
|
|
123
|
+
|
|
124
|
+
### 安装选项与检查
|
|
125
|
+
|
|
126
|
+
| 常用选项 | 用途 |
|
|
127
|
+
| --- | --- |
|
|
128
|
+
| `--global` | 为当前用户全局安装,与项目目录参数互斥 |
|
|
129
|
+
| `--python` | 后接 Python 可执行文件,指定安装时使用的环境 |
|
|
130
|
+
| `--knowledge-root` | 后接已有完整知识库的目录,直接复用 |
|
|
131
|
+
| `--offline` | 使用已准备好的本地文件和依赖安装 |
|
|
132
|
+
| `--update` | 更新通过在线安装获取的内容 |
|
|
133
|
+
|
|
134
|
+
这些选项同样支持 curl 安装命令。更多选项见 `bash scripts/install.sh --help`。
|
|
135
|
+
|
|
136
|
+
默认的项目安装将精度调试 Skill 放在 `.asc-tools/tool-precision-debug/`,其中直接包含 `SKILL.md`、`references/` 和 `evals/`,知识库下载到 `.cannbot/cannbot-knowledge/`,知识配置保存在 `.cannbot/knowledge.env`。Codex 和 OpenCode 共用 `.agents/skills/` 入口,OpenCode 不再额外创建 `.opencode/skills/`;Claude Code 另建 `.claude/skills/` 链接。OpenCode 项目重装会清理指向同一份已安装 Skill 的旧链接,保留其他内容;复用的知识仓不会自动搬迁。
|
|
137
|
+
|
|
138
|
+
安装或更新后,在目标项目中重新打开客户端,确认可以使用 `tool-precision-debug`。需要确认知识查询是否可用时,可以让 Agent 执行:
|
|
139
|
+
|
|
140
|
+
```text
|
|
141
|
+
使用 ascendc-api-knowledge-query,查询当前目标平台上 DataCopyPad 的使用约束,并给出依据。
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### 触发方式
|
|
145
|
+
|
|
146
|
+
可以直接点名 Skill,也可以描述需要排查的精度问题,例如:
|
|
147
|
+
|
|
148
|
+
```text
|
|
149
|
+
使用 tool-precision-debug,定位这个算子的精度失败。
|
|
150
|
+
这个 Ascend C 算子的输出偶尔全零,请帮助定位原因。
|
|
151
|
+
这个归约算子的误差超出项目阈值,请检查计算链和中间精度。
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### 调试前提供什么
|
|
155
|
+
|
|
156
|
+
- 算子源码,以及构建、运行和测试入口。
|
|
157
|
+
- 失败输入或可复现步骤,相关 shape、dtype 和属性。
|
|
158
|
+
- 参考结果或 reference 实现,以及项目的精度判据。
|
|
159
|
+
- 实际使用的设备、CANN 版本和已有错误输出。
|
|
160
|
+
- 本次目标:只定位原因,还是允许修改并验证。
|
|
161
|
+
|
|
162
|
+
### 使用示例
|
|
163
|
+
|
|
164
|
+
定位并修复:
|
|
165
|
+
|
|
166
|
+
```text
|
|
167
|
+
使用 tool-precision-debug 排查当前算子的精度问题。
|
|
168
|
+
先按项目现有测试复现,确认根因后进行最小修复,
|
|
169
|
+
最后回放失败用例并完成相关回归,给出实际测试结果。
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
只定位,不修改正式实现:
|
|
173
|
+
|
|
174
|
+
```text
|
|
175
|
+
使用 tool-precision-debug 定位这个算子的输出异常。
|
|
176
|
+
可以做必要的观察和区分实验,暂不修改正式实现。
|
|
177
|
+
请说明问题位置、触发条件、证据和仍未确认的部分。
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
复核已有修复:
|
|
181
|
+
|
|
182
|
+
```text
|
|
183
|
+
检查当前精度修复是否完整。
|
|
184
|
+
按原输入和比较器回放失败,核对受影响路径及关键边界,
|
|
185
|
+
说明哪些结果已经验证、还有哪些缺口。
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### 结果交付
|
|
189
|
+
|
|
190
|
+
根据任务目标,Agent 会交付根因分析、相关代码位置、修复说明和测试结果;无法确认的原因或尚未完成的验证会单独列出。需要保存报告时,可以在任务中指定输出目录。
|