Repository navigation
fix(ep-plugins): build nxrt-ep-cuda on manylinux image + required CUDA 13 deps - #824
Merged
Merged
Conversation
The cuda wheel job failed because nvidia/cuda:13.0.0-devel-ubi9 is not a
manylinux image and lacks cibuildwheel's /opt/python CPython toolchains
("'/opt/python/cp310-cp310/bin/python' executable doesn't exist").
Switch CIBW_MANYLINUX_X86_64_IMAGE to the same PyPA manylinux image the cpu job
uses (quay.io/pypa/manylinux_2_28_x86_64:2026.07.25-1). No CUDA toolkit is
installed: onnx-runtime-ep-cuda binds CUDA via cudarc dynamic-loading, so
'cargo build --features cuda' needs no nvcc/headers and no GPU (libs are
dlopen'd at runtime). Verified by building the plugin + wheel inside that exact
image with no toolkit: the bundled .so links no CUDA libraries, auditwheel
retags it manylinux_2_28_x86_64, and import + get_library_path() succeed.
Removes the now-irrelevant DXCORE mount var; keeps the auditwheel CUDA excludes
as a defensive no-op. CPU job/package unchanged; cuda/publish-cuda stay
independent from cpu.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
justinchuby
added a commit
that referenced
this pull request
Aug 12, 2026
…detail (#825) Justin asked to update `docs/PROGRESS.md` with the latest progress and drop stale info. It had grown to **1166 lines** of day-by-day changelog spanning 2026-07-15 → 2026-07-27, with the entire recent arc missing. ## Changes (1166 → 303 lines) - **Added recent milestones (2026-07-28 → 2026-08-12), newest-first:** - EP plugins run inside ORT via the plugin-EP C ABI (#762) and ship on PyPI — **`nxrt-ep-cpu` + `nxrt-ep-cuda` 0.1.0.dev5 both LIVE** (#819/#824/#820). - Absent-optional-output memory-safety wave (#762 review; Miri-clean). - VMM / KV-layout / offload / batching residency wave — managed no-spill VMM default, layout-governed KV floor (768× reduction), offload+capture coexist, #736 over-reservation audit (#755–#814). - Issue triage + autonomous fixes (#784/#785/#786/#788/#789); CPU-EP TopK correctness+perf (#774/#775). - Qwen3.5/3.6-27B hybrid Gated-DeltaNet native CUDA (#779); GLM-4-9B + DeepSeek-V2-Lite native + ORT 1.28 3-config fairness (#766/#770/#771). - Fused QMoE decode kernel + QMoE arc concluded; CUDA-graph capture trilogy, version-selectable CUDA (#708/#728/#757/#760), megakernel study (#769). - **Compressed stale detail:** the ~40 dated July day-by-day sections + verbose diffusion/LoRA/ORT2 narrative collapsed into a ~35-line "Foundational milestones" spine; superseded perf-wave numbers dropped; §1–§40 table condensed to a compact grid. - **Header refreshed:** last-updated → 2026-08-12; Published line now lists both EP plugins on PyPI + Miri CI. - **Preserved & updated** the DeepSeek/GLM known-gaps checklists and added new open items. Docs-only; full narrative remains in `.squad/decisions-archive/` and `docs/benchmarks/`. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
🔴 Benchmark Regression DetectedComparison of criterion micro-benchmarks: PR head vs merge-base, measured on the same runner in the same job (base first → PR second).
Visual flags: Host infoWhat this cannot catch
|
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.
Fixes the
nxrt-ep-cudawheel job (failed in the first publish run) and makes the NVIDIA runtime wheels required dependencies.Build fix
The CUDA job used
nvidia/cuda:13.0.0-devel-ubi9, which is not a manylinux image — it lacks cibuildwheel's/opt/python/*CPython toolchains:Switched the CUDA job to the same PyPA manylinux image as the CPU job (
quay.io/pypa/manylinux_2_28_x86_64). No CUDA toolkit is installed:onnx-runtime-ep-cudabinds CUDA via cudarc'sdynamic-loading, socargo build --features cudaneeds no nvcc/headers/GPU — CUDA libs are dlopen'd at runtime. Verified inside the real image:cargo build --features cudaOK,readelf -dshows the.solinks zero CUDA libs,auditwheel repair→py3-none-manylinux_2_28_x86_64,pip install+import nxrt_ep_cudaOK.Required CUDA 13 dependencies
The four NVIDIA runtime wheels are required deps (not an extra), so
pip install nxrt-ep-cudapulls them automatically:Uses the unsuffixed names — verified on PyPI these are the real CUDA 13 wheels (
nvidia-cuda-runtime13.3.29 etc.); the-cu13-suffixed names are0.0.1placeholder stubs.<14locks the CUDA 13 major.CPU job/package untouched.
cpu/cudajobs remain fully independent.Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com