Skip to content

feat(container): add ubuntu24-cuda13 image with LLVM 19.1.7 - #386

Merged
LegNeato merged 5 commits into
Rust-GPU:mainfrom
brandonros:cuda13-llvm19
Aug 14, 2026
Merged

feat(container): add ubuntu24-cuda13 image with LLVM 19.1.7#386
LegNeato merged 5 commits into
Rust-GPU:mainfrom
brandonros:cuda13-llvm19

Conversation

@brandonros

Copy link
Copy Markdown
Contributor

part of #385

@brandonrosbrandonros changed the title Cuda13 llvm19feat(container): add ubuntu24-cuda13 image with LLVM 19.1.7Apr 29, 2026
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
brandonrosand others added 2 commits April 29, 2026 09:41
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fn target_to_llvm_prebuilt(target: &str) -> String {
let base = match target {
"x86_64-pc-windows-msvc" => "windows-x86_64",
// NOTE(RDambrosio016): currently disabled because of weird issues with segfaults and building the C++ shim

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

@LegNeato a little aggressive but also worth an interesting test to see if this is still needed?

.join(format!("libintrinsics_v{}.bc", flavor.major));
let llvm_as = find_llvm_as(llvm_config, flavor);

let status = Command::new(&llvm_as)

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

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

kind of an interesting tradeoff. always recompile the .bc bytecode from the .ll for llvm-v7 or llvm-v19?

@brandonros
brandonrosforce-pushed the cuda13-llvm19 branch 2 times, most recently from dbdee10 to 29d75acCompareMay 2, 2026 13:46
@brandonros
brandonros marked this pull request as ready for review May 2, 2026 14:31
@brandonros

Copy link
Copy Markdown
ContributorAuthor

small overlap with #389

Collapse the per-LLVM duplication in the build script into a single
`LlvmFlavor` struct with two const instances (LLVM7, LLVM19). One
`find_llvm_config`, `find_llvm_as`, `configure_libintrinsics`, and
`rustc_llvm_build` now drive both toolchain paths;
`required_major_llvm_version`, `find_llvm_config_llvm7`,
`find_llvm_config_llvm19`, and `find_llvm_as_llvm19` are gone.
Functional changes that fall out of the refactor:
- Prebuilt LLVM download now works for the `llvm19` feature too, gated on
`USE_PREBUILT_LLVM=1` or as an automatic fallback when no LLVM 19
toolchain is found locally. New `PREBUILT_LLVM_URL_LLVM19` points at
the `llvm-19.1.7` release tag.
- Prebuilt download now supports `linux-x86_64` and `linux-aarch64` in
addition to `windows-x86_64`. The "currently disabled because of
segfaults" note on Linux x86_64 is gone — the prebuild repos that
produce these archives have been refactored to fix the underlying
issue.
- `PREBUILT_LLVM_URL_LLVM7` retagged to lowercase `llvm-7.1.0/` to match
the new release-tag scheme used by the prebuild repos.
- `libintrinsics.bc` is no longer checked in; both LLVM versions now
assemble `libintrinsics.ll` on the fly using the `llvm-as` that ships
next to the resolved `llvm-config`. Removes the only remaining
version-specific branch and means the LLVM 7 path can no longer drift
silently when the `.ll` changes.
The LLVM 7 candidate-search behavior is also slightly stricter:
previously `LLVM_CONFIG` only had to literally start with "7" (matching
7, 70, 700...) and a mismatched env var skipped straight to download;
now major-version match is exact and PATH `llvm-config` is tried as a
fallback before downloading. `USE_PREBUILT_LLVM=1` still forces direct
download.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@brandonros

Copy link
Copy Markdown
ContributorAuthor

@LegNeato could we land please and after i'll rebase #391

@LegNeato
LegNeato added this pull request to the merge queueAug 14, 2026
Merged via the queue into Rust-GPU:main with commit eef9472Aug 14, 2026
20 checks passed
Sign up for freeto 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.

2 participants

@brandonros@LegNeato