test: bound CPU vocoder reference threads (#8347)
Signed-off-by: andyluo7 <andy.luo@amd.com>
This commit is contained in:
1 parent
1c1b831f58
commit
3ab726c126
7 files changed
+160
-17
No files matched your search
@@ -0,0 +1,52 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# SPDX-FileCopyrightText: Copyright contributors to the vLLM-Omni project
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import time
|
||||
from collections.abc import Callable, Generator
|
||||
from typing import Protocol
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
class _TorchThreadAPI(Protocol):
|
||||
def get_num_threads(self) -> int: ...
|
||||
|
||||
def set_num_threads(self, num_threads: int) -> None: ...
|
||||
|
||||
|
||||
def _single_threaded_cpu(
|
||||
request: pytest.FixtureRequest,
|
||||
load_torch: Callable[[], _TorchThreadAPI],
|
||||
) -> Generator[None, None, None]:
|
||||
"""Implement the marker guard separately so its state handling is testable."""
|
||||
if request.node.get_closest_marker("cpu") is None:
|
||||
yield
|
||||
return
|
||||
|
||||
torch = load_torch()
|
||||
previous_threads = torch.get_num_threads()
|
||||
started = time.perf_counter()
|
||||
try:
|
||||
torch.set_num_threads(1)
|
||||
print(f"{request.node.nodeid}: CPU reference threads {previous_threads} -> {torch.get_num_threads()}")
|
||||
yield
|
||||
finally:
|
||||
torch.set_num_threads(previous_threads)
|
||||
print(
|
||||
f"{request.node.nodeid}: CPU reference elapsed {time.perf_counter() - started:.3f}s; "
|
||||
f"restored threads {torch.get_num_threads()}"
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def single_threaded_cpu(request: pytest.FixtureRequest) -> Generator[None, None, None]:
|
||||
"""Bound opted-in CPU tests while leaving GPU-marked cases unchanged."""
|
||||
|
||||
def load_torch() -> _TorchThreadAPI:
|
||||
import torch
|
||||
|
||||
return torch
|
||||
|
||||
yield from _single_threaded_cpu(request, load_torch)
|
||||
Reference in new issue
Block a user