From 0673409eaeb497aa20a7cb6afb8e2decaba33fe9 Mon Sep 17 00:00:00 2001 From: Charry Wu Date: Wed, 25 Mar 2026 17:34:58 -0700 Subject: [PATCH 1/6] fix(cust): use bindgen anonymous union for CUmemLocation_st.id on CUDA 13.2 Made-with: Cursor --- crates/cust/src/memory/unified.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/cust/src/memory/unified.rs b/crates/cust/src/memory/unified.rs index c45f5ce3..0f0daa3f 100644 --- a/crates/cust/src/memory/unified.rs +++ b/crates/cust/src/memory/unified.rs @@ -647,7 +647,7 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemPrefetchAsync_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, - id, + __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, }, #[cfg(not(cuMemPrefetchAsync_v2))] id, @@ -693,7 +693,7 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemPrefetchAsync_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, - id, + __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, }, #[cfg(not(cuMemPrefetchAsync_v2))] id, @@ -735,7 +735,7 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemAdvise_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, - id, + __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, }, #[cfg(not(cuMemAdvise_v2))] id, @@ -777,7 +777,7 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemAdvise_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, - id, + __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, }, #[cfg(not(cuMemAdvise_v2))] id, @@ -801,7 +801,7 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemAdvise_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, - id, + __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, }, #[cfg(not(cuMemAdvise_v2))] id, From f6da4826ae6214418e09b45179bb54c0db66f3fe Mon Sep 17 00:00:00 2001 From: Charry Wu Date: Wed, 25 Mar 2026 17:43:27 -0700 Subject: [PATCH 2/6] fix(cust): add cuMemLocation_anon_id cfg guard for CUDA 13.0 compat Made-with: Cursor --- crates/cust/build.rs | 8 ++++++++ crates/cust/src/memory/unified.rs | 15 +++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/crates/cust/build.rs b/crates/cust/build.rs index 1b1f8674..d002cdc6 100644 --- a/crates/cust/build.rs +++ b/crates/cust/build.rs @@ -40,4 +40,12 @@ fn main() { println!("cargo::rustc-cfg=cuGraphGetEdges_v2"); println!("cargo::rustc-cfg=cuCtxCreate_v4"); } + + // In CUDA 13.2 the `id` field in `CUmemLocation_st` was placed inside an anonymous union. + // Bindgen renders this as `__bindgen_anon_1: CUmemLocation_st__bindgen_ty_1` instead of a + // direct `id` field. This cfg gates the struct initialization syntax accordingly. + println!("cargo::rustc-check-cfg=cfg(cuMemLocation_anon_id)"); + if driver_version >= 13020 { + println!("cargo::rustc-cfg=cuMemLocation_anon_id"); + } } diff --git a/crates/cust/src/memory/unified.rs b/crates/cust/src/memory/unified.rs index 0f0daa3f..86829a38 100644 --- a/crates/cust/src/memory/unified.rs +++ b/crates/cust/src/memory/unified.rs @@ -647,7 +647,10 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemPrefetchAsync_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, + #[cfg(cuMemLocation_anon_id)] __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, + #[cfg(not(cuMemLocation_anon_id))] + id, }, #[cfg(not(cuMemPrefetchAsync_v2))] id, @@ -693,7 +696,10 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemPrefetchAsync_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, + #[cfg(cuMemLocation_anon_id)] __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, + #[cfg(not(cuMemLocation_anon_id))] + id, }, #[cfg(not(cuMemPrefetchAsync_v2))] id, @@ -735,7 +741,10 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemAdvise_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, + #[cfg(cuMemLocation_anon_id)] __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, + #[cfg(not(cuMemLocation_anon_id))] + id, }, #[cfg(not(cuMemAdvise_v2))] id, @@ -777,7 +786,10 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemAdvise_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, + #[cfg(cuMemLocation_anon_id)] __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, + #[cfg(not(cuMemLocation_anon_id))] + id, }, #[cfg(not(cuMemAdvise_v2))] id, @@ -801,7 +813,10 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemAdvise_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, + #[cfg(cuMemLocation_anon_id)] __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, + #[cfg(not(cuMemLocation_anon_id))] + id, }, #[cfg(not(cuMemAdvise_v2))] id, From da3e55593c685193cb3d1bf84d55dc2a3fed736b Mon Sep 17 00:00:00 2001 From: Charry Wu Date: Thu, 26 Mar 2026 12:29:34 -0700 Subject: [PATCH 3/6] ci: add CUDA 13.2 build matrix for Windows and Linux - Add container/ubuntu24-cuda132 and container/rockylinux9-cuda132 Dockerfiles based on nvcr.io/nvidia/cuda:13.2.0-cudnn-devel-* images - Add CUDA 13.2.0 entries to container_images.yml (build + manifest) - Comment-out CUDA 13.2.0 entries in ci_linux.yml until container images are published to ghcr.io - Add CUDA 13.2.0 entry to ci_windows.yml; bump Jimver/cuda-toolkit v0.2.29 -> v0.2.30 for 13.2 support Made-with: Cursor --- .github/workflows/ci_linux.yml | 4 ++ .github/workflows/ci_windows.yml | 21 +++++- .github/workflows/container_images.yml | 10 +++ container/rockylinux9-cuda132/Dockerfile | 92 ++++++++++++++++++++++++ container/ubuntu24-cuda132/Dockerfile | 89 +++++++++++++++++++++++ 5 files changed, 215 insertions(+), 1 deletion(-) create mode 100644 container/rockylinux9-cuda132/Dockerfile create mode 100644 container/ubuntu24-cuda132/Dockerfile diff --git a/.github/workflows/ci_linux.yml b/.github/workflows/ci_linux.yml index e756d1a4..9870d259 100644 --- a/.github/workflows/ci_linux.yml +++ b/.github/workflows/ci_linux.yml @@ -40,6 +40,10 @@ jobs: - name: RockyLinux-9 / CUDA-13.0.2 / x86_64 image: "ghcr.io/rust-gpu/rust-cuda-rockylinux9-cuda13:latest" runner: ubuntu-latest + # CUDA 13.2 entries require container images from container_images.yml + # to be published first. Add these back once the images exist on ghcr.io: + # ghcr.io/rust-gpu/rust-cuda-ubuntu24-cuda132:latest + # ghcr.io/rust-gpu/rust-cuda-rockylinux9-cuda132:latest steps: - name: Free up space diff --git a/.github/workflows/ci_windows.yml b/.github/workflows/ci_windows.yml index ca2251b2..feff84ee 100644 --- a/.github/workflows/ci_windows.yml +++ b/.github/workflows/ci_windows.yml @@ -59,13 +59,32 @@ jobs: "nvrtc_dev", "nvvm", # new subpackage in CUDA 13 ] + - os: windows-latest + target: x86_64-pc-windows-msvc + cuda: "13.2.0" + nvvm-dll-dir: "nvvm\\bin\\x64" + sub-packages: + [ + "crt", + "cublas", + "cublas_dev", + "cuda_profiler_api", + "cudart", + "curand", + "curand_dev", + "nvcc", + "nvptxcompiler", + "nvrtc", + "nvrtc_dev", + "nvvm", + ] steps: - name: Checkout repository uses: actions/checkout@v4 - name: Install CUDA - uses: Jimver/cuda-toolkit@v0.2.29 + uses: Jimver/cuda-toolkit@v0.2.30 id: cuda-toolkit with: cuda: ${{ matrix.cuda }} diff --git a/.github/workflows/container_images.yml b/.github/workflows/container_images.yml index 4fe650bd..88ff8da2 100644 --- a/.github/workflows/container_images.yml +++ b/.github/workflows/container_images.yml @@ -42,6 +42,12 @@ jobs: - name: RockyLinux-9/CUDA-13.0.2 image: "rust-gpu/rust-cuda-rockylinux9-cuda13" dockerfile: ./container/rockylinux9-cuda13/Dockerfile + - name: Ubuntu-24.04/CUDA-13.2.0 + image: "rust-gpu/rust-cuda-ubuntu24-cuda132" + dockerfile: ./container/ubuntu24-cuda132/Dockerfile + - name: RockyLinux-9/CUDA-13.2.0 + image: "rust-gpu/rust-cuda-rockylinux9-cuda132" + dockerfile: ./container/rockylinux9-cuda132/Dockerfile steps: - name: Free up space # Without this the job will likely run out of disk space. @@ -165,6 +171,10 @@ jobs: image: "rust-gpu/rust-cuda-rockylinux9-cuda12" - name: RockyLinux-9/CUDA-13.0.2 image: "rust-gpu/rust-cuda-rockylinux9-cuda13" + - name: Ubuntu-24.04/CUDA-13.2.0 + image: "rust-gpu/rust-cuda-ubuntu24-cuda132" + - name: RockyLinux-9/CUDA-13.2.0 + image: "rust-gpu/rust-cuda-rockylinux9-cuda132" steps: - name: Set artifact name run: | diff --git a/container/rockylinux9-cuda132/Dockerfile b/container/rockylinux9-cuda132/Dockerfile new file mode 100644 index 00000000..15b64d5e --- /dev/null +++ b/container/rockylinux9-cuda132/Dockerfile @@ -0,0 +1,92 @@ +FROM nvcr.io/nvidia/cuda:13.2.0-cudnn-devel-rockylinux9 AS llvm-builder + +RUN dnf -y install \ + --nobest \ + --allowerasing \ + --setopt=install_weak_deps=False \ + openssl-devel \ + pkgconfig \ + which \ + xz \ + zlib-devel \ + libffi-devel \ + ncurses-devel \ + libxml2-devel \ + libedit-devel \ + python3 \ + make \ + cmake && \ + dnf clean all + +WORKDIR /data/llvm7 + +# Download and build LLVM 7.1.0 for all architectures. +RUN curl -sSf -L -O https://github.com/llvm/llvm-project/releases/download/llvmorg-7.1.0/llvm-7.1.0.src.tar.xz && \ + tar -xf llvm-7.1.0.src.tar.xz && \ + cd llvm-7.1.0.src && \ + mkdir build && cd build && \ + ARCH=$(uname -m) && \ + if [ "$ARCH" = "x86_64" ]; then \ + TARGETS="X86;NVPTX"; \ + else \ + TARGETS="AArch64;NVPTX"; \ + fi && \ + cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_TARGETS_TO_BUILD="$TARGETS" \ + -DLLVM_BUILD_LLVM_DYLIB=ON \ + -DLLVM_LINK_LLVM_DYLIB=ON \ + -DLLVM_ENABLE_ASSERTIONS=OFF \ + -DLLVM_ENABLE_BINDINGS=OFF \ + -DLLVM_INCLUDE_EXAMPLES=OFF \ + -DLLVM_INCLUDE_TESTS=OFF \ + -DLLVM_INCLUDE_BENCHMARKS=OFF \ + -DLLVM_ENABLE_ZLIB=ON \ + -DLLVM_ENABLE_TERMINFO=ON \ + -DCMAKE_INSTALL_PREFIX=/opt/llvm-7 \ + .. && \ + make -j$(nproc) && \ + make install && \ + cd ../.. && \ + rm -rf llvm-7.1.0.src* && \ + dnf clean all + +FROM nvcr.io/nvidia/cuda:13.2.0-cudnn-devel-rockylinux9 + +RUN dnf -y install \ + --nobest \ + --allowerasing \ + --setopt=install_weak_deps=False \ + clang \ + openssl-devel \ + fontconfig-devel \ + libX11-devel \ + libXcursor-devel \ + libXi-devel \ + libXrandr-devel \ + libxml2-devel \ + ncurses-devel \ + pkgconfig \ + which \ + xz \ + zlib-devel \ + cmake && \ + dnf clean all + +COPY --from=llvm-builder /opt/llvm-7 /opt/llvm-7 +RUN ln -s /opt/llvm-7/bin/llvm-config /usr/bin/llvm-config && \ + ln -s /opt/llvm-7/bin/llvm-config /usr/bin/llvm-config-7 + +# Get Rust (install rustup; toolchain installed from rust-toolchain.toml below) +RUN curl -sSf -L https://sh.rustup.rs | bash -s -- -y --profile minimal --default-toolchain none +ENV PATH="/root/.cargo/bin:${PATH}" + +# Setup the workspace +WORKDIR /data/rust-cuda +RUN --mount=type=bind,source=rust-toolchain.toml,target=/data/rust-cuda/rust-toolchain.toml \ + rustup show + +# Add nvvm to LD_LIBRARY_PATH. +ENV LD_LIBRARY_PATH="/usr/local/cuda/nvvm/lib64:${LD_LIBRARY_PATH}" +ENV LLVM_LINK_STATIC=1 +ENV RUST_LOG=info diff --git a/container/ubuntu24-cuda132/Dockerfile b/container/ubuntu24-cuda132/Dockerfile new file mode 100644 index 00000000..422928a5 --- /dev/null +++ b/container/ubuntu24-cuda132/Dockerfile @@ -0,0 +1,89 @@ +FROM nvcr.io/nvidia/cuda:13.2.0-cudnn-devel-ubuntu24.04 AS llvm-builder + +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -qq -y install \ + build-essential \ + clang \ + curl \ + libffi-dev \ + libedit-dev \ + libncurses5-dev \ + libssl-dev \ + libtinfo-dev \ + libxml2-dev \ + cmake \ + ninja-build \ + pkg-config \ + python3 \ + xz-utils \ + zlib1g-dev && \ + rm -rf /var/lib/apt/lists/* + +WORKDIR /data/llvm7 + +# Download and build LLVM 7.1.0 for all architectures. +RUN curl -sSf -L -O https://github.com/llvm/llvm-project/releases/download/llvmorg-7.1.0/llvm-7.1.0.src.tar.xz && \ + tar -xf llvm-7.1.0.src.tar.xz && \ + cd llvm-7.1.0.src && \ + mkdir build && cd build && \ + ARCH=$(dpkg --print-architecture) && \ + if [ "$ARCH" = "amd64" ]; then \ + TARGETS="X86;NVPTX"; \ + else \ + TARGETS="AArch64;NVPTX"; \ + fi && \ + cmake -G Ninja \ + -DCMAKE_BUILD_TYPE=Release \ + -DLLVM_TARGETS_TO_BUILD="$TARGETS" \ + -DLLVM_BUILD_LLVM_DYLIB=ON \ + -DLLVM_LINK_LLVM_DYLIB=ON \ + -DLLVM_ENABLE_ASSERTIONS=OFF \ + -DLLVM_ENABLE_BINDINGS=OFF \ + -DLLVM_INCLUDE_EXAMPLES=OFF \ + -DLLVM_INCLUDE_TESTS=OFF \ + -DLLVM_INCLUDE_BENCHMARKS=OFF \ + -DLLVM_ENABLE_ZLIB=ON \ + -DLLVM_ENABLE_TERMINFO=ON \ + -DCMAKE_INSTALL_PREFIX=/opt/llvm-7 \ + .. && \ + ninja -j$(nproc) && \ + ninja install && \ + cd ../.. && \ + rm -rf llvm-7.1.0.src* + +FROM nvcr.io/nvidia/cuda:13.2.0-cudnn-devel-ubuntu24.04 + +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get -qq -y install \ + build-essential \ + clang \ + curl \ + libssl-dev \ + libtinfo-dev \ + pkg-config \ + xz-utils \ + zlib1g-dev \ + cmake \ + libfontconfig-dev \ + libx11-xcb-dev \ + libxcursor-dev \ + libxi-dev \ + libxinerama-dev \ + libxrandr-dev && \ + rm -rf /var/lib/apt/lists/* + +COPY --from=llvm-builder /opt/llvm-7 /opt/llvm-7 +RUN ln -s /opt/llvm-7/bin/llvm-config /usr/bin/llvm-config && \ + ln -s /opt/llvm-7/bin/llvm-config /usr/bin/llvm-config-7 + +# Get Rust (install rustup; toolchain installed from rust-toolchain.toml below) +RUN curl -sSf -L https://sh.rustup.rs | bash -s -- -y --profile minimal --default-toolchain none +ENV PATH="/root/.cargo/bin:${PATH}" + +# Setup the workspace +WORKDIR /data/rust-cuda +RUN --mount=type=bind,source=rust-toolchain.toml,target=/data/rust-cuda/rust-toolchain.toml \ + rustup show + +# Add nvvm to LD_LIBRARY_PATH. +ENV LD_LIBRARY_PATH="/usr/local/cuda/nvvm/lib64:${LD_LIBRARY_PATH}" +ENV LLVM_LINK_STATIC=1 +ENV RUST_LOG=info From cb2f57906e1424d9db297183f79f11aeb05836f2 Mon Sep 17 00:00:00 2001 From: Charry Wu Date: Wed, 25 Mar 2026 17:34:58 -0700 Subject: [PATCH 4/6] fix(cust): use bindgen anonymous union for CUmemLocation_st.id on CUDA 13.2 Made-with: Cursor --- crates/cust/src/memory/unified.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/crates/cust/src/memory/unified.rs b/crates/cust/src/memory/unified.rs index c45f5ce3..0f0daa3f 100644 --- a/crates/cust/src/memory/unified.rs +++ b/crates/cust/src/memory/unified.rs @@ -647,7 +647,7 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemPrefetchAsync_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, - id, + __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, }, #[cfg(not(cuMemPrefetchAsync_v2))] id, @@ -693,7 +693,7 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemPrefetchAsync_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, - id, + __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, }, #[cfg(not(cuMemPrefetchAsync_v2))] id, @@ -735,7 +735,7 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemAdvise_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, - id, + __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, }, #[cfg(not(cuMemAdvise_v2))] id, @@ -777,7 +777,7 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemAdvise_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, - id, + __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, }, #[cfg(not(cuMemAdvise_v2))] id, @@ -801,7 +801,7 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemAdvise_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, - id, + __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, }, #[cfg(not(cuMemAdvise_v2))] id, From db5be61314a48642eaf5b0eadc5ce1653d932e8a Mon Sep 17 00:00:00 2001 From: Charry Wu Date: Wed, 25 Mar 2026 17:43:27 -0700 Subject: [PATCH 5/6] fix(cust): add cuMemLocation_anon_id cfg guard for CUDA 13.0 compat Made-with: Cursor --- crates/cust/build.rs | 8 ++++++++ crates/cust/src/memory/unified.rs | 15 +++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/crates/cust/build.rs b/crates/cust/build.rs index 1b1f8674..d002cdc6 100644 --- a/crates/cust/build.rs +++ b/crates/cust/build.rs @@ -40,4 +40,12 @@ fn main() { println!("cargo::rustc-cfg=cuGraphGetEdges_v2"); println!("cargo::rustc-cfg=cuCtxCreate_v4"); } + + // In CUDA 13.2 the `id` field in `CUmemLocation_st` was placed inside an anonymous union. + // Bindgen renders this as `__bindgen_anon_1: CUmemLocation_st__bindgen_ty_1` instead of a + // direct `id` field. This cfg gates the struct initialization syntax accordingly. + println!("cargo::rustc-check-cfg=cfg(cuMemLocation_anon_id)"); + if driver_version >= 13020 { + println!("cargo::rustc-cfg=cuMemLocation_anon_id"); + } } diff --git a/crates/cust/src/memory/unified.rs b/crates/cust/src/memory/unified.rs index 0f0daa3f..86829a38 100644 --- a/crates/cust/src/memory/unified.rs +++ b/crates/cust/src/memory/unified.rs @@ -647,7 +647,10 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemPrefetchAsync_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, + #[cfg(cuMemLocation_anon_id)] __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, + #[cfg(not(cuMemLocation_anon_id))] + id, }, #[cfg(not(cuMemPrefetchAsync_v2))] id, @@ -693,7 +696,10 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemPrefetchAsync_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, + #[cfg(cuMemLocation_anon_id)] __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, + #[cfg(not(cuMemLocation_anon_id))] + id, }, #[cfg(not(cuMemPrefetchAsync_v2))] id, @@ -735,7 +741,10 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemAdvise_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, + #[cfg(cuMemLocation_anon_id)] __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, + #[cfg(not(cuMemLocation_anon_id))] + id, }, #[cfg(not(cuMemAdvise_v2))] id, @@ -777,7 +786,10 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemAdvise_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, + #[cfg(cuMemLocation_anon_id)] __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, + #[cfg(not(cuMemLocation_anon_id))] + id, }, #[cfg(not(cuMemAdvise_v2))] id, @@ -801,7 +813,10 @@ pub trait MemoryAdvise: private::Sealed { #[cfg(cuMemAdvise_v2)] driver_sys::CUmemLocation { type_: driver_sys::CUmemLocationType::CU_MEM_LOCATION_TYPE_DEVICE, + #[cfg(cuMemLocation_anon_id)] __bindgen_anon_1: driver_sys::CUmemLocation_st__bindgen_ty_1 { id }, + #[cfg(not(cuMemLocation_anon_id))] + id, }, #[cfg(not(cuMemAdvise_v2))] id, From 7c94de8079912f9231c5fe21ece4dfaeece4bd69 Mon Sep 17 00:00:00 2001 From: Charry Wu Date: Sun, 5 Apr 2026 14:43:09 -0700 Subject: [PATCH 6/6] ci(windows): bump Jimver/cuda-toolkit to v0.2.35 for CUDA 13.2 support Made-with: Cursor --- .github/workflows/ci_windows.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci_windows.yml b/.github/workflows/ci_windows.yml index feff84ee..3274a5e5 100644 --- a/.github/workflows/ci_windows.yml +++ b/.github/workflows/ci_windows.yml @@ -84,7 +84,7 @@ jobs: uses: actions/checkout@v4 - name: Install CUDA - uses: Jimver/cuda-toolkit@v0.2.30 + uses: Jimver/cuda-toolkit@v0.2.35 id: cuda-toolkit with: cuda: ${{ matrix.cuda }}