Skip to content

fix: resolve CI build dependencies, Iluvatar includes and Ascend SOC detection - #1007

Draft
baominghelly wants to merge 1 commit into
masterfrom
fix/ci-build-failures
Draft

baominghelly wants to merge 1 commit into
masterfrom
fix/ci-build-failures

Conversation

@baominghelly

Copy link
Copy Markdown
Contributor

Summary

  • Install the declared build dependencies before non-isolated CI builds, including scikit-build-core>=1.1.1, and use python -m pip consistently.
  • Add public and generated include directories to Iluvatar's custom dispatch compiler command.
  • Query the Ascend runtime for the exact SOC name, then fall back to qualified npu-smi model tokens. Reject numeric fields such as 3103 and request an explicit SOC_VERSION when detection is ambiguous.
  • Add 21 hardware-independent regression cases for build setup, wheel metadata, include lookup and SOC discovery.

Motivation

Follow-up to #1003. CI images can retain an older scikit-build-core when builds use --no-build-isolation, causing the sdist.force-include configuration to fail. Iluvatar dispatch compilation lacks header search paths, and the previous Ascend parser can interpret HBM statistics as a chip model.

This draft runs the fixes through the real accelerator CI environments. Local validation does not establish that hardware builds or operator tests pass.

Type of Change

  • feat — new feature / new operator / new platform
  • fix — bug fix
  • perf — performance improvement (no behavioral change)
  • refactor — code restructuring without behavior change
  • test — adding or fixing tests only
  • build / ci — build system or CI configuration
  • chore — tooling, formatting, or other non-code changes
  • Breaking change

Platforms Affected

  • CPU (WITH_CPU)
  • NVIDIA (WITH_NVIDIA)
  • Iluvatar (WITH_ILUVATAR)
  • MetaX (WITH_METAX)
  • Cambricon (WITH_CAMBRICON)
  • Moore (WITH_MOORE)
  • Ascend (WITH_ASCEND)
  • Hygon (WITH_HYGON)
  • PyTorch C++ bindings (WITH_TORCH)
  • Build system / CMake / CI
  • Python bindings / user-facing API

Smoke Test Result

Accelerator smoke builds/tests: Not run locally — this Windows host lacks the accelerator SDKs and hardware. CI is the required hardware validation.

Local regression validation (PowerShell, Python 3.13, scikit-build-core 1.1.1, CMake 4.4.4 and MinGW g++):

$env:PATH = (Join-Path (Get-Location) '.venv/Scripts') + ';' + $env:PATH
.venv/Scripts/python.exe -m pytest --confcutdir=tests/build_config tests/build_config -q
# 21 passed in 11.62s
.venv/Scripts/ruff.exe check tests/build_config/test_ci_build.py
# All checks passed!
.venv/Scripts/ruff.exe format --check tests/build_config/test_ci_build.py
# 1 file already formatted
git diff --check
# No errors

These tests generate wheel metadata with the real build backend, compile a minimal C++ translation unit with the actual Iluvatar include flags, and invoke the actual SOC CMake detector with simulated runtime/SMI outputs. They do not compile accelerator kernels. --confcutdir avoids loading the operator test suite's torch/InfiniOps fixtures.

Test Results on Supported Platforms

Platform Affected Build / Smoke Result Full Result / Notes
NVIDIA Yes Not run locally — SDK/hardware unavailable Pending CI
Iluvatar Yes Not run locally — CoreX SDK/hardware unavailable Local include lookup regression passed; pending CI
MetaX Yes Not run locally — SDK/hardware unavailable Pending CI
Cambricon Yes Not run locally — SDK/hardware unavailable Pending CI
Moore Yes Not run locally — SDK/hardware unavailable Pending CI; runner availability is outside this change
Ascend Yes Not run locally — CANN/hardware unavailable Simulated SOC regressions passed; pending CI
Hygon Yes Not run locally — SDK/hardware unavailable Setup updated; current automatic CI platform list omits Hygon

Benchmark / Performance Impact

N/A — build and CI fixes; no operator kernel changes.

Notes for Reviewers

  • Verify both CI and CI v2 Shadow against this PR's head commit.
  • Expected evidence: metadata configuration succeeds with the declared backend version; Iluvatar dispatch compiles past the missing public/generated headers; Ascend uses the exact SOC name and never Ascend3103.
  • Ascend automatic detection now fails explicitly if neither source provides a qualified model. Cross-compilation and inaccessible devices require an explicit SOC_VERSION.
  • Ascend device allocation and Moore runner availability remain outside scope. A failure there must be distinguished from a regression in these fixes.
  • No changed file matches the repository's clang-format gate (.h, .cc, .cuh, .mlu).

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant