Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 33 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,38 @@ jobs:
- name: clippy --features rayon
run: cargo clippy -p ndarray --features rayon --lib -- -D warnings

tier4-avx512-check:
# Phase 6 of the SIMD integration plan (.claude/knowledge/
# simd-dispatch-architecture.md). Exercises the AVX-512 dispatch
# arm (`#[cfg(target_feature = "avx512f")]` in `src/simd.rs`) so it
# doesn't bit-rot under the v3-default cargo config.
#
# `cargo check` rather than `cargo test`: GH-hosted `ubuntu-latest`
# runners may not have AVX-512 silicon (intermittent across SKUs),
# so a v4-baked binary would SIGILL at run time. `check` compiles
# the AVX-512 code path through the type checker + borrow checker
# + monomorphization without producing a runnable artifact —
# catches type mismatches and dispatch-arm holes that the v3
# default never touches.
#
# The job-level `RUSTFLAGS` env overrides the global
# `RUSTFLAGS="-D warnings"` set at the top of this file so the v4
# target-cpu actually applies. Without the override, `.cargo/
# config-avx512.toml`'s rustflags would be ignored (env wins over
# config file in cargo's precedence).
runs-on: ubuntu-latest
name: tier4-avx512-check
env:
RUSTFLAGS: "-D warnings -Ctarget-cpu=x86-64-v4"
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: cargo check (v4 / AVX-512 dispatch arm)
run: cargo check -p ndarray --features approx,serde,rayon

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Split AVX-512 checks into distinct feature sets

Make the first cargo check truly non-hpc-extras; as written, cargo check -p ndarray --features approx,serde,rayon still enables default features, and Cargo.toml sets default = ["std", "hpc-extras"], so this pass already includes hpc-extras. That makes the second pass (--features ...,hpc-extras) effectively redundant, adding CI time without additional coverage and failing to validate the intended “without hpc-extras” configuration.

Useful? React with 👍 / 👎.

- name: cargo check (v4 / AVX-512 + hpc-extras)
run: cargo check -p ndarray --features approx,serde,rayon,hpc-extras

blas-msrv:
runs-on: ubuntu-latest
name: blas-msrv
Expand Down Expand Up @@ -269,6 +301,7 @@ jobs:
- tests
- native-backend
- hpc-stream-parallel
- tier4-avx512-check
- miri
- cross_test
- cargo-careful
Expand Down
Loading