nit: Remove busy waiting on scheduler (#2382)
This commit is contained in:
@@ -1,5 +1,9 @@
|
|||||||
# Contributor Guide
|
# Contributor Guide
|
||||||
|
|
||||||
|
# Build SGLang
|
||||||
|
|
||||||
|
See [Install SGLang, Method 2: From Source section](../start/install.md).
|
||||||
|
|
||||||
## Format Your Code
|
## Format Your Code
|
||||||
Use these commands to format your code and pass CI linting tests.
|
Use these commands to format your code and pass CI linting tests.
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ classifiers = [
|
|||||||
"Programming Language :: Python :: 3",
|
"Programming Language :: Python :: 3",
|
||||||
"License :: OSI Approved :: Apache Software License",
|
"License :: OSI Approved :: Apache Software License",
|
||||||
]
|
]
|
||||||
dependencies = ["requests", "tqdm", "numpy", "IPython"]
|
dependencies = ["requests", "tqdm", "numpy", "IPython", "setproctitle"]
|
||||||
|
|
||||||
[project.optional-dependencies]
|
[project.optional-dependencies]
|
||||||
runtime_common = ["aiohttp", "decord", "fastapi",
|
runtime_common = ["aiohttp", "decord", "fastapi",
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ from collections import OrderedDict
|
|||||||
from typing import List, Union
|
from typing import List, Union
|
||||||
|
|
||||||
import psutil
|
import psutil
|
||||||
|
import setproctitle
|
||||||
import zmq
|
import zmq
|
||||||
|
|
||||||
from sglang.srt.hf_transformers_utils import get_tokenizer
|
from sglang.srt.hf_transformers_utils import get_tokenizer
|
||||||
@@ -194,6 +195,7 @@ def run_detokenizer_process(
|
|||||||
server_args: ServerArgs,
|
server_args: ServerArgs,
|
||||||
port_args: PortArgs,
|
port_args: PortArgs,
|
||||||
):
|
):
|
||||||
|
setproctitle.setproctitle("sglang::detokenizer")
|
||||||
configure_logger(server_args)
|
configure_logger(server_args)
|
||||||
parent_process = psutil.Process().parent()
|
parent_process = psutil.Process().parent()
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ from types import SimpleNamespace
|
|||||||
from typing import List, Optional
|
from typing import List, Optional
|
||||||
|
|
||||||
import psutil
|
import psutil
|
||||||
|
import setproctitle
|
||||||
import torch
|
import torch
|
||||||
import zmq
|
import zmq
|
||||||
|
|
||||||
@@ -439,12 +440,16 @@ class Scheduler:
|
|||||||
if self.tp_rank == 0 or self.server_args.enable_dp_attention:
|
if self.tp_rank == 0 or self.server_args.enable_dp_attention:
|
||||||
recv_reqs = []
|
recv_reqs = []
|
||||||
|
|
||||||
while True:
|
if self.last_batch is None:
|
||||||
try:
|
recv_req = self.recv_from_tokenizer.recv_pyobj()
|
||||||
recv_req = self.recv_from_tokenizer.recv_pyobj(zmq.NOBLOCK)
|
|
||||||
except zmq.ZMQError:
|
|
||||||
break
|
|
||||||
recv_reqs.append(recv_req)
|
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:
|
else:
|
||||||
recv_reqs = None
|
recv_reqs = None
|
||||||
|
|
||||||
@@ -1473,6 +1478,8 @@ def run_scheduler_process(
|
|||||||
dp_rank: Optional[int],
|
dp_rank: Optional[int],
|
||||||
pipe_writer,
|
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
|
# [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:
|
if dp_rank is None and "SGLANG_DP_RANK" in os.environ:
|
||||||
dp_rank = int(os.environ["SGLANG_DP_RANK"])
|
dp_rank = int(os.environ["SGLANG_DP_RANK"])
|
||||||
|
|||||||
Reference in New Issue
Block a user