Skip to content

Commit 916097e

Browse files
Fix CI build-time parallelism + support the same env var in cuda.core (#743)
* fix CI parallelism * make cuda.core also support CUDA_PYTHON_PARALLEL_LEVEL * [pre-commit.ci] auto code formatting --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
1 parent a8550cf commit 916097e

3 files changed

Lines changed: 9 additions & 4 deletions

File tree

.github/workflows/build-wheel.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,8 @@ jobs:
7878
CIBW_BUILD_VERBOSITY: 1
7979
CIBW_BEFORE_BUILD_WINDOWS: "pip install delvewheel"
8080
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair --namespace-pkg cuda -w {dest_dir} {wheel}"
81+
CIBW_ENVIRONMENT: >
82+
CUDA_PYTHON_PARALLEL_LEVEL=${{ env.CUDA_PYTHON_PARALLEL_LEVEL }}
8183
with:
8284
package-dir: ./cuda_core/
8385
output-dir: ${{ env.CUDA_CORE_ARTIFACTS_DIR }}
@@ -121,11 +123,11 @@ jobs:
121123
CIBW_ENVIRONMENT_LINUX: >
122124
CUDA_PATH=/host/${{ env.CUDA_PATH }}
123125
LIBRARY_PATH=/host/${{ env.CUDA_PATH }}/lib
124-
CUDA_BINDINGS_PARALLEL_LEVEL=${{ env.CUDA_BINDINGS_PARALLEL_LEVEL }}
126+
CUDA_PYTHON_PARALLEL_LEVEL=${{ env.CUDA_PYTHON_PARALLEL_LEVEL }}
125127
CIBW_ENVIRONMENT_WINDOWS: >
126128
CUDA_HOME="$(cygpath -w ${{ env.CUDA_PATH }})"
127129
LIB="${CUDA_HOME}\\lib\\x64;${LIB}"
128-
CUDA_BINDINGS_PARALLEL_LEVEL=${{ env.CUDA_BINDINGS_PARALLEL_LEVEL }}
130+
CUDA_PYTHON_PARALLEL_LEVEL=${{ env.CUDA_PYTHON_PARALLEL_LEVEL }}
129131
CIBW_BEFORE_BUILD_WINDOWS: "pip install delvewheel"
130132
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair --namespace-pkg cuda -w {dest_dir} {wheel}"
131133
with:

ci/tools/env-vars

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ elif [[ "${HOST_PLATFORM}" == win* ]]; then
2828
fi
2929

3030
echo "${TOOLS_PATH}" >> $GITHUB_PATH
31-
echo "CUDA_BINDINGS_PARALLEL_LEVEL=$(nproc)" >> $GITHUB_ENV
31+
echo "CUDA_PYTHON_PARALLEL_LEVEL=$(nproc)" >> $GITHUB_ENV
3232
CUDA_CORE_ARTIFACT_BASENAME="cuda-core-python${PYTHON_VERSION_FORMATTED}-${HOST_PLATFORM}"
3333
echo "CUDA_CORE_ARTIFACT_BASENAME=${CUDA_CORE_ARTIFACT_BASENAME}" >> $GITHUB_ENV
3434
echo "CUDA_CORE_ARTIFACT_NAME=${CUDA_CORE_ARTIFACT_BASENAME}-${SHA}" >> $GITHUB_ENV

cuda_core/setup.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
from setuptools import Extension, setup
1010
from setuptools.command.build_ext import build_ext as _build_ext
1111

12+
nthreads = int(os.environ.get("CUDA_PYTHON_PARALLEL_LEVEL", os.cpu_count() // 2))
13+
14+
1215
# It seems setuptools' wildcard support has problems for namespace packages,
1316
# so we explicitly spell out all Extension instances.
1417
root_module = "cuda.core.experimental"
@@ -33,7 +36,7 @@ def strip_prefix_suffix(filename):
3336

3437
class build_ext(_build_ext):
3538
def build_extensions(self):
36-
self.parallel = os.cpu_count() // 2
39+
self.parallel = nthreads
3740
super().build_extensions()
3841

3942

0 commit comments

Comments
 (0)