Skip to content

Upload GPUCompiler's failure dumps from the SPIR-V CI jobs - #207

Merged
maleadt merged 1 commit into
mainfrom
tb/ci-compilation-dumps
Nov 7, 2026
Merged

maleadt merged 1 commit into
mainfrom
tb/ci-compilation-dumps

Conversation

@maleadt

@maleadt maleadt commented Nov 5, 2026

Copy link
Copy Markdown
Member

The host-kernel job on #197 failed once with Failed to validate generated SPIR-V: ID '297[%297]' has not been defined, in sort: settings (log). GPUCompiler wrote the failing .bc and .spv to /tmp on the runner, and they were lost with it.

I couldn't reproduce the failure. With CI's exact package versions, the SPIR-V back-end gives byte-identical, valid output for all 213 modules that sort.jl compiles. That holds across thousands of repeated compiles, separate processes, malloc perturbation, and CI's test order on its worker. So whatever went wrong depends on the exact bitcode that CI sent the back-end, and only the dumped file can show it.

This uploads those dumps as an artifact when the OpenCL or host-kernel jobs fail. JuliaGPU/GPUCompiler.jl#1077 moves them to $RUNNER_TEMP/gpucompiler-dumps. Released versions still write /tmp/jl_*.bc and /tmp/jl_*.spv, so the step collects both locations.

When a kernel fails to compile or its SPIR-V fails to validate, GPUCompiler writes the
module to a file to attach to a bug report. On CI that file was lost with the runner,
which left a one-off SPIR-V validation failure in the host-kernel job impossible to
debug. Upload these files as an artifact when the OpenCL or host-kernel jobs fail, both
from where JuliaGPU/GPUCompiler.jl#1077 puts them and from where released versions do.
@maleadt
maleadt force-pushed the tb/ci-compilation-dumps branch from bd3bff4 to d927755 Compare November 5, 2026 11:39
@maleadt
maleadt merged commit 8d03690 into main Nov 7, 2026
16 of 33 checks passed
@maleadt
maleadt deleted the tb/ci-compilation-dumps branch November 7, 2026 09:16
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