一键导入
auto-label
Rules for automatically determining which disable_* labels to apply to a PR based on the file paths changed. Used by the auto-label workflow.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Rules for automatically determining which disable_* labels to apply to a PR based on the file paths changed. Used by the auto-label workflow.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
| name | auto-label |
| description | Rules for automatically determining which disable_* labels to apply to a PR based on the file paths changed. Used by the auto-label workflow. |
Determine which disable_* CI labels to apply to a PR based on the files changed.
These labels control which CI jobs run, reducing unnecessary CI load.
| Label | Effect |
|---|---|
disable_all | Skip all CI test jobs, only run lint |
disable_ut | Skip non-distributed UT jobs |
disable_e2e | Skip e2e (inductor benchmark) jobs |
disable_distributed | Skip distributed UT jobs |
disable_win | Skip Windows CI jobs |
disable_build | Skip source build, use nightly wheel |
Note: Only labels consumed by pull.yml are in scope. Other labels (disable_accelerate, disable_transformers) are used by separate workflows and not managed here.
Evaluate the file paths changed in the PR and apply labels using the following logic. Rules are evaluated top-to-bottom; use the FIRST matching rule set.
Condition: ALL changed files match .github/ISSUE_TEMPLATE/, .github/copilot-instructions.md, .claude/, test/agentic/, or other non-functional metadata files. No .github/workflows/, .github/actions/, or .github/scripts/ changes.
Labels: disable_all
Examples: Updating issue templates, adding skills docs, agentic test fixtures.
Condition: Changed files include .github/workflows/, .github/actions/, or .github/scripts/.
Labels: Determined by WHICH workflows/actions/scripts are modified:
_linux_build.yml or build-related actions/scripts → keep linux-build running, disable others: disable_ut,disable_e2e,disable_distributed,disable_win_linux_ut.yml or UT-related actions/scripts → keep linux-ut running: disable_e2e,disable_distributed,disable_win_linux_e2e.yml or e2e-related actions/scripts → keep linux-e2e running: disable_ut,disable_distributed,disable_win_windows_*.yml → keep windows jobs running, add windows_ci: disable_ut,disable_e2e,disable_distributedpull.yml only (trigger/condition/concurrency changes) → disable_allauto_label.yml, auto_merge_by_comment.yml, issue_operator.yml, bot.yml) or bot scripts (.github/scripts/bot_*.py) → disable_allnoneAdditional: If no src/, cmake/, CMakeLists.txt files changed, add disable_build.
Condition: ALL changed files are test/xpu/skip_list_common.py, test/xpu/expect/, test/xpu/extended/skip_list_*.py, or test/xpu/test_decomp_xpu.py (pure skip list / expect file updates with no test logic change).
Labels: disable_all
Rationale: Skip list changes don't need functional validation beyond lint.
Condition: Changed files include test/xpu/xpu_test_utils.py or test/xpu/run_test_with_skip.py (test infrastructure used by all test suites).
Labels: disable_e2e, disable_distributed
Rationale: Test infrastructure affects all UT suites across platforms, so UT must run and disable_win must NOT be added. E2E and distributed use separate infrastructure.
Additional: Always add disable_build (test-only changes don't need source build).
Condition: ALL changed files are under test/ (excluding files handled by Rules 3-4).
Labels (base): disable_e2e, disable_distributed
Additional modifiers:
test/xpu/functorch/ or test/xpu/dynamo/ or test/xpu/higher_order_ops/: add disable_wintest/xpu/test_ops*.py, test/xpu/core/, test/xpu/test_nn*.py): add disable_winAdditional: Always add disable_build (test-only changes don't need source build).
Condition: Changed files include src/ATen/ or src/xccl/ (but NOT src/*.cmake, src/CMakeLists.txt, or src/Build*.cmake — those are build system files, see Rule 7).
Labels: Depends on which subdirectory:
src/ATen/ only (kernel/operator code, no xccl):
disable_e2e, disable_distributeddisable_win — kernel fixes may be platform-specific (e.g. a fix specifically for Windows)src/xccl/ involved (distributed communication backend):
disable_e2e only — do NOT add disable_distributed (xccl changes must run distributed tests)disable_win (xccl is Linux-only)Note: Do NOT add disable_build — source changes require compilation.
Condition: Changed files include cmake/, CMakeLists.txt, src/**/*.cmake, src/Build*.cmake, or tools/.
Labels: None (or minimal). Build system changes need full CI validation.
If ONLY build system files changed (no test, no kernel): disable_e2e, disable_distributed
Condition: None of the above rules fully apply (mixed src + test + CI, etc.).
Labels: Apply the INTERSECTION of what each individual file category would disable.
src/ file changed: do NOT add disable_buildcmake//CMakeLists.txt changed: do NOT add disable_builddisable_build can be added whenever ALL of these are true:
src/ (excluding src/**/*.py)cmake/CMakeLists.txt changedtools/ that affect the buildWhen disable_build is applied, CI uses nightly wheel instead of building from source.
When used by the auto-label workflow, output ONLY the label names as a comma-separated list:
disable_e2e,disable_distributed,disable_win
If no labels should be applied (full CI needed), output:
none
disable_auto label — When manually added to a PR, auto-labeling is completely disabled for that PR. The workflow will skip without allocating a runner. This label should only be added manually by humans (never by automation) to opt out of auto-labeling when full manual control over CI labels is needed.ai_generated label should still follow these rules (they need CI validation).Analyze UT (unit test) results for a torch-xpu-ops PR. Use when asked to check test results, analyze CI failures, or evaluate test coverage for a PR. Produces a structured report of new failures, failure relevance, and new test coverage.
Extract GPU ISA from oneDNN ngen-JIT kernels. This is the ONLY codegen path that bypasses the standard SYCL/SPIR-V/IGC stack. oneDNN uses its own native code generator (ngen) that directly emits GPU ISA bytes — no SPIR-V, no IGC, no zebin ELF, no .debug_line. Use when extracting ASM from oneDNN kernels (gemm_kernel, gen_conv_kernel), matmul, linear, conv, or SDPA-graph ops dispatched via mkldnn.
Extract GPU ISA from AOT-compiled SYCL binaries using NEO driver runtime dump. Use when the kernel is a SYCL symbol (_ZTS...) from an AOT binary such as libtorch_xpu.so, SYCL-TLA FMHA, or any DPC++ binary compiled with -fsycl-targets=spir64_gen -Xs "-device <gpu>".
Extract GPU ISA from JIT-compiled SYCL kernels. The binary only contains SPIR-V; IGC compiles it to native ISA at first launch. The zebin only exists in memory at runtime, so IGC_ShaderDumpEnable=1 is required to capture it. Use when extracting ASM from SYCL JIT kernels, torch-xpu-ops built with TORCH_XPU_ARCH_LIST=none, or standalone DPC++ without AOT flags.
Extract GPU ISA from Triton kernels on XPU. Triton compiles through the same IGC backend as SYCL (Triton IR → SPIR-V → IGC → zebin). Extraction is identical to sycl-jit: IGC_ShaderDumpEnable=1 captures the zebin at runtime. Use when extracting ASM from torch.compile fusions (triton_per_fused, triton_poi, triton_red), standalone @triton.jit kernels, or Inductor-generated XPU kernels.
Extract Intel GPU ISA (assembly) from any XPU kernel. Classifies the codegen path (SYCL AOT, SYCL JIT, Triton, or oneDNN ngen) and delegates to the matching extraction skill. Use when asked to extract ASM, disassemble XPU kernels, get GPU ISA for an aten op, dump shader for PyTorch XPU, or disassemble a standalone DPC++/Triton binary.