Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions requirements-dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,6 @@ distro==1.9.0
pyyaml>=6.0.1,<6.0.3
requests>=2.32.4,<3
boto3
# Prefix-scheduling integration tests require this exact benchmark revision.
# Owner: Simeng Liu (@SimengLiu-nv); route installation and test failures caused
# by LMBenchmark to him. Keep this revision pinned; update only when it causes
# failures, rather than tracking upstream releases on a schedule.
benchmark @ git+https://github.com/LMCache/LMBenchmark.git@c1e05a708a5a1fd04a9ec09d215edbdcccdf92cb
einops
# Reference implementation for KDA kernel parity tests.
flash-linear-attention==0.5.2
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@
LMBENCHMARK_SCRIPT = ""
_LMBENCHMARK_PACKAGE = "benchmark"
_LMBENCHMARK_SCRIPT_IN_PACKAGE = "synthetic-multi-round-qa/multi-round-qa.py"
_LMBENCHMARK_INSTALL_SPEC = (
f"{_LMBENCHMARK_PACKAGE} @ git+https://github.com/LMCache/LMBenchmark.git@{LMBENCHMARK_SHA}"
)
CsvMetrics: TypeAlias = dict[str, int | float]
_SERVER_HOST = "0.0.0.0"
_SERVER_START_MAX_ATTEMPTS = 5
Expand Down Expand Up @@ -993,7 +996,7 @@ def _resolve_lmbenchmark_install(llm_venv: PythonVenvRunnerImpl) -> str:
dist = importlib.metadata.distribution(package)
except importlib.metadata.PackageNotFoundError:
raise SystemExit(
"LMBenchmark package is not installed. Install requirements-dev.txt before running tests. "
"LMBenchmark package is not installed after fixture setup. "
f"Expected {{script_in_package}}."
)

Expand Down Expand Up @@ -1022,9 +1025,10 @@ def _resolve_lmbenchmark_install(llm_venv: PythonVenvRunnerImpl) -> str:

@pytest.fixture(scope="module")
def ensure_lmbenchmark(llm_venv: PythonVenvRunnerImpl) -> PythonVenvRunnerImpl:
"""Verify and resolve the preinstalled LMBenchmark script used by this module."""
"""Install and resolve the pinned LMBenchmark script used by this module."""
global LMBENCHMARK_SCRIPT

llm_venv.run_cmd(["-m", "pip", "install", _LMBENCHMARK_INSTALL_SPEC], timeout=600)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tburt-nv Could we add retries around this install to tolerate transient network failures during Git checkout or dependency installation? The existing timeout already handles stalled installs; a small retry would help with temporary failures that exit early.

LMBENCHMARK_SCRIPT = _resolve_lmbenchmark_install(llm_venv)
return llm_venv

Expand Down Expand Up @@ -1163,8 +1167,8 @@ def test_multi_round_qa_shared_prefix(
* the CSV contains no NaN ttft values
* the server log is free of error patterns

This is a correctness stress test; request latency is reported but is
not a pass/fail threshold.
NOTE: This test is intended for post-merge / nightly CI due to its

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This revert brings back the "intended for post-merge / nightly CI" note, but test_multi_round_qa_shared_prefix[*] is listed in pre-merge l0_h100.yml (lines 235-242). Consider keeping the newer "correctness stress test; latency is not a pass/fail threshold" wording so the docstring doesn't contradict the test lists.

~10 min runtime per config.
"""
config_path = _write_config(tmp_path, sched_cfg)
server_log_base = str(tmp_path / "server.log")
Expand Down
Loading