[feat] make warmup timeout configurable through SGLANG_WARMUP_TIMEOUT (#13243)
This commit is contained in:
@@ -72,6 +72,7 @@ from sglang.srt.entrypoints.openai.serving_tokenize import (
|
|||||||
OpenAIServingDetokenize,
|
OpenAIServingDetokenize,
|
||||||
OpenAIServingTokenize,
|
OpenAIServingTokenize,
|
||||||
)
|
)
|
||||||
|
from sglang.srt.environ import envs
|
||||||
from sglang.srt.function_call.function_call_parser import FunctionCallParser
|
from sglang.srt.function_call.function_call_parser import FunctionCallParser
|
||||||
from sglang.srt.managers.io_struct import (
|
from sglang.srt.managers.io_struct import (
|
||||||
AbortReq,
|
AbortReq,
|
||||||
@@ -1528,12 +1529,14 @@ def _execute_server_warmup(
|
|||||||
json_data["sampling_params"]["max_new_tokens"] = 0
|
json_data["sampling_params"]["max_new_tokens"] = 0
|
||||||
|
|
||||||
try:
|
try:
|
||||||
|
warmup_timeout = envs.SGLANG_WARMUP_TIMEOUT.get()
|
||||||
if server_args.disaggregation_mode == "null":
|
if server_args.disaggregation_mode == "null":
|
||||||
|
logger.info(f"Start of co-locate warmup ...")
|
||||||
res = requests.post(
|
res = requests.post(
|
||||||
url + request_name,
|
url + request_name,
|
||||||
json=json_data,
|
json=json_data,
|
||||||
headers=headers,
|
headers=headers,
|
||||||
timeout=600,
|
timeout=warmup_timeout if warmup_timeout > 0 else 600,
|
||||||
)
|
)
|
||||||
assert res.status_code == 200, f"{res.text}"
|
assert res.status_code == 200, f"{res.text}"
|
||||||
_global_state.tokenizer_manager.server_status = ServerStatus.Up
|
_global_state.tokenizer_manager.server_status = ServerStatus.Up
|
||||||
@@ -1559,7 +1562,9 @@ def _execute_server_warmup(
|
|||||||
url + request_name,
|
url + request_name,
|
||||||
json=json_data,
|
json=json_data,
|
||||||
headers=headers,
|
headers=headers,
|
||||||
timeout=1800, # because of deep gemm precache is very long if not precache.
|
timeout=(
|
||||||
|
warmup_timeout if warmup_timeout > 0 else 1800
|
||||||
|
), # because of deep gemm precache is very long if not precache.
|
||||||
)
|
)
|
||||||
if res.status_code == 200:
|
if res.status_code == 200:
|
||||||
logger.info(
|
logger.info(
|
||||||
|
|||||||
@@ -288,6 +288,9 @@ class Envs:
|
|||||||
# Ngram
|
# Ngram
|
||||||
SGLANG_NGRAM_FORCE_GREEDY_VERIFY = EnvBool(False)
|
SGLANG_NGRAM_FORCE_GREEDY_VERIFY = EnvBool(False)
|
||||||
|
|
||||||
|
# Warmup
|
||||||
|
SGLANG_WARMUP_TIMEOUT = EnvFloat(-1) # in seconds. If a warmup forward batch takes longer than this, the server will crash to prevent hanging. Recommend to increase warmup timeout to 1800 to accommodate some kernel JIT precache e.g. deep gemm
|
||||||
|
|
||||||
# fmt: on
|
# fmt: on
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user