Skip to content
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

[FEA]: Introduce Python module with CCCL headers #2281

Open
1 task done
gevtushenko opened this issue Aug 23, 2024 · 2 comments · May be fixed by #3201
Open
1 task done

[FEA]: Introduce Python module with CCCL headers #2281

gevtushenko opened this issue Aug 23, 2024 · 2 comments · May be fixed by #3201
Assignees
Labels
2.8.0 target for 2.8.0 release feature request New feature or request.

Comments

@gevtushenko
Copy link
Collaborator

gevtushenko commented Aug 23, 2024

Is this a duplicate?

Area

General CCCL

Is your feature request related to a problem? Please describe.

As of today, CCCL provides two Python modules: cuda.cooperative and cuda.parallel. Both modules have to package all C++ headers. This creates duplication.

Describe the solution you'd like

We have to extract CCCL headers into a standalone Python module for further reuse in cuda.cooperative and cuda.parallel. While doing so, we have to make sure that cuda.parallel and cuda.cooperative packages are version locked with cccl headers package. This will likely involve fixing CI script https://github.com/NVIDIA/cccl/blob/main/ci/test_pycuda.sh to install cccl headers before cuda.cooperative and also updating the https://github.com/NVIDIA/cccl/blob/main/ci/update_version.sh to implement version locking.

Describe alternatives you've considered

No response

Additional context

No response

@gevtushenko gevtushenko added the feature request New feature or request. label Aug 23, 2024
@github-project-automation github-project-automation bot moved this to Todo in CCCL Aug 23, 2024
@leofang
Copy link
Member

leofang commented Aug 30, 2024

Since we already have an official way to copy headers with CMake and it is utilized in building the cccl package on conda-forge, we should do the same for the standalone CCCL wheel. Using scikit-build-core will be able for us to reuse the same CMake infrastructure.

@rwgk
Copy link
Contributor

rwgk commented Dec 19, 2024

@shwina for awareness.

I just created Draft PR #3201. I tried to keep this really simple, but I'm running into two problems. Copy-pasting the current PR description:

  • pip install --editable does not work (anymore).

  • pip install ./cuda_cccl needs to be run manually before running pip install ./cuda_parallel or ./cuda_cooperative

    • "cuda-cccl @ file://../cuda_cccl" in setup.py does not work (in a CCCL Dev Container): ValueError: non-local file URIs are not supported on this platform: 'file://../cuda_cccl'

I'll try to solve the pip install --editable problem first, because it's really important for development agility.

I think the best solution is to make cuda.cccl_headers (or some other name) importable as a Python module, and to move the get_paths() function there.

@cccl-authenticator-app cccl-authenticator-app bot moved this from In Progress to In Review in CCCL Dec 20, 2024
@cccl-authenticator-app cccl-authenticator-app bot moved this from In Review to In Progress in CCCL Dec 20, 2024
@cccl-authenticator-app cccl-authenticator-app bot moved this from In Progress to In Review in CCCL Dec 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2.8.0 target for 2.8.0 release feature request New feature or request.
Projects
Status: In Review
Development

Successfully merging a pull request may close this issue.

4 participants