Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,11 @@ set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS_INIT} ${CMAKE_CUDA_FLAGS}")
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --ptxas-options=-v")
# debug info
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --generate-line-info")
# Compute-capability 7.5+, to support Github T4 runner
# https://developer.nvidia.com/cuda-gpus
set(CMAKE_CUDA_ARCHITECTURES 75)
# Build native SASS for every GPU we deploy on. Shipping a native cubin per
# arch avoids relying on PTX JIT at load time -- a JIT only happens when no
# cubin matches the device, and it requires a driver at least as new as the
# build toolkit.
set(CMAKE_CUDA_ARCHITECTURES 75 89 90)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action required

1. Unpinned cmake for sm_90 🐞 Bug ☼ Reliability

The PR adds sm_89/sm_90 to CMAKE_CUDA_ARCHITECTURES, but the wheel build configuration doesn’t
install/pin CMake, so the build can fail depending on the builder image’s preinstalled CMake
version. This makes wheel/CI builds fragile and environment-dependent after this change.
Agent Prompt
## Issue description
The project now hard-codes `CMAKE_CUDA_ARCHITECTURES` to include `89` and `90`, but the wheel build flow does not explicitly install CMake (nor a minimum version). As a result, the wheel build may succeed or fail depending on the CMake version baked into the manylinux/builder image.

## Issue Context
- CMake is a build-time dependency and the repo already treats it as such in developer workflows (e.g., `make compile`).
- `cibuildwheel` installs `scikit-build-core`, `nanobind`, and `ninja`, but not `cmake`.

## Fix Focus Areas
- Add `cmake` (with a minimum version) to the build environment used for wheel builds (and ideally to PEP517 build requirements too).

### Recommended changes
1. Update `pyproject.toml`:
   - Add `cmake>=<min_version>` (and optionally `ninja`) to `[build-system].requires`, **or**
   - Add `cmake>=<min_version>` to `[tool.cibuildwheel].before-build` (since you already install other build tools there).
2. Keep versions aligned with the CUDA builder images used in CI.

## Fix Focus Areas (exact locations)
- pyproject.toml[1-3]
- pyproject.toml[230-252]
- CMakeLists.txt[55-68]
- Makefile[42-50]

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

unhelpful


# nanobind requires GCC 8+
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
Expand Down
Loading