Skip to content

Update RAPIDS containers to Ubuntu 24.04 - #534

Merged
bdice merged 6 commits into
rapidsai:branch-25.08from
bdice:rapids-ubuntu-24.04
Jul 21, 2025
Merged

Update RAPIDS containers to Ubuntu 24.04#534
bdice merged 6 commits into
rapidsai:branch-25.08from
bdice:rapids-ubuntu-24.04

Conversation

@bdice

@bdice bdice commented Jul 14, 2025

Copy link
Copy Markdown
Contributor

Currently nightly builds fail for cuDF because of the use of <format>. This requires GCC 13 or newer.

The devcontainers are getting the OS default version of GCC (because RAPIDS devcontainers don't specify a version). The OS is Ubuntu 22.04 which ships with GCC 11. Updating to Ubuntu 24.04 should solve this problem. Alternatively we can pin the GCC version, but I like being able to use system-default toolchains where possible.

@bdice
bdice requested a review from a team as a code owner July 14, 2025 13:48
@bdice
bdice requested review from jameslamb and removed request for a team July 14, 2025 13:48
@trxcllnt

Copy link
Copy Markdown
Collaborator

Will also need to update the devcontainer.json files here to remove the -ubuntu22.04 suffix from the tag. We publish the images without the OS in the name to simplify upgrades like this.

@bdice

bdice commented Jul 14, 2025

Copy link
Copy Markdown
Contributor Author

@trxcllnt Do you know what would cause this error? I'm not sure what to do.

https://github.com/rapidsai/devcontainers/actions/runs/16269759796/job/45934116367?pr=534#step:9:90

Error: Dev container build failed: Command failed: docker inspect --type image rapidsai/devcontainers:25.08-cpp-mambaforge-ubuntu24.04 (exit code: undefined)
An error occurred building the container.

@trxcllnt

trxcllnt commented Jul 14, 2025

Copy link
Copy Markdown
Collaborator

That tag doesn't exist yet.

@trxcllnt trxcllnt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Recommended changes

Comment thread .devcontainer/cuda12.9-conda/devcontainer.json Outdated
Comment thread .devcontainer/cuda12.9-pip/devcontainer.json Outdated
@trxcllnt

Copy link
Copy Markdown
Collaborator

Looks like there aren't any CUDA 12.0 Ubuntu24.04 apt repos, so probably gotta stick with 22.04 for those (if we still need them).

@bdice

bdice commented Jul 14, 2025

Copy link
Copy Markdown
Contributor Author

RAPIDS doesn't need to build with CUDA 12.0. We are okay with requiring 12.9+ to build.

bdice and others added 3 commits July 14, 2025 11:05
Co-authored-by: Paul Taylor <178183+trxcllnt@users.noreply.github.com>
Co-authored-by: Paul Taylor <178183+trxcllnt@users.noreply.github.com>
@bdice

bdice commented Jul 15, 2025

Copy link
Copy Markdown
Contributor Author

There's an error coming up, probably from rapidsai/rmm#1980. I think this would point to an issue in CMake code somewhere, like missing target_link_libraries(rmm::rmm) but everything looks fine in ucxx to me. Weirdly, this error occurs when it tries to build libkvikio -- why does it try to import ucxx here? Not sure.

ImportError: /home/coder/ucxx/cpp/build/conda/cuda-12.9/release/libucxx.so: undefined symbol: _ZN3rmm13device_bufferD1Ev

@bdice

bdice commented Jul 15, 2025

Copy link
Copy Markdown
Contributor Author

It's installing librmm from conda for some reason. Need to figure out why and fix that.

@bdice

bdice commented Jul 15, 2025

Copy link
Copy Markdown
Contributor Author

The problem is coming from xgboost. xgboost depends on librmm, and the cuml development environment installs xgboost by default.

Do we need to make the devcontainers aware of xgboost, or add some special exclusion for librmm?

@trxcllnt

Copy link
Copy Markdown
Collaborator

conda doesn't let us exclude libraries installed by our dependencies. We either have to add xgboost as a library we build from source, or exclude xgboost from cuML's dependencies (ideally in cuml/dependencies.yaml).

@bdice

bdice commented Jul 15, 2025

Copy link
Copy Markdown
Contributor Author

Great. I filed a PR here with that change: NVIDIA/cuml#7006

rapids-bot Bot pushed a commit to NVIDIA/cuml that referenced this pull request Jul 18, 2025
Unified conda devcontainers use the `all` file key to generate their dependency lists for each repository. Currently cuml includes `xgboost` in its `all` file key via the `test_python` dependency list. Unfortunately, this pulls in a conda dependency on `librmm` via `libxgboost`. This is problematic because we must build `librmm` from source in our unified devcontainers.

It seems like `xgboost` is a soft test dependency. In this PR, I add a new dependency file key called `devcontainers` that excludes `xgboost`. Developer conda environments, CI workflows, and pip devcontainers are unaffected by this change. Conda devcontainers will now require the user to manually install `xgboost` in order to run tests that need it, and this is noted in `BUILD.md`.

This is needed to solve the problems discussed in rapidsai/devcontainers#534 (comment).

Once this is merged, I will push a change to rapidsai/devcontainers#536 to use the new `devcontainers` file key.

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

Approvers:
  - Paul Taylor (https://github.com/trxcllnt)
  - James Lamb (https://github.com/jameslamb)
  - Simon Adorf (https://github.com/csadorf)

URL: #7006
@bdice
bdice requested a review from trxcllnt July 18, 2025 20:04
@bdice

bdice commented Jul 21, 2025

Copy link
Copy Markdown
Contributor Author

@trxcllnt Can you re-review?

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.

2 participants