chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
||||
import pytest
|
||||
import torch
|
||||
|
||||
import vllm.utils.gpu_sync_debug as gsd
|
||||
from vllm.utils.gpu_sync_debug import (
|
||||
SYNC_ERROR_MESSAGE,
|
||||
gpu_sync_allowed,
|
||||
with_gpu_sync_check,
|
||||
)
|
||||
|
||||
from ..utils import create_new_process_for_each_test
|
||||
|
||||
pytestmark = pytest.mark.skipif(not torch.cuda.is_available(), reason="requires CUDA")
|
||||
|
||||
|
||||
def _no_sync():
|
||||
# Pure on-GPU compute, no implicit CPU sync...
|
||||
x = torch.ones(4, device="cuda") + 1
|
||||
# ...plus a sync that we explicitly allow.
|
||||
with gpu_sync_allowed():
|
||||
return x.cpu()
|
||||
|
||||
|
||||
def _causes_sync():
|
||||
x = torch.ones(4, device="cuda")
|
||||
# An allowed sync (suppressed)...
|
||||
with gpu_sync_allowed():
|
||||
x.cpu()
|
||||
# ...then an un-allowed sync that should trip the check.
|
||||
return x.cpu()
|
||||
|
||||
|
||||
@pytest.mark.parametrize("mode", ["warn", "error"])
|
||||
@create_new_process_for_each_test()
|
||||
def test_with_env_set(monkeypatch, mode):
|
||||
# Env set + gate flipped on: the unguarded sync is detected.
|
||||
monkeypatch.setenv("VLLM_GPU_SYNC_CHECK", mode)
|
||||
monkeypatch.setattr(gsd, "_sync_check_enabled", True)
|
||||
|
||||
# Guarded syncs always pass.
|
||||
with_gpu_sync_check(_no_sync)()
|
||||
|
||||
if mode == "error":
|
||||
# "error" mode turns the stray sync into a RuntimeError.
|
||||
with pytest.raises(RuntimeError, match=SYNC_ERROR_MESSAGE):
|
||||
with_gpu_sync_check(_causes_sync)()
|
||||
else:
|
||||
# "warn" mode only warns, so the call still succeeds.
|
||||
with_gpu_sync_check(_causes_sync)()
|
||||
|
||||
|
||||
@create_new_process_for_each_test()
|
||||
def test_without_env_set(monkeypatch):
|
||||
# Env unset: the decorator is a pass-through, no sync is detected.
|
||||
monkeypatch.delenv("VLLM_GPU_SYNC_CHECK", raising=False)
|
||||
monkeypatch.setattr(gsd, "_sync_check_enabled", True)
|
||||
|
||||
with_gpu_sync_check(_no_sync)()
|
||||
with_gpu_sync_check(_causes_sync)()
|
||||
Reference in New Issue
Block a user