[1/N][CI] Add multi node test (#3359)
### What this PR does / why we need it? This pr purpose to add multi-node test, on the first step, add `deepseek-v3` dp+tp+ep test ### Does this PR introduce _any_ user-facing change? ### How was this patch tested? - vLLM version: v0.11.0rc3 - vLLM main: https://github.com/vllm-project/vllm/commit/v0.11.0 --------- Signed-off-by: wangli <wangli858794774@gmail.com>
This commit is contained in:
49
tests/e2e/multi_node/test_multi_dp.py
Normal file
49
tests/e2e/multi_node/test_multi_dp.py
Normal file
@@ -0,0 +1,49 @@
|
||||
import subprocess
|
||||
|
||||
import pytest
|
||||
|
||||
from tests.e2e.conftest import RemoteOpenAIServer
|
||||
from tests.e2e.multi_node.config.multi_node_config import (MultiNodeConfig,
|
||||
load_configs)
|
||||
from tests.e2e.multi_node.config.utils import get_default_envs
|
||||
|
||||
configs = load_configs()
|
||||
|
||||
|
||||
def get_benchmark_cmd(model: str, base_url: str, args: list[str]):
|
||||
"""vllm bench serve <model> --base-url <url> ..."""
|
||||
return [
|
||||
"vllm", "bench", "serve", "--model", model, "--base-url", base_url
|
||||
] + args
|
||||
|
||||
|
||||
@pytest.mark.parametrize("config", configs)
|
||||
def test_multi_dp(config: MultiNodeConfig) -> None:
|
||||
env_dict = get_default_envs()
|
||||
|
||||
server_config = config.server_config
|
||||
perf_config = config.perf_config
|
||||
model_name = server_config.model
|
||||
assert model_name is not None, "Model name must be specified"
|
||||
|
||||
server_args = server_config.to_list()
|
||||
|
||||
with RemoteOpenAIServer(
|
||||
model_name,
|
||||
config.server_host,
|
||||
config.server_port,
|
||||
server_args,
|
||||
env_dict=env_dict,
|
||||
auto_port=False,
|
||||
seed=1024,
|
||||
max_wait_seconds=1000,
|
||||
) as remote_server:
|
||||
base_url = remote_server.url_root
|
||||
assert perf_config is not None, "Perf config must be specified for perf tests"
|
||||
perf_cmd = get_benchmark_cmd(server_config.model, base_url,
|
||||
perf_config.to_list())
|
||||
if server_config.headless:
|
||||
remote_server.hang_until_terminated()
|
||||
else:
|
||||
# run perf benchmark
|
||||
subprocess.run(perf_cmd, check=True)
|
||||
Reference in New Issue
Block a user