-
Notifications
You must be signed in to change notification settings - Fork 101
feat: Add ak.sort() for CUDA backend
#3750
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
base: main
Are you sure you want to change the base?
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files
🚀 New features to boost your workflow:
|
ak.sort() for CUDA backendak.sort() for CUDA backend
|
The documentation preview is ready to be viewed at http://preview.awkward-array.org.s3-website.us-east-1.amazonaws.com/PR3750 |
ianna
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@shwina - this is great! Thanks for implementing it. Let’s keep it open and discuss.
| strategy: | ||
| fail-fast: false | ||
| matrix: | ||
| cuda-version: | ||
| - 11 | ||
| - 12 | ||
| - 13 | ||
|
|
||
| steps: | ||
| - name: Clean the workspace and mamba | ||
| run: | | ||
| rm -rf * .[!.]* || echo "Nothing to clean" | ||
| rm -rf ~/micromamba* || echo "Nothing to clean" | ||
| - uses: actions/checkout@v6 | ||
| with: | ||
| submodules: true | ||
|
|
||
| - name: Get micromamba | ||
| uses: mamba-org/setup-micromamba@v2 | ||
| with: | ||
| environment-name: test-env | ||
| init-shell: bash | ||
| create-args: >- | ||
| -c rapidsai | ||
| -c nvidia | ||
| python=3.13 | ||
| cccl-python | ||
| cudf | ||
| cupy | ||
| cuda-version=${{ matrix.cuda-version }} | ||
| cuda-toolkit | ||
| cxx-compiler |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
| strategy: | |
| fail-fast: false | |
| matrix: | |
| cuda-version: [11, 12, 13] | |
| steps: | |
| - name: Clean the workspace and mamba | |
| run: | | |
| rm -rf * .[!.]* || echo "Nothing to clean" | |
| rm -rf ~/micromamba* || echo "Nothing to clean" | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - name: Get micromamba (CUDA <= 11) | |
| if: ${{ matrix.cuda-version < 12 }} | |
| uses: mamba-org/setup-micromamba@v2 | |
| with: | |
| environment-name: test-env | |
| init-shell: bash | |
| create-args: >- | |
| -c rapidsai | |
| -c nvidia | |
| python=3.13 | |
| cudf | |
| cupy | |
| cuda-version=${{ matrix.cuda-version }} | |
| cuda-toolkit | |
| cxx-compiler | |
| - name: Get micromamba (CUDA >= 12, add cccl-python) | |
| if: ${{ matrix.cuda-version >= 12 }} | |
| uses: mamba-org/setup-micromamba@v2 | |
| with: | |
| environment-name: test-env | |
| init-shell: bash | |
| create-args: >- | |
| -c rapidsai | |
| -c nvidia | |
| python=3.13 | |
| cccl-python | |
| cudf | |
| cupy | |
| cuda-version=${{ matrix.cuda-version }} | |
| cuda-toolkit | |
| cxx-compiler |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here is a hopefully correct fixed matrix that installs cccl-python only when CUDA ≥ 12, and avoids the solver error when CUDA = 11.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ariostas - given that we still want to use CUDA 11.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm guessing CUDA 11 is EOL? I couldn't find any specific timeline, but @shwina would know. If that's the case let's just remove it and move on with 12 and 13.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like it is EOL - looking at https://docs.nvidia.com/datacenter/tesla/drivers/supported-drivers-and-cuda-toolkit-versions.html and specifically the Note: All other previous driver branches not listed in the table above (such as R575, R565, R560, R550, R525, R515, R510, R495, R465, R460, R455, R450, R440, R418, R410) are end of life.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Would it be preferable to open a separate PR to remove CUDA 11 from the build/test matrix?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I think it is a good idea!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I opened #3758. If/when that is merged, I can revert some of the CUDA 11 handling introduced in this PR.
173b048 to
8fbd26f
Compare
8fbd26f to
f434568
Compare
Closes #3749.
Following the study #3748, this PR adds support for
ak.sort()for the CUDA backend, using https://nvidia.github.io/cccl/python/compute.html.