Skip to content

Fix #765: make CUDA builds work again#783

Merged
mhucka merged 12 commits into
masterfrom
mh-cuda
Jun 19, 2025
Merged

Fix #765: make CUDA builds work again#783
mhucka merged 12 commits into
masterfrom
mh-cuda

Conversation

@mhucka
Copy link
Copy Markdown
Collaborator

@mhucka mhucka commented Jun 18, 2025

The key fixes for CUDA support to certain CMakeLists.txt files were originally done by @fdmalone and involved avoiding deprecated constructs for finding the CUDA rules and configurations.

This PR additionally updates all the CMake files in various ways:

  • Raise minimum Python version to 3.10 to match what is required in other files
  • Update the top-level CMakeLists.txt file to use more recent symbols like CMAKE_APPLE_SILICON_PROCESSOR
  • Fix setup.py to not set -DCMAKE_CUDA_COMPILER unconditionally

This fixes #765

mhucka and others added 6 commits June 18, 2025 18:25
This is to match 3.10 specified elsewhere.
The higher-level CMakeLists.txt file sets the value already, so it's
unnecessary (and bad) to set it in these submakefiles.
These fixes were originally created by @fdmalone.

This replaces `cuda_add_library()` with `add_library()` and makes
other adjustments, per current practice described in CMake docs.
Changes, in no particular order:

* Use `CMAKE_APPLE_SILICON_PROCESSOR`, a built-in symbol in recent
  versions of CMake, instead of creating our own for the same purpose.

* Add `check_language(CUDA)` to detect CUDA.

* Add some `message()`s to print info helpful for debugging.
We mustn't set `-DCMAKE_CUDA_COMPILER` if we don't have `nvcc` on the
current system. The previous code added the flag unconditionally.
@mhucka mhucka marked this pull request as ready for review June 18, 2025 19:08
Copy link
Copy Markdown
Collaborator

@fdmalone fdmalone left a comment

Choose a reason for hiding this comment

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

Thanks!

@mhucka mhucka enabled auto-merge (squash) June 18, 2025 21:44
mhucka and others added 5 commits June 19, 2025 16:01
When running cibuildwheel 2.23.3 runs under Python 3.12, the following
warning would show up in the logs:

```
  /tmp/pip-build-env-ucihqcl8/overlay/lib/python3.12/site-packages/setuptools/dist.py:759:
  SetuptoolsDeprecationWarning: License classifiers are deprecated.
  !!

          ********************************************************************************
          Please consider removing the following classifiers in favor
          of a SPDX license expression:

          License :: OSI Approved :: Apache Software License

          See
          https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license
          for details.
          ********************************************************************************
```

This commit removes the license classifier and updates the `license`
keyword to use the SPDX license id.
If the environment didn't already have CMake installed (as happens
with a `pip install .` in a fresh venv), then things failed weirdly.
Turns out that `detect_language()` isn't enough; `enable_language()`
is needed.
Installation via `pip install .` failed in environmwents where the
user has not installed `requirements.txt` and `dev-requirements.txt`.
The failures had to do with CMake either being the wrong version or
not having the CMake CUDA support files. Setup needs to install some
critical packages before things will work.
@mhucka mhucka merged commit 6037dc7 into master Jun 19, 2025
48 checks passed
@mhucka mhucka deleted the mh-cuda branch June 19, 2025 22:38
Sign up for free to 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.

CMake 3.31 breaks cuda build of qsim

3 participants