Skip to content

Commit 4fd200f

Browse files
michel2323claude
andcommitted
Configure the Aurora LTS self-hosted CI runner
Set up the GitHub Actions job for the Aurora LTS self-runner (.github/workflows/ci.yml): - Enable per-worker GPU spreading (ONEAPI_TEST_SPREAD_GPUS=1) and the per-submission synchronize workaround (ONEAPI_SYNC_EACH_SUBMISSION=1). - Run the test step through `julia -C native,-avx512fp16` to avoid Sapphire Rapids AVX512-FP16 host miscompilation of Float16 work under concurrent oneMKL load (the GPU results are correct; the corruption is on the host CPU). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent 5108b77 commit 4fd200f

1 file changed

Lines changed: 15 additions & 1 deletion

File tree

.github/workflows/ci.yml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,12 @@ jobs:
1818
continue-on-error: true
1919
env:
2020
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21+
# Pin each parallel test worker to a distinct GPU tile instead of
22+
# oversubscribing device 0 (see test/runtests.jl).
23+
ONEAPI_TEST_SPREAD_GPUS: '1'
24+
# Synchronize after every command-list submission to work around the
25+
# Aurora LTS NEO dropped-tail corruption (see lib/level-zero/cmdlist.jl).
26+
ONEAPI_SYNC_EACH_SUBMISSION: '1'
2127
runs-on: [self-hosted, linux, X64]
2228
strategy:
2329
matrix:
@@ -38,5 +44,13 @@ jobs:
3844
- uses: julia-actions/cache@v3
3945
- uses: julia-actions/julia-buildpkg@latest
4046
continue-on-error: true
41-
- uses: julia-actions/julia-runtest@latest
47+
# Disable AVX512-FP16 host codegen on the Aurora Sapphire Rapids nodes. Under concurrent
48+
# oneMKL load the native AVX512-FP16 path silently miscomputes *host* Float16 (e.g. the
49+
# GPUArrays `A .* B .+ c` broadcast reference), failing tests even though the GPU result
50+
# is correct (single-process clean; MXCSR clean; only the native-FP16 path, not Float32).
51+
# `-C native,-avx512fp16` routes Float16 through Float32 and propagates to the Pkg.test
52+
# subprocess and its parallel workers via Base.julia_cmd(). `julia-runtest` cannot pass a
53+
# cpu-target, so invoke Pkg.test() directly. See repro_bcast_mkl.jl.
54+
- name: Run tests (AVX512-FP16 disabled)
4255
continue-on-error: true
56+
run: julia -C "native,-avx512fp16" --color=yes --project=. -e 'import Pkg; Pkg.test()'

0 commit comments

Comments
 (0)