From c0fc7a89e7a5350e9b1618baa5077a12c15a0ea9 Mon Sep 17 00:00:00 2001 From: shuwenn <47200617+alphabetc1@users.noreply.github.com> Date: Wed, 31 Dec 2025 10:44:45 +0800 Subject: [PATCH] [sgl-kernel] fix: make sgl-kernel build respect MAX_JOBS (#15575) --- sgl-kernel/Makefile | 19 ++++++++++++++++++- sgl-kernel/README.md | 11 +++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/sgl-kernel/Makefile b/sgl-kernel/Makefile index 8a81ae804..6f946771d 100644 --- a/sgl-kernel/Makefile +++ b/sgl-kernel/Makefile @@ -1,5 +1,16 @@ .PHONY: help check-deps install-deps tree ln submodule install build clean rebuild test format update +# --------------------------- +# Build resource controls +# --------------------------- +# By default, build uses all available CPU cores, but users can override: +# make build MAX_JOBS=2 CMAKE_BUILD_PARALLEL_LEVEL=2 CMAKE_ARGS="-DSGL_KERNEL_COMPILE_THREADS=1" +NPROC ?= $(shell nproc 2>/dev/null || echo 1) +MAX_JOBS ?= $(NPROC) +CMAKE_BUILD_PARALLEL_LEVEL ?= $(MAX_JOBS) +UV_BUILD_DIR ?= build +CMAKE_POLICY_VERSION_MINIMUM ?= 3.5 + # Show help for each target help: ## Show this help message @echo "Available targets:" @@ -25,7 +36,13 @@ install: submodule ## Install package in development mode @pip install -e . --no-build-isolation build: install-deps submodule ## Build and install wheel package - @rm -rf dist/* || true && CMAKE_POLICY_VERSION_MINIMUM=3.5 MAX_JOBS=$(nproc) CMAKE_BUILD_PARALLEL_LEVEL=$(nproc) uv build --wheel -Cbuild-dir=build . --verbose --color=always --no-build-isolation && pip3 install dist/*whl --force-reinstall --no-deps + @rm -rf dist/* || true && \ + CMAKE_POLICY_VERSION_MINIMUM=$(CMAKE_POLICY_VERSION_MINIMUM) \ + MAX_JOBS=$(MAX_JOBS) \ + CMAKE_BUILD_PARALLEL_LEVEL=$(CMAKE_BUILD_PARALLEL_LEVEL) \ + CMAKE_ARGS="$(CMAKE_ARGS)" \ + uv build --wheel -Cbuild-dir=$(UV_BUILD_DIR) . --verbose --color=always --no-build-isolation && \ + pip3 install dist/*whl --force-reinstall --no-deps clean: ## Remove build artifacts @rm -rf build dist *.egg-info diff --git a/sgl-kernel/README.md b/sgl-kernel/README.md index e5d148d6e..08040a57e 100644 --- a/sgl-kernel/README.md +++ b/sgl-kernel/README.md @@ -32,6 +32,17 @@ Requires make build ``` +### Limit build resource usage (CPU / parallelism) + +By default, `make build` uses all available CPU cores. You can override build parallelism and NVCC compile threads: + +```bash +# Limit parallel jobs (controls both make and cmake parallelism) +make build MAX_JOBS=2 + +# Additionally limit NVCC internal threads (reduces CPU and peak memory) +make build MAX_JOBS=2 CMAKE_ARGS="-DSGL_KERNEL_COMPILE_THREADS=1" + ## Contribution ### Steps to add a new kernel: