From 02918e8fdf42ecb2d0bcef4b1a6aac48439f0482 Mon Sep 17 00:00:00 2001 From: Peter Andreas Entschev Date: Fri, 13 Oct 2023 15:25:59 +0200 Subject: [PATCH] Update UCX pin to allow `1.15.x` and update docs (#996) Update UCX pin to allow `1.15.x`, remove `ucx-proc` dependency and update docs and warnings accordingly. Since UCX 1.14.1, the `ucx-proc` package is not required anymore and all UCX builds provide CUDA support. Authors: - Peter Andreas Entschev (https://github.com/pentschev) Approvers: - Ray Douglass (https://github.com/raydouglass) - Lawrence Mitchell (https://github.com/wence-) URL: https://github.com/rapidsai/ucx-py/pull/996 --- conda/environments/builddocs.yml | 1 - conda/recipes/ucx-py/conda_build_config.yaml | 2 +- docs/source/install.rst | 40 ++++++-------------- docs/source/quickstart.rst | 11 +----- ucp/_libs/transfer_am.pyx | 6 +-- ucp/_libs/transfer_stream.pyx | 12 +++--- ucp/_libs/transfer_tag.pyx | 12 +++--- 7 files changed, 30 insertions(+), 54 deletions(-) diff --git a/conda/environments/builddocs.yml b/conda/environments/builddocs.yml index 7e2907715..2a305598c 100644 --- a/conda/environments/builddocs.yml +++ b/conda/environments/builddocs.yml @@ -11,7 +11,6 @@ dependencies: - sphinxcontrib-websupport - nbsphinx - numpydoc -- ucx-proc=*=cpu - recommonmark - pandoc=<2.0.0 - pip diff --git a/conda/recipes/ucx-py/conda_build_config.yaml b/conda/recipes/ucx-py/conda_build_config.yaml index 7e3877701..c2978aa52 100644 --- a/conda/recipes/ucx-py/conda_build_config.yaml +++ b/conda/recipes/ucx-py/conda_build_config.yaml @@ -4,4 +4,4 @@ cxx_compiler_version: - 11 ucx: - - ">=1.13.0,<1.15.0" + - ">=1.14.1,<1.16.0" diff --git a/docs/source/install.rst b/docs/source/install.rst index 132c9c5bd..d9c931130 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -35,34 +35,17 @@ support is active by checking for the presence of ``/dev/infiniband/rdma_cm`` an Conda ----- -Some preliminary Conda packages can be installed as so. Replace -```` with the desired version (minimum ``11.0``). These are -available both on ``rapidsai`` and ``rapidsai-nightly``. Starting with the -UCX 1.14.1 conda-forge package, InfiniBand support is available again via -rdma-core, thus building UCX from source is not required solely for that -purpose anymore but may still be done if desired (e.g., to test for new -capabilities or bug fixes). - -With GPU support (UCX 1.14.0 and higher): - -:: - - conda create -n ucx -c conda-forge -c rapidsai \ - cudatoolkit= ucx>=1.14.0 ucx-py python=3.9 - -With GPU support (UCX>=1.11.1 and UCX<1.14): +Conda packages can be installed as so. Replace ```` with the +desired version (minimum ``11.2``). These are available both on ``rapidsai`` +and ``rapidsai-nightly``. Starting with the UCX 1.14.1 conda-forge package, +InfiniBand support is available again via rdma-core, thus building UCX +from source is not required solely for that purpose anymore but may still +be done if desired (e.g., to test for new capabilities or bug fixes). :: conda create -n ucx -c conda-forge -c rapidsai \ - cudatoolkit= ucx-proc=*=gpu ucx<1.14 ucx-py python=3.9 - -Without GPU support: - -:: - - conda create -n ucx -c conda-forge -c rapidsai \ - ucx-proc=*=cpu ucx ucx-py python=3.9 + cudatoolkit= ucx-py Source @@ -70,9 +53,6 @@ Source The following instructions assume you'll be using UCX-Py on a CUDA enabled system and is in a `Conda environment `_. -.. note:: - UCX conda-force package older than UCX 1.14.1 do not include InfiniBand support. - Build Dependencies ~~~~~~~~~~~~~~~~~~ @@ -81,7 +61,11 @@ Build Dependencies conda create -n ucx -c conda-forge \ automake make libtool pkg-config \ - "python=3.9" setuptools "cython>=0.29.14,<3.0.0a0" + "python=3.9" setuptools "cython>=3.0.0" + +.. note:: + The Python version must be explicitly specified here, UCX-Py currently supports + only Python 3.9 and 3.10. Test Dependencies ~~~~~~~~~~~~~~~~~ diff --git a/docs/source/quickstart.rst b/docs/source/quickstart.rst index e767342c1..f2d25a6c8 100644 --- a/docs/source/quickstart.rst +++ b/docs/source/quickstart.rst @@ -5,19 +5,12 @@ Quickstart Setup ----- -With GPU support: +Create a new conda environment with UCX-Py: :: conda create -n ucx -c conda-forge -c rapidsai \ - cudatoolkit= ucx-proc=*=gpu ucx ucx-py python=3.9 - -Without GPU support: - -:: - - conda create -n ucx -c conda-forge -c rapidsai \ - ucx-proc=*=cpu ucx ucx-py python=3.9 + cudatoolkit= ucx-py For a more detailed guide on installation options please refer to the :doc:`install` page. diff --git a/ucp/_libs/transfer_am.pyx b/ucp/_libs/transfer_am.pyx index 573da025a..9d7277070 100644 --- a/ucp/_libs/transfer_am.pyx +++ b/ucp/_libs/transfer_am.pyx @@ -117,9 +117,9 @@ def am_send_nbx( if buffer.cuda and not ep.worker._context.cuda_support: raise ValueError( "UCX is not configured with CUDA support, please add " - "`cuda_copy` and/or `cuda_ipc` to the UCX_TLS environment" - "variable and that the ucx-proc=*=gpu package is " - "installed. See " + "`cuda_copy` and/or `cuda_ipc` to the `UCX_TLS` environment" + "variable if you're manually setting a different value. If you" + "are building UCX from source, please see " "https://ucx-py.readthedocs.io/en/latest/install.html for " "more information." ) diff --git a/ucp/_libs/transfer_stream.pyx b/ucp/_libs/transfer_stream.pyx index 2c543231f..df085c52d 100644 --- a/ucp/_libs/transfer_stream.pyx +++ b/ucp/_libs/transfer_stream.pyx @@ -73,9 +73,9 @@ def stream_send_nb( if buffer.cuda and not ep.worker._context.cuda_support: raise ValueError( "UCX is not configured with CUDA support, please add " - "`cuda_copy` and/or `cuda_ipc` to the UCX_TLS environment" - "variable and that the ucx-proc=*=gpu package is " - "installed. See " + "`cuda_copy` and/or `cuda_ipc` to the `UCX_TLS` environment" + "variable if you're manually setting a different value. If you" + "are building UCX from source, please see " "https://ucx-py.readthedocs.io/en/latest/install.html for " "more information." ) @@ -204,9 +204,9 @@ def stream_recv_nb( if buffer.cuda and not ep.worker._context.cuda_support: raise ValueError( "UCX is not configured with CUDA support, please add " - "`cuda_copy` and/or `cuda_ipc` to the UCX_TLS environment" - "variable and that the ucx-proc=*=gpu package is " - "installed. See " + "`cuda_copy` and/or `cuda_ipc` to the `UCX_TLS` environment" + "variable if you're manually setting a different value. If you" + "are building UCX from source, please see " "https://ucx-py.readthedocs.io/en/latest/install.html for " "more information." ) diff --git a/ucp/_libs/transfer_tag.pyx b/ucp/_libs/transfer_tag.pyx index d4ace6b54..01d0ba445 100644 --- a/ucp/_libs/transfer_tag.pyx +++ b/ucp/_libs/transfer_tag.pyx @@ -70,9 +70,9 @@ def tag_send_nb( if buffer.cuda and not ep.worker._context.cuda_support: raise ValueError( "UCX is not configured with CUDA support, please add " - "`cuda_copy` and/or `cuda_ipc` to the UCX_TLS environment" - "variable and that the ucx-proc=*=gpu package is " - "installed. See " + "`cuda_copy` and/or `cuda_ipc` to the `UCX_TLS` environment" + "variable if you're manually setting a different value. If you" + "are building UCX from source, please see " "https://ucx-py.readthedocs.io/en/latest/install.html for " "more information." ) @@ -217,9 +217,9 @@ def tag_recv_nb( if not cuda_support: raise ValueError( "UCX is not configured with CUDA support, please add " - "`cuda_copy` and/or `cuda_ipc` to the UCX_TLS environment" - "variable and that the ucx-proc=*=gpu package is " - "installed. See " + "`cuda_copy` and/or `cuda_ipc` to the `UCX_TLS` environment" + "variable if you're manually setting a different value. If you" + "are building UCX from source, please see " "https://ucx-py.readthedocs.io/en/latest/install.html for " "more information." )