Skip to main content

The Unified Communication X library (UCX)

Project description

UCX wheel building

This repository hosts code for building wheels of UCX.

Purpose

RAPIDS publishes multiple libraries that rely on UCX, including ucxx and ucx-py. 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.

Project 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

libucx_cu12-1.17.0-py3-none-manylinux_2_28_x86_64.whl (26.9 MB view details)

Uploaded Python 3 manylinux: glibc 2.28+ x86-64

libucx_cu12-1.17.0-py3-none-manylinux_2_28_aarch64.whl (26.3 MB view details)

Uploaded Python 3 manylinux: glibc 2.28+ ARM64

File details

Details for the file libucx_cu12-1.17.0-py3-none-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for libucx_cu12-1.17.0-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 242b6b7568e3546b7af7e51b91a0e0f65951bc7c9c8a82431220231b93d802bf
MD5 c4d6e8e7a5a7d0a4cd8506203a002a44
BLAKE2b-256 12680db4fbfd950fa72239bbcd041f02e2f00a7851f0fedabb974425bb1c905e

See more details on using hashes here.

Provenance

File details

Details for the file libucx_cu12-1.17.0-py3-none-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for libucx_cu12-1.17.0-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e10b88d8952a6d874c39f2a779be14e555c8c4db88324e4adf25e3e185af063b
MD5 e86e5d9d4df6e2667a8943dbbb20be0b
BLAKE2b-256 e2a7c8a9cd5ac193ce0d82f3210cd73bb185a8205d1a4a104321f3941dd21d6d

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page