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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

libucx_cu12-1.20.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (28.4 MB view details)

Uploaded Python 3manylinux: glibc 2.24+ x86-64manylinux: glibc 2.28+ x86-64

libucx_cu12-1.20.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl (27.5 MB view details)

Uploaded Python 3manylinux: glibc 2.24+ ARM64manylinux: glibc 2.28+ ARM64

File details

Details for the file libucx_cu12-1.20.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libucx_cu12-1.20.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 596e6a4e1272a027cad7e44155865c26a6d76393c46db690032f50723bfbbd98
MD5 80d202660b0f520b0ea1c42838d51d7c
BLAKE2b-256 79b402ebd16160c00f61df5a0028c09ecd6c9221c15ebbc05b2a59e2b00fc1f3

See more details on using hashes here.

File details

Details for the file libucx_cu12-1.20.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for libucx_cu12-1.20.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 5e9011cdd3c389cec4b270bc31ef7f70133fe9bc8fc5136628953173df56395a
MD5 5df4ad123da54f41f6034e4d40f7157c
BLAKE2b-256 34c8a72f3a3140b5aecb0cf92f97427c2f2646d04e6c46cb7768204835377c29

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page