Files
1Cat-vLLM/tests/quantization/test_sm70_native_cache.py
yangzhuxinyzx c9d825d5cf [Core] Consolidate prepared SM70 linear and native policy ownership
Bind linear implementations during preparation, partition native tuning and engine scratch ownership, and retain legacy imports and operator defaults. Extend shared configuration and execution explanations.

Assisted-by: OpenAI Codex
Signed-off-by: yangzhuxinyzx <153831768+yangzhuxinyzx@users.noreply.github.com>
2026-10-09 13:31:46 +08:00

103 lines
3.6 KiB
Python

# SPDX-License-Identifier: Apache-2.0
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
from pathlib import Path
from types import SimpleNamespace
import pytest
from vllm.config import set_current_vllm_config
from vllm.config.kernel import KernelConfig
from vllm.model_executor.warmup import sm70_native_cache as cache
pytestmark = pytest.mark.cpu_test
def _config(tune=None):
kernel = KernelConfig()
kernel.sm70_fp8.native.fp8_dense_tune_max_m = tune
kernel.sm70_fp8.native.resolve("fp8")
return SimpleNamespace(kernel_config=kernel)
@pytest.fixture
def native_tables(monkeypatch):
imported = []
exported: dict[tuple, bytes] = {}
class Native:
def __init__(self, values=()):
self.values = values
def sm70_gemm_export_cache(self, device, path):
payload = exported[self.values]
Path(path).write_bytes(payload)
return 1
def sm70_gemm_import_cache(self, device, path):
imported.append((self.values, Path(path).read_bytes()))
return 1
monkeypatch.setattr(cache, "NativeBindings", Native)
return exported, imported
def test_partition_roundtrip_preserves_legacy_file_and_only_imports_matching_policy(
tmp_path, native_tables
):
exported, imported = native_tables
first = _config(8)
second = _config(16)
one = first.kernel_config.sm70_fp8.native.values
two = second.kernel_config.sm70_fp8.native.values
path = str(tmp_path / "lut.bin")
exported.update({(): b"old-runtime-table", one: b"policy-eight"})
with set_current_vllm_config(first):
assert cache.export_cache(None, path) == 2
assert Path(path).read_bytes() == b"old-runtime-table"
assert cache.packed_cache_bytes(Path(path)).startswith(cache._MAGIC)
with set_current_vllm_config(second):
assert cache.import_cache(None, path) == 1
assert imported == [((), b"old-runtime-table")]
assert all(policy != two for policy, payload in imported)
imported.clear()
with set_current_vllm_config(first):
assert cache.import_cache(None, path) == 2
assert imported == [((), b"old-runtime-table"), (one, b"policy-eight")]
def test_untagged_legacy_seed_does_not_cross_typed_override(tmp_path, native_tables):
exported, imported = native_tables
path = str(tmp_path / "legacy.bin")
Path(path).write_bytes(b"historic-table")
with set_current_vllm_config(_config(8)):
assert cache.import_cache(None, path) == 1
assert imported == [((), b"historic-table")]
imported.clear()
legacy = _config()
with set_current_vllm_config(legacy):
assert cache.import_cache(None, path) == 2
assert imported[-1] == (
legacy.kernel_config.sm70_fp8.native.values,
b"historic-table",
)
def test_diagnostic_change_reuses_same_partition(tmp_path, native_tables, monkeypatch):
exported, imported = native_tables
first = _config(8)
monkeypatch.setenv("TM_GEMM_TRACE", "1")
second = _config(8)
one, two = (cfg.kernel_config.sm70_fp8.native.values for cfg in (first, second))
assert one != two
exported.update({(): b"old", one: b"same-calculation"})
path = str(tmp_path / "lut.bin")
with set_current_vllm_config(first):
cache.export_cache(None, path)
# Exercise the distributed packed-byte import, without a sidecar filename.
packed = str(tmp_path / "received.bin")
Path(packed).write_bytes(cache.packed_cache_bytes(Path(path)))
with set_current_vllm_config(second):
cache.import_cache(None, packed)
assert imported[-1] == (two, b"same-calculation")