[Router] Report accelerator count in /v1/loads (#33548)

Co-authored-by: Yinghai Lu <yinghai@meta.com>
This commit is contained in:
Lianmin Zheng
2026-08-04 05:55:35 -07:00
committed by GitHub
co-authored by Yinghai Lu
parent 8f2a3ad6d7
commit d257b58e67
2 changed files with 51 additions and 5 deletions
+21 -1
View File
@@ -38,6 +38,19 @@ def _accelerator_name() -> Optional[str]:
return get_device_name()
@lru_cache(maxsize=1)
def _num_accelerators_per_dp_rank(
tp_size: int,
pp_size: int,
dp_size: int,
enable_dp_attention: bool,
) -> int:
num_accelerators = tp_size * pp_size
if enable_dp_attention:
num_accelerators //= dp_size
return num_accelerators
def _get_tokenizer_manager():
"""Dependency to get tokenizer_manager from global state."""
from sglang.srt.entrypoints.http_server import get_global_state
@@ -95,7 +108,8 @@ async def get_loads(
format: Response format - 'json' (default) or 'prometheus'
Returns:
JSON response with timestamp, version, accelerator, and per-DP-rank loads
JSON response with timestamp, version, accelerator metadata, and
per-DP-rank loads
"""
include_list = [s.strip() for s in include.split(",")] if include else None
@@ -128,5 +142,11 @@ async def get_loads(
"timestamp": datetime.now(timezone.utc).isoformat(),
"version": __version__,
"accelerator": _accelerator_name(),
"num_accelerators": _num_accelerators_per_dp_rank(
tokenizer_manager.server_args.tp_size,
tokenizer_manager.server_args.pp_size,
tokenizer_manager.server_args.dp_size,
tokenizer_manager.server_args.enable_dp_attention,
),
"loads": loads,
}