Skip to main content

UCX wheel building

This repository hosts code for building wheels of UCX.

Purpose

RAPIDS publishes multiple libraries that rely on UCX, including UCXX. One of the ways that RAPIDS vendors these libraries is in the form of pip wheels. For portability, wheels should be as self-contained as possible as per the manylinux standard. However, the cost of this is (sometimes extreme) bloat as wheels must bundle all their dependencies. Moreover, to avoid bundled dynamic libraries conflicting with local copies of shared libraries, wheels must mangle library names using tools like auditwheel. This practice is particularly problematic for libraries like UCX that rely heavily on dlopen to load libraries at runtime instead of link time, making static analysis of a binary to determine its dependency tree far more difficult. To avoid this problem, in this repo we build the UCX libraries directly and vendor them in a wheel without mangling, but in a way that supports dynamic loading of the library at runtime to avoid clashing with system versions of the library. While this approach can still be problematic if other libraries loaded on the system do use a system copy of UCX, it is a relatively more robust solution than most of the alternatives.

How UCX Wheels Are Built

UCX wheels in this repository are built by using a custom build command for setuptools to trigger the build of the UCX library. The library is then bundled and installed directly into the output directories.

{major}.{minor}.{patch} versions of this library exactly correspond to versions of UCX. For example, libucx==1.16.0 contains libraries built from https://github.com/openucx/ucx/releases/tag/v1.16.0.

When the packaging logic itself changes, post-release versions like libucx==1.16.0.post1 are released. See "Post-releases" in the Python packaging docs (link) for details.

Metadata

Release files for libucx-cu12 1.22.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distributions (wheels)

Table of built distributions (wheels) for libucx-cu12 1.22.0
File Interpreter ABI Platform
libucx_cu12-1.22.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl Python 3 none Linux glibc 2.28+ x86-64, Linux glibc 2.24+ x86-64 Details
libucx_cu12-1.22.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl Python 3 none Linux glibc 2.28+ ARM64, Linux glibc 2.24+ ARM64 Details

Total release size: 84.4 MB

Release files / libucx_cu12-1.22.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl

Download URL libucx_cu12-1.22.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Size 43.4 MB
Tags Linux glibc 2.24+ x86-64 Linux glibc 2.28+ x86-64 Python 3
SHA-256 checksum
How to use checksums
5cbbef0c140a0a158ae3486089af659b38822b2234cd3dc90ba40a5e6553402a
BLAKE2b-256 checksum
How to use checksums
b05e8264c058036fe0fb197046c58d1c1ff96b40dc1e176fc530fb589f96cb54
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / libucx_cu12-1.22.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl

Download URL libucx_cu12-1.22.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Size 41.0 MB
Tags Linux glibc 2.24+ ARM64 Linux glibc 2.28+ ARM64 Python 3
SHA-256 checksum
How to use checksums
269aa884c3f83ced2ffb5f7704fb3a2da56d9402431222ddbe2901c1ae4fb227
BLAKE2b-256 checksum
How to use checksums
2971db2a2848b2e321252f19a973c84b21093ccf5a70e6c1b58327ef6fb3b548
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page