# 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)