Skip to content

Convert nvcomp-feedstock to Python API feedstock #23

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
Jul 23, 2025

Conversation

carterbox
Copy link
Member

@carterbox carterbox commented Jul 15, 2025

Checklist

  • Used a personal fork of the feedstock to propose changes
  • Bumped the build number (if the version is unchanged)
  • Reset the build number to 0 (if the version changed)
  • Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
  • Ensured the license file is being packaged.

This feedstock now ships the python API of nvcomp by revending the python modules from PYPI wheels. The C API is stripped from the wheels, and instead we depend on libnvcomp-dev from the new libnvcomp-feedstock. The libnvcomp-feedstock repackages the binaries and cmake files from the redist tarball.

Closes #22
Closes #24
Closes #21
Closes #20

@carterbox carterbox requested a review from a team as a code owner July 15, 2025 16:56
@conda-forge-admin
Copy link
Contributor

conda-forge-admin commented Jul 15, 2025

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.

I do have some suggestions for making it better though...

For recipe/meta.yaml:

  • ℹ️ No valid build backend found for Python recipe for package nvcomp using pip. Python recipes using pip need to explicitly specify a build backend in the host section. If your recipe has built with only pip in the host section in the past, you likely should add setuptools to the host section of your recipe.

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/16381732656. Examine the logs at this URL for more detail.

- arm-variant * {{ arm_variant_type }} # [aarch64]
- cf-nvidia-tools 1 # [linux]
- cf-nvidia-tools 1.* # [linux]
- cross-python_{{ target_platform }} # [build_platform != target_platform]
Copy link
Contributor

Choose a reason for hiding this comment

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

I am curious where cross-python_{{ target_platform }} comes into play?

Copy link
Member Author

Choose a reason for hiding this comment

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

This recipe is using the cross-target conda-forge infrastructure to create the aarch64 package. It doesn't matter that we aren't actually compiling anything. We have to pretend that we are actually building from source because there could be side effects from the cross-python package.

carterbox and others added 5 commits July 18, 2025 17:43
CUDA 12.8 added support for architectures `sm_100`, `sm_101` and `sm_120`,
while CUDA 12.9 further added `sm_103` and `sm_121`. To build for these,
maintainers will need to modify their existing list of specified architectures
(e.g. `CMAKE_CUDA_ARCHITECTURES`, `TORCH_CUDA_ARCH_LIST`, etc.)
for their package. A good balance between broad support and storage
footprint (resp. compilation time) is to add `sm_100` and `sm_120`.

Since CUDA 12.8, the conda-forge nvcc package now sets `CUDAARCHS` and
`TORCH_CUDA_ARCH_LIST` in its activation script to a string containing all
of the supported real architectures plus the virtual architecture of the
latest. Recipes for packages who use these variables to control their build
but do not want to build for all supported architectures will need to override
these variables in their build script.

ref: https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html#new-features
@carterbox carterbox changed the title DNM: Python recipe prototype Convert nvcomp-feedstock to Python API feedstock Jul 18, 2025
@carterbox
Copy link
Member Author

This PR is ready, but it's Friday, and we should wait until RAPIDS is ready. @bdice, could you please post here or merge once RAPIDS has migrated/repodata-patched it's packages to use libnvcomp where appropriate? I can also make backports of libnvcomp if you want older versions of that package available.

@bdice
Copy link
Contributor

bdice commented Jul 20, 2025

Here are PRs to RAPIDS packages that use libnvcomp. Once these are in, this change can be merged.

@bdice
Copy link
Contributor

bdice commented Jul 23, 2025

@carterbox The RAPIDS changes are now merged. It should be fine to update nvcomp to be the Python library now.

@carterbox carterbox merged commit e255600 into conda-forge:main Jul 23, 2025
15 checks passed
@carterbox carterbox deleted the python branch July 23, 2025 16:16
weiji14 added a commit to pangeo-data/ncar-hackathon-xarray-on-gpus that referenced this pull request Jul 24, 2025
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.

Request for packaging Python bindings Switch to cross-compilation for Linux ARM (linux_aarch64)
5 participants