diff --git a/docs/references/contributor_guide.md b/docs/references/contributor_guide.md index a9b25163d12..550f267ab1a 100644 --- a/docs/references/contributor_guide.md +++ b/docs/references/contributor_guide.md @@ -1,5 +1,9 @@ # Contributor Guide +# Build SGLang + +See [Install SGLang, Method 2: From Source section](../start/install.md). + ## Format Your Code Use these commands to format your code and pass CI linting tests. diff --git a/python/pyproject.toml b/python/pyproject.toml index 186405dd7a3..8e935528e21 100644 --- a/python/pyproject.toml +++ b/python/pyproject.toml @@ -13,7 +13,7 @@ classifiers = [ "Programming Language :: Python :: 3", "License :: OSI Approved :: Apache Software License", ] -dependencies = ["requests", "tqdm", "numpy", "IPython"] +dependencies = ["requests", "tqdm", "numpy", "IPython", "setproctitle"] [project.optional-dependencies] runtime_common = ["aiohttp", "decord", "fastapi", diff --git a/python/sglang/srt/managers/detokenizer_manager.py b/python/sglang/srt/managers/detokenizer_manager.py index e74ba5026c1..120e990da2a 100644 --- a/python/sglang/srt/managers/detokenizer_manager.py +++ b/python/sglang/srt/managers/detokenizer_manager.py @@ -20,6 +20,7 @@ from typing import List, Union import psutil +import setproctitle import zmq from sglang.srt.hf_transformers_utils import get_tokenizer @@ -194,6 +195,7 @@ def run_detokenizer_process( server_args: ServerArgs, port_args: PortArgs, ): + setproctitle.setproctitle("sglang::detokenizer") configure_logger(server_args) parent_process = psutil.Process().parent() diff --git a/python/sglang/srt/managers/scheduler.py b/python/sglang/srt/managers/scheduler.py index 4ca4cd740dc..13e8dae2345 100644 --- a/python/sglang/srt/managers/scheduler.py +++ b/python/sglang/srt/managers/scheduler.py @@ -25,6 +25,7 @@ from typing import List, Optional import psutil +import setproctitle import torch import zmq @@ -439,12 +440,16 @@ def recv_requests(self): if self.tp_rank == 0 or self.server_args.enable_dp_attention: recv_reqs = [] - while True: - try: - recv_req = self.recv_from_tokenizer.recv_pyobj(zmq.NOBLOCK) - except zmq.ZMQError: - break + if self.last_batch is None: + recv_req = self.recv_from_tokenizer.recv_pyobj() recv_reqs.append(recv_req) + else: + while True: + try: + recv_req = self.recv_from_tokenizer.recv_pyobj(zmq.NOBLOCK) + except zmq.ZMQError: + break + recv_reqs.append(recv_req) else: recv_reqs = None @@ -1473,6 +1478,8 @@ def run_scheduler_process( dp_rank: Optional[int], pipe_writer, ): + setproctitle.setproctitle("sglang::scheduler") + # [For Router] if env var "SGLANG_DP_RANK" exist, set dp_rank to the value of the env var if dp_rank is None and "SGLANG_DP_RANK" in os.environ: dp_rank = int(os.environ["SGLANG_DP_RANK"])