libucx-cu12


Namelibucx-cu12 JSON
Version 1.17.0 PyPI version JSON
download
home_pageNone
SummaryThe Unified Communication X library (UCX)
upload_time2024-08-07 18:51:54
maintainerNone
docs_urlNone
authorNVIDIA Corporation
requires_python>=3.9
licenseBSD-3-Clause
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # UCX wheel building

This repository hosts code for building wheels of [UCX](https://github.com/openucx/ucx/).

## Purpose
RAPIDS publishes multiple libraries that rely on UCX, including [ucxx](https://github.com/rapidsai/ucxx/) and [ucx-py](https://github.com/rapidsai/ucx-py).
One of the ways that RAPIDS vendors these libraries is in the form of [pip wheels](https://packaging.python.org/en/latest/specifications/binary-distribution-format/).
For portability, wheels should be as self-contained as possible as per the [manylinux standard](https://peps.python.org/pep-0513/).
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](https://github.com/pypa/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](https://packaging.python.org/en/latest/specifications/version-specifiers/#post-releases)) for details.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "libucx-cu12",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.9",
    "maintainer_email": null,
    "keywords": null,
    "author": "NVIDIA Corporation",
    "author_email": null,
    "download_url": null,
    "platform": null,
    "description": "# UCX wheel building\n\nThis repository hosts code for building wheels of [UCX](https://github.com/openucx/ucx/).\n\n## Purpose\nRAPIDS publishes multiple libraries that rely on UCX, including [ucxx](https://github.com/rapidsai/ucxx/) and [ucx-py](https://github.com/rapidsai/ucx-py).\nOne of the ways that RAPIDS vendors these libraries is in the form of [pip wheels](https://packaging.python.org/en/latest/specifications/binary-distribution-format/).\nFor portability, wheels should be as self-contained as possible as per the [manylinux standard](https://peps.python.org/pep-0513/).\nHowever, the cost of this is (sometimes extreme) bloat as wheels must bundle all their dependencies.\nMoreover, to avoid bundled dynamic libraries conflicting with local copies of shared libraries, wheels must mangle library names using tools like [auditwheel](https://github.com/pypa/auditwheel).\nThis 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.\nTo 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.\nWhile 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.\n\n# How UCX Wheels Are Built\n\nUCX wheels in this repository are built by using a custom build command for setuptools to trigger the build of the UCX library.\nThe library is then bundled and installed directly into the output directories.\n\n`{major}.{minor}.{patch}` versions of this library exactly correspond to versions of UCX.\nFor example, `libucx==1.16.0` contains libraries built from https://github.com/openucx/ucx/releases/tag/v1.16.0.\n\nWhen the packaging logic itself changes, post-release versions like `libucx==1.16.0.post1` are released.\nSee \"Post-releases\" in the Python packaging docs ([link](https://packaging.python.org/en/latest/specifications/version-specifiers/#post-releases)) for details.\n",
    "bugtrack_url": null,
    "license": "BSD-3-Clause",
    "summary": "The Unified Communication X library (UCX)",
    "version": "1.17.0",
    "project_urls": {
        "Homepage": "https://github.com/openucx/ucx"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e2a7c8a9cd5ac193ce0d82f3210cd73bb185a8205d1a4a104321f3941dd21d6d",
                "md5": "e86e5d9d4df6e2667a8943dbbb20be0b",
                "sha256": "e10b88d8952a6d874c39f2a779be14e555c8c4db88324e4adf25e3e185af063b"
            },
            "downloads": -1,
            "filename": "libucx_cu12-1.17.0-py3-none-manylinux_2_28_aarch64.whl",
            "has_sig": false,
            "md5_digest": "e86e5d9d4df6e2667a8943dbbb20be0b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 26256014,
            "upload_time": "2024-08-07T18:51:54",
            "upload_time_iso_8601": "2024-08-07T18:51:54.061392Z",
            "url": "https://files.pythonhosted.org/packages/e2/a7/c8a9cd5ac193ce0d82f3210cd73bb185a8205d1a4a104321f3941dd21d6d/libucx_cu12-1.17.0-py3-none-manylinux_2_28_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "12680db4fbfd950fa72239bbcd041f02e2f00a7851f0fedabb974425bb1c905e",
                "md5": "c4d6e8e7a5a7d0a4cd8506203a002a44",
                "sha256": "242b6b7568e3546b7af7e51b91a0e0f65951bc7c9c8a82431220231b93d802bf"
            },
            "downloads": -1,
            "filename": "libucx_cu12-1.17.0-py3-none-manylinux_2_28_x86_64.whl",
            "has_sig": false,
            "md5_digest": "c4d6e8e7a5a7d0a4cd8506203a002a44",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.9",
            "size": 26948276,
            "upload_time": "2024-08-07T18:51:59",
            "upload_time_iso_8601": "2024-08-07T18:51:59.275878Z",
            "url": "https://files.pythonhosted.org/packages/12/68/0db4fbfd950fa72239bbcd041f02e2f00a7851f0fedabb974425bb1c905e/libucx_cu12-1.17.0-py3-none-manylinux_2_28_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-07 18:51:54",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "openucx",
    "github_project": "ucx",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "libucx-cu12"
}
        
Elapsed time: 0.34140s