Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
32 changes: 32 additions & 0 deletions .ci/exclude.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# CTest regex patterns (one per line) for tests excluded from CI.
# Blank lines and '#' comments are ignored. Every entry should link to an
# upstream issue — fix the test, don't register failures indefinitely.
#
# Source: /space/pvelesko/2026.04.14-lib-fixes/bug-summary.md (2026-04-14 sweep).

# Pre-existing chipStar kernel-name lookup failure (not a rocPRIM bug).
# Tracked in bug-summary.md §1 "test_device_reduce_by_key — unchanged —
# pre-existing unrelated kernel-name lookup failure".
rocprim\.device_reduce_by_key

# IGC bug #403 (SIMD32 finalizer silently drops kernels after register-pressure
# retry). Upstream: https://github.com/intel/intel-graphics-compiler/issues/403
# Mitigation: CHIP_L0_FORCE_SIMD16 or wait for IGC fix.
rocprim\.device_run_length_encode

# IGC bug #402 (fp16 subgroup-shuffle narrowing miscompile).
# Upstream: https://github.com/intel/intel-graphics-compiler/issues/402
# Fix pending in PR [CHIP-SPV/rocPRIM#3]; remove these two lines when #3 merges.
rocprim\.warp_reduce
rocprim\.warp_scan

# fp16/bf16 block_shuffle failures on PoCL CPU (pastrami). Related to the same
# sub-int warp_shuffle roundtrip addressed by PR [CHIP-SPV/rocPRIM#3]; remove
# once the fp16 fix lands and is verified on CPU.
rocprim\.block_shuffle

# Mali GPU (salami) lacks fp64 + SubgroupDispatch SPIR-V capabilities.
# These tests require hardware features the ARM Mali doesn't expose.
rocprim\.thread_algos
rocprim\.intrinsics
rocprim\.warp_load
129 changes: 129 additions & 0 deletions .github/workflows/presubmit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
name: Presubmit

on:
pull_request:
paths-ignore: "docs/**"
push:
branches: [main]

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
meatloaf-x64-intel:
runs-on: [self-hosted, Linux, X64]
env:
CHIP_MODULE_CACHE_DIR: ""
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 1
- name: Build and test (chip-spv-gpu)
shell: bash
run: |
set -e
if [ -f "$HOME/.local/init/bash" ]; then
export MODULESHOME=$HOME/.local
source "$MODULESHOME/init/bash"
elif [ -f /etc/profile.d/lmod.sh ]; then
source /etc/profile.d/lmod.sh
else
source /etc/profile.d/modules.sh
fi
module use /space/pvelesko/modulefiles
module load oneapi/2025.0.4 llvm/22.0-native HIP/chipStar/main level-zero/dgpu
module list
rm -rf ~/.cache/chipStar build
cmake -S . -B build \
-DCMAKE_CXX_COMPILER="$(which hipcc)" \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TEST=ON -DBUILD_BENCHMARK=OFF \
-DAMDGPU_TEST_TARGETS="" \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build -j 8
exclude=$(grep -Ev '^\s*(#|$)' .ci/exclude.txt | paste -sd '|' -)
cd build
ctest --output-on-failure --timeout 300 -L chip-spv-gpu ${exclude:+-E "$exclude"}
- uses: actions/upload-artifact@v4
if: failure()
with:
name: ctest-logs-meatloaf
path: build/Testing/**/LastTest*.log
if-no-files-found: ignore

salami-arm64:
runs-on: [self-hosted, Linux, ARM64]
env:
CHIP_MODULE_CACHE_DIR: ""
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 1
- name: Build and test (chip-spv-cpu)
shell: bash
run: |
set -e
if [ -f "$HOME/.local/init/bash" ]; then
export MODULESHOME=$HOME/.local
source "$MODULESHOME/init/bash"
else
source /etc/profile.d/modules.sh
fi
module use ~/modulefiles
module load llvm/22.0-native HIP/chipStar/main
module list
rm -rf ~/.cache/chipStar build
cmake -S . -B build \
-DCMAKE_CXX_COMPILER="$(which hipcc)" \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TEST=ON -DBUILD_BENCHMARK=OFF \
-DAMDGPU_TEST_TARGETS="" \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build -j 2
exclude=$(grep -Ev '^\s*(#|$)' .ci/exclude.txt | paste -sd '|' -)
cd build
ctest --output-on-failure --timeout 300 -L chip-spv-cpu ${exclude:+-E "$exclude"}
- uses: actions/upload-artifact@v4
if: failure()
with:
name: ctest-logs-salami
path: build/Testing/**/LastTest*.log
if-no-files-found: ignore

pastrami-macos:
runs-on: [self-hosted, ARM64, MacOS]
env:
CHIP_MODULE_CACHE_DIR: ""
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 1
- name: Build and test (chip-spv-cpu)
shell: bash
run: |
set -e
source /opt/homebrew/Cellar/modules/5.6.0/init/bash
module use ~/modulefiles
module load llvm/22.0-native pocl HIP/chipStar/main
module list
rm -rf ~/.cache/chipStar build
cmake -S . -B build \
-DCMAKE_CXX_COMPILER="$(which hipcc)" \
-DCMAKE_BUILD_TYPE=Release \
-DBUILD_TEST=ON -DBUILD_BENCHMARK=OFF \
-DAMDGPU_TEST_TARGETS="" \
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
cmake --build build -j 4
exclude=$(grep -Ev '^\s*(#|$)' .ci/exclude.txt | paste -sd '|' -)
cd build
ctest --output-on-failure --timeout 300 -L chip-spv-cpu ${exclude:+-E "$exclude"}
- uses: actions/upload-artifact@v4
if: failure()
with:
name: ctest-logs-pastrami
path: build/Testing/**/LastTest*.log
if-no-files-found: ignore
Loading
Loading