Bump CUDA Compiler JLL, test different compilers. - #300
Merged
Conversation
Member
Author
|
Well, looks like this exposes a whole bunch of issues on anything but the version tested by CI (13.3). |
Three classes of issues, one per compiler version: - CUDA 13.1 predates tileiras, so its CUDA_Compiler_jll artifact does not provide the binary and package precompilation died with an UndefVarError. Detect tileiras availability explicitly (with a clear error at first use) and skip the kernel precompile workload without it. Since a 13.1 compiler cannot exist, the CI job now instead exercises v13.1 bytecode emission with the default compiler. - CUDA 13.2: tests exercising v13.3+ features (pack/unpack, StridedView, GatherScatterView, view-based atomic reductions, Int64 indexing, mma extensions, "default"-keyed optimization hints) were not gated on the emitted bytecode version. Gate device tests on `bytecode_version()`, and pin codegen tests that check version-independent behavior to an explicit `bytecode_version`. - CUDA 13.4: reflection emitted v13.4 bytecode that the v13.3 CUDA_Tile_jll disassembler cannot decode, breaking every FileCheck test. `code_tiled` now defaults to `reflection_bytecode_version()`, the emitted version clamped to what the disassembler supports, and codegen tests for v13.4-only features are gated on it. Also raise the CI timeout, which the 13.4 job exceeded due to extra artifact downloads. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…meout. The Documentation job rejects public-but-undocumented functions, and the Julia group's 15-minute timeout does not fit a cold cuTile precompile plus the test suite. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
There is no 13.1 tileiras, and v13.1 bytecode cannot target the A100 CI agents (Tile IR on sm_80 requires v13.2+), so neither interpretation of a "13.1" job can run there. v13.1 bytecode emission remains covered by the codegen tests that pin bytecode_version explicitly. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Codegen and other host-side tests only need tileiras, so instead of requiring a functional GPU, the test suite now detects whether the first device can execute the selected Tile IR bytecode version and otherwise restricts itself to host-side tests. This restores the CUDA 13.1 CI job as a host-only run emitting v13.1 bytecode: the A100 agents (sm_80, which requires v13.2+) cannot execute it, and no 13.1 tileiras exists. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
CUDA_Compiler_jll v0.5.0+1 now ships the 13.1 tileiras, so the 13.1 CI job can select the compiler like every other matrix entry. On the A100 agents the suite still restricts itself to host-side tests, since v13.1 bytecode cannot target sm_80. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
CUDA_Compiler_jll now ships tileirdisasm next to tileiras on CUDA 13.4+, so the disassembler can always decode what the compiler accepts. Prefer it over CUDA_Tile_jll's translator (which remains the fallback for older toolchains), and drop reflection_bytecode_version: code_tiled defaults to the emitted bytecode_version again. Codegen tests for v13.4 features now gate on the disassembler version alongside the bytecode version. The CUDA 13.4 CI job requires a CUDA_Compiler_jll build that includes tileirdisasm; with an older artifact, reflection of v13.4 bytecode errors out instead of displaying a downgraded encoding. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Member
Author
|
I don't particularly like how the bytecode version and tileiras version axes are now completely orthogonal, which make some tests messy, but at least this improves compatibility across the board so let's go ahead. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.