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

[RELEASE] kvikio v25.02 #627

Merged
merged 29 commits into from
Feb 13, 2025
Merged

[RELEASE] kvikio v25.02 #627

merged 29 commits into from
Feb 13, 2025

Conversation

raydouglass
Copy link
Member

❄️ Code freeze for branch-25.02 and v25.02 release

What does this mean?

Only critical/hotfix level issues should be merged into branch-25.02 until release (merging of this PR).

What is the purpose of this PR?

  • Update documentation
  • Allow testing for the new release
  • Enable a means to merge branch-25.02 into main for the release

raydouglass and others added 28 commits November 15, 2024 09:28
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
This PR is intended to add initial support for Java binding to GDS as part of the KvikIO library. In this PR are the minimal set of bindings required to support synchronous read and write IO operations via GDS as well as a single example to demonstrate how the bindings can be used alongside other CUDA libraries, such as JCuda. Full support for the GDS CuFile API, including batch and asynchronous IO, has not yet been implemented and more sophisticated error/exception handling is not yet in place. There is a README located within kvikio/java detailing how this new functionality can be compiled and built locally, along with detailed instructions on how to run the included usage example.

Authors:
  - Alex Sloboda (https://github.com/aslobodaNV)
  - https://github.com/jakirkham
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - Robert (Bobby) Evans (https://github.com/revans2)
  - Mads R. B. Kristensen (https://github.com/madsbk)
  - Bradley Dice (https://github.com/bdice)

URL: #396
Forward-merge branch-24.12 into branch-25.02
By default, CI runs on draft PRs. This leads to many CI runs that may be unnecessary.

With this PR's change to `.github/copy-pr-bot.yaml`, an `/ok to test` comment from a trusted user is required to trigger CI on draft PRs. Non-draft PRs will run CI by default, assuming that all commits are signed by trusted users. Otherwise an `/ok to test` is required (as before) -- see the `copy-pr-bot` docs at https://docs.gha-runners.nvidia.com/apps/copy-pr-bot/ for more information.

Part of rapidsai/build-planning#123.

Authors:
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - James Lamb (https://github.com/jameslamb)

URL: #563
Now that some upstream bugs have been fixed, we can allow cuda-python 12.6.2 and 11.8.5.

See NVIDIA/cuda-python#226 (comment) for more information.

Authors:
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - James Lamb (https://github.com/jameslamb)

URL: #564
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
We require a newer cuda-python lower bound for new features and to use the new layout.
This will fix a number of errors observed when the runtime version of cuda-python is older than the version used to build packages using Cython features from cuda-python.

See rapidsai/build-planning#117 (comment) for details.

Authors:
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - James Lamb (https://github.com/jameslamb)

URL: #573
This PR adjusts the behavior of the file handle's compatibility mode to make it more consistent with its naming, i.e. `AUTO` actively falls back to the compatibility mode when any GDS step goes wrong; `OFF` sticks to the GDS path and errors out when things go wrong.

Authors:
  - Tianyu Liu (https://github.com/kingcrimsontianyu)
  - Vukasin Milovanovic (https://github.com/vuule)

Approvers:
  - Vukasin Milovanovic (https://github.com/vuule)
  - Mads R. B. Kristensen (https://github.com/madsbk)

URL: #567
Forward-merge branch-24.12 into branch-25.02
Forward-merge branch-24.12 into branch-25.02
Contributes to rapidsai/build-planning#127

This PR cannot be merged unless nightly CI has passed within the past 7 days, so if it remains unmerged that will itself be an indication that nightly CI needs fixing.

Authors:
  - Vyas Ramasubramani (https://github.com/vyasr)

Approvers:
  - James Lamb (https://github.com/jameslamb)

URL: #579
Now that Zarr v3 has been released, we need to pin to version 2 for now.

Authors:
  - Mads R. B. Kristensen (https://github.com/madsbk)

Approvers:
  - Bradley Dice (https://github.com/bdice)

URL: #583
…pp (#581)

In light of the initiative to make KvikiIO a shared library, this PR further separates the implementation from the interface as thoroughly as possible.

This PR is marked "breaking" because:
- The function `getenv_or` initially in the `detail` namespace has been moved outside to become part of the public API. cuDF uses this function and needs a timely code update.
- Other classes and functions initially in the `detail` namespace for internal use only have been relocated to the `.cpp` files, so downstream applications that happen to use those entities will now see compile errors.

Notes:
- Functions initially prefixed with the attribute `[[nodiscard]]` in the header now have them in the declaration (.hpp) only, not in the definition (.cpp).
- Classes or functions initially in the `detail` namespace from `X.hpp` are now moved to the unnamed namespace in the `X.cpp` files, unless they are used elsewhere (e.g. `Y.cpp`).

Authors:
  - Tianyu Liu (https://github.com/kingcrimsontianyu)
  - Mads R. B. Kristensen (https://github.com/madsbk)

Approvers:
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)
  - Mads R. B. Kristensen (https://github.com/madsbk)

URL: #581
This PR fixes a CMake bug introduced in #581 where `libcurl` is unconditionally compiled.

Authors:
  - Tianyu Liu (https://github.com/kingcrimsontianyu)

Approvers:
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)
  - Bradley Dice (https://github.com/bdice)
  - Alessandro Bellina (https://github.com/abellina)

URL: #587
conda-forge is using GCC 13 for CUDA 12 builds. This PR updates CUDA 12 conda builds to use GCC 13, for alignment.

These PRs should be merged in a specific order, see rapidsai/build-planning#129 for details.

Authors:
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - James Lamb (https://github.com/jameslamb)

URL: #586
Follow-up to #478

Adds a matrix filter `use_cuda_wheels` in the `dependencies.yaml` list used for `libkvikio`'s `nvcomp` dependency. Some types of builds (like RAPIDS devcontainers) prefer to use the system-installed nvCOMP to one provided by wheels.

This ensures that preference is respected, because those builds pass matrix selector `use_cuda_wheels=false` through `rapids-dependency-file-generator` (rapidsai/devcontainers#382).

## Notes for Reviewers

Similar changes in cuDF: rapidsai/cudf#17774

Authors:
  - James Lamb (https://github.com/jameslamb)

Approvers:
  - Bradley Dice (https://github.com/bdice)

URL: #589
…Mark noexcept to compat mode-related functions (#588)

This PR performs makes the following three improvements:
- Separates interface and definition for `file_handle.hpp` that was missed in the previous PR #581.
- To help avoid UB (e.g. program crash) for downstream applications, adds the following qualifying remark to the returned future object of `pread/pwrite`:
  >The `std::future` object's `wait()` or `get()` should not be called after the lifetime of the FileHandle object ends. Otherwise, the behavior is undefined.
- Add `noexcept` specifier to compatibility mode-related functions.

Authors:
  - Tianyu Liu (https://github.com/kingcrimsontianyu)

Approvers:
  - Mads R. B. Kristensen (https://github.com/madsbk)
  - Lawrence Mitchell (https://github.com/wence-)

URL: #588
This PR uses CUDA 12.8.0 to build and test.

xref: rapidsai/build-planning#139

Authors:
  - Bradley Dice (https://github.com/bdice)

Approvers:
  - James Lamb (https://github.com/jameslamb)
  - Vyas Ramasubramani (https://github.com/vyasr)

URL: #600
This PR points the shared workflow branches back to the default 25.02 branches.

xref: rapidsai/build-planning#139

Authors:
  - Vyas Ramasubramani (https://github.com/vyasr)

Approvers:
  - Bradley Dice (https://github.com/bdice)

URL: #609
Minor maintenance

Authors:
  - Mads R. B. Kristensen (https://github.com/madsbk)

Approvers:
  - https://github.com/jakirkham

URL: #617
Uses a retry wrapper for `pip` commands to try to alleviate CI failures due to hash mismatches that result from network hiccups

xref rapidsai/build-planning#148

This will retry failures that show up in CI like:

```
   Collecting nvidia-cublas-cu12 (from libraft-cu12==25.2.*,>=0.0.0a0)
    Downloading https://pypi.nvidia.com/nvidia-cublas-cu12/nvidia_cublas_cu12-12.8.3.14-py3-none-manylinux_2_27_aarch64.whl (604.9 MB)
       ━━━━━━━━━━━━━━━━━━━━━                 350.2/604.9 MB 229.2 MB/s eta 0:00:02
  ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
      nvidia-cublas-cu12 from https://pypi.nvidia.com/nvidia-cublas-cu12/nvidia_cublas_cu12-12.8.3.14-py3-none-manylinux_2_27_aarch64.whl#sha256=93a4e0e386cc7f6e56c822531396de8170ed17068a1e18f987574895044cd8c3 (from libraft-cu12==25.2.*,>=0.0.0a0):
          Expected sha256 93a4e0e386cc7f6e56c822531396de8170ed17068a1e18f987574895044cd8c3
               Got        849c88d155cb4b4a3fdfebff9270fb367c58370b4243a2bdbcb1b9e7e940b7be
```

Authors:
  - Gil Forsyth (https://github.com/gforsyth)

Approvers:
  - Bradley Dice (https://github.com/bdice)

URL: #619
Also don't export the curl dependency.

Authors:
  - Kyle Edwards (https://github.com/KyleFromNVIDIA)

Approvers:
  - Bradley Dice (https://github.com/bdice)

URL: #625
@raydouglass raydouglass requested review from a team as code owners February 7, 2025 19:31
@raydouglass raydouglass requested review from a team as code owners February 7, 2025 19:31
@raydouglass raydouglass requested a review from gforsyth February 7, 2025 19:31
@AyodeAwe AyodeAwe merged commit ac7c721 into main Feb 13, 2025
3 of 4 checks passed
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.