From c4e806dc80c492a2b620c83a4fea0dfeee23541d Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Wed, 2 Jul 2025 03:06:42 +0000 Subject: [PATCH 1/3] fix CI parallelism --- .github/workflows/build-wheel.yml | 4 ++-- ci/tools/env-vars | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-wheel.yml b/.github/workflows/build-wheel.yml index 3bd427256..86eef7f39 100644 --- a/.github/workflows/build-wheel.yml +++ b/.github/workflows/build-wheel.yml @@ -121,11 +121,11 @@ jobs: CIBW_ENVIRONMENT_LINUX: > CUDA_PATH=/host/${{ env.CUDA_PATH }} LIBRARY_PATH=/host/${{ env.CUDA_PATH }}/lib - CUDA_BINDINGS_PARALLEL_LEVEL=${{ env.CUDA_BINDINGS_PARALLEL_LEVEL }} + CUDA_PYTHON_PARALLEL_LEVEL=${{ env.CUDA_PYTHON_PARALLEL_LEVEL }} CIBW_ENVIRONMENT_WINDOWS: > CUDA_HOME="$(cygpath -w ${{ env.CUDA_PATH }})" LIB="${CUDA_HOME}\\lib\\x64;${LIB}" - CUDA_BINDINGS_PARALLEL_LEVEL=${{ env.CUDA_BINDINGS_PARALLEL_LEVEL }} + CUDA_PYTHON_PARALLEL_LEVEL=${{ env.CUDA_PYTHON_PARALLEL_LEVEL }} CIBW_BEFORE_BUILD_WINDOWS: "pip install delvewheel" CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair --namespace-pkg cuda -w {dest_dir} {wheel}" with: diff --git a/ci/tools/env-vars b/ci/tools/env-vars index 7211dc08f..f1882a990 100755 --- a/ci/tools/env-vars +++ b/ci/tools/env-vars @@ -28,7 +28,7 @@ elif [[ "${HOST_PLATFORM}" == win* ]]; then fi echo "${TOOLS_PATH}" >> $GITHUB_PATH -echo "CUDA_BINDINGS_PARALLEL_LEVEL=$(nproc)" >> $GITHUB_ENV +echo "CUDA_PYTHON_PARALLEL_LEVEL=$(nproc)" >> $GITHUB_ENV CUDA_CORE_ARTIFACT_BASENAME="cuda-core-python${PYTHON_VERSION_FORMATTED}-${HOST_PLATFORM}" echo "CUDA_CORE_ARTIFACT_BASENAME=${CUDA_CORE_ARTIFACT_BASENAME}" >> $GITHUB_ENV echo "CUDA_CORE_ARTIFACT_NAME=${CUDA_CORE_ARTIFACT_BASENAME}-${SHA}" >> $GITHUB_ENV From 6834001556937540d48f213cc540823b18fa26f9 Mon Sep 17 00:00:00 2001 From: Leo Fang Date: Wed, 2 Jul 2025 03:13:37 +0000 Subject: [PATCH 2/3] make cuda.core also support CUDA_PYTHON_PARALLEL_LEVEL --- .github/workflows/build-wheel.yml | 2 ++ cuda_core/setup.py | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-wheel.yml b/.github/workflows/build-wheel.yml index 86eef7f39..c8a163c97 100644 --- a/.github/workflows/build-wheel.yml +++ b/.github/workflows/build-wheel.yml @@ -78,6 +78,8 @@ jobs: CIBW_BUILD_VERBOSITY: 1 CIBW_BEFORE_BUILD_WINDOWS: "pip install delvewheel" CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair --namespace-pkg cuda -w {dest_dir} {wheel}" + CIBW_ENVIRONMENT: > + CUDA_PYTHON_PARALLEL_LEVEL=${{ env.CUDA_PYTHON_PARALLEL_LEVEL }} with: package-dir: ./cuda_core/ output-dir: ${{ env.CUDA_CORE_ARTIFACTS_DIR }} diff --git a/cuda_core/setup.py b/cuda_core/setup.py index 26b9a5ab0..7a5cf3bf0 100644 --- a/cuda_core/setup.py +++ b/cuda_core/setup.py @@ -9,6 +9,10 @@ from setuptools import Extension, setup from setuptools.command.build_ext import build_ext as _build_ext + +nthreads = int(os.environ.get("CUDA_PYTHON_PARALLEL_LEVEL", os.cpu_count() // 2)) + + # It seems setuptools' wildcard support has problems for namespace packages, # so we explicitly spell out all Extension instances. root_module = "cuda.core.experimental" @@ -33,7 +37,7 @@ def strip_prefix_suffix(filename): class build_ext(_build_ext): def build_extensions(self): - self.parallel = os.cpu_count() // 2 + self.parallel = nthreads super().build_extensions() From 11796bcfe613dbbab0e1fe49f4badd6418319d27 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Wed, 2 Jul 2025 03:18:11 +0000 Subject: [PATCH 3/3] [pre-commit.ci] auto code formatting --- cuda_core/setup.py | 1 - 1 file changed, 1 deletion(-) diff --git a/cuda_core/setup.py b/cuda_core/setup.py index 7a5cf3bf0..3e93e6e9a 100644 --- a/cuda_core/setup.py +++ b/cuda_core/setup.py @@ -9,7 +9,6 @@ from setuptools import Extension, setup from setuptools.command.build_ext import build_ext as _build_ext - nthreads = int(os.environ.get("CUDA_PYTHON_PARALLEL_LEVEL", os.cpu_count() // 2))