42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
import pytest
|
|
|
|
from vllm.platforms import current_platform
|
|
|
|
from ..utils import compare_two_settings, create_new_process_for_each_test
|
|
|
|
|
|
@pytest.mark.parametrize(
|
|
"PP_SIZE, MODEL_NAME",
|
|
[
|
|
(2, "JackFram/llama-160m"),
|
|
],
|
|
)
|
|
@pytest.mark.parametrize(
|
|
"ATTN_BACKEND",
|
|
[None] if current_platform.is_rocm() else ["FLASH_ATTN"],
|
|
)
|
|
@create_new_process_for_each_test()
|
|
def test_pp_cudagraph(
|
|
PP_SIZE: int,
|
|
MODEL_NAME: str,
|
|
ATTN_BACKEND: str | None,
|
|
):
|
|
cudagraph_args = [
|
|
# use half precision for speed and memory savings in CI environment
|
|
"--dtype",
|
|
"float16",
|
|
"--pipeline-parallel-size",
|
|
str(PP_SIZE),
|
|
"--distributed-executor-backend",
|
|
"mp",
|
|
]
|
|
# On ROCm, defer to the platform attention selector instead of forcing a backend.
|
|
if ATTN_BACKEND is not None:
|
|
cudagraph_args.append(f"--attention-backend={ATTN_BACKEND}")
|
|
|
|
eager_args = cudagraph_args + ["--enforce-eager"]
|
|
|
|
compare_two_settings(MODEL_NAME, eager_args, cudagraph_args)
|