Unverified Commit 81ede99c authored by Kuntai Du's avatar Kuntai Du Committed by GitHub
Browse files

[Core] Deprecating block manager v1 and make block manager v2 default (#8704)

Removing the block manager v1. This is the initial piece of prefix-caching-centric design. In order to achieve prefix-caching-centric design, we need to simplify the code path so that we only use v2 block manager (which has much higher performance on prefix caching).
parent 5eda21e7
...@@ -43,9 +43,6 @@ PRECISION = "float32" ...@@ -43,9 +43,6 @@ PRECISION = "float32"
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
...@@ -86,9 +83,6 @@ def test_eagle_e2e_greedy_correctness(vllm_runner, common_llm_kwargs, ...@@ -86,9 +83,6 @@ def test_eagle_e2e_greedy_correctness(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
...@@ -143,9 +137,6 @@ def test_eagle_e2e_greedy_logprobs(vllm_runner, common_llm_kwargs, ...@@ -143,9 +137,6 @@ def test_eagle_e2e_greedy_logprobs(vllm_runner, common_llm_kwargs,
[{ [{
"enforce_eager": False, "enforce_eager": False,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
...@@ -191,9 +182,6 @@ def test_eagle_e2e_greedy_correctness_cuda_graph( ...@@ -191,9 +182,6 @@ def test_eagle_e2e_greedy_correctness_cuda_graph(
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Precision # Precision
"dtype": PRECISION, "dtype": PRECISION,
...@@ -235,9 +223,6 @@ def test_eagle_e2e_greedy_correctness_with_preemption( ...@@ -235,9 +223,6 @@ def test_eagle_e2e_greedy_correctness_with_preemption(
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Precision # Precision
"dtype": PRECISION, "dtype": PRECISION,
...@@ -283,9 +268,6 @@ def test_eagle_different_k(vllm_runner, common_llm_kwargs, ...@@ -283,9 +268,6 @@ def test_eagle_different_k(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Precision # Precision
"dtype": PRECISION, "dtype": PRECISION,
......
...@@ -12,8 +12,6 @@ MAIN_MODEL = "JackFram/llama-68m" ...@@ -12,8 +12,6 @@ MAIN_MODEL = "JackFram/llama-68m"
@pytest.mark.parametrize( @pytest.mark.parametrize(
"common_llm_kwargs", "common_llm_kwargs",
[{ [{
# Required for spec decode.
"use_v2_block_manager": True,
# Verify equality when cuda graphs allowed. # Verify equality when cuda graphs allowed.
"enforce_eager": False, "enforce_eager": False,
...@@ -57,9 +55,6 @@ def test_spec_decode_cuda_graph(vllm_runner, common_llm_kwargs, ...@@ -57,9 +55,6 @@ def test_spec_decode_cuda_graph(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
}]) }])
@pytest.mark.parametrize("per_test_common_llm_kwargs", [ @pytest.mark.parametrize("per_test_common_llm_kwargs", [
{ {
...@@ -111,9 +106,6 @@ def test_speculative_model_quantization_config(vllm_runner, common_llm_kwargs, ...@@ -111,9 +106,6 @@ def test_speculative_model_quantization_config(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
"speculative_model": "JackFram/llama-68m", "speculative_model": "JackFram/llama-68m",
"num_speculative_tokens": 3, "num_speculative_tokens": 3,
}]) }])
......
...@@ -17,9 +17,6 @@ from .conftest import run_equality_correctness_test_tp ...@@ -17,9 +17,6 @@ from .conftest import run_equality_correctness_test_tp
[[ [[
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"--enforce-eager", "--enforce-eager",
# Required for spec decode.
"--use-v2-block-manager",
"--tensor-parallel-size", "--tensor-parallel-size",
"2" "2"
]]) ]])
...@@ -74,9 +71,6 @@ def test_target_model_tp_gt_1(common_llm_kwargs, per_test_common_llm_kwargs, ...@@ -74,9 +71,6 @@ def test_target_model_tp_gt_1(common_llm_kwargs, per_test_common_llm_kwargs,
[[ [[
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"--enforce-eager", "--enforce-eager",
# Required for spec decode.
"--use_v2_block_manager",
"--tensor_parallel_size", "--tensor_parallel_size",
"2", "2",
......
...@@ -19,9 +19,6 @@ SPEC_MODEL = "JackFram/llama-68m" ...@@ -19,9 +19,6 @@ SPEC_MODEL = "JackFram/llama-68m"
[[ [[
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"--enforce_eager", "--enforce_eager",
# Required for spec decode.
"--use-v2-block-manager",
"--tensor-parallel-size", "--tensor-parallel-size",
"4", "4",
]]) ]])
...@@ -71,9 +68,6 @@ def test_draft_model_tp_lt_target_model_tp4(common_llm_kwargs, ...@@ -71,9 +68,6 @@ def test_draft_model_tp_lt_target_model_tp4(common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"--enforce-eager", "--enforce-eager",
# Required for spec decode.
"--use-v2-block-manager",
"--tensor-parallel-size", "--tensor-parallel-size",
"4", "4",
]]) ]])
......
...@@ -14,9 +14,6 @@ from .conftest import run_equality_correctness_test ...@@ -14,9 +14,6 @@ from .conftest import run_equality_correctness_test
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
}]) }])
@pytest.mark.parametrize("per_test_common_llm_kwargs", [{}]) @pytest.mark.parametrize("per_test_common_llm_kwargs", [{}])
@pytest.mark.parametrize("baseline_llm_kwargs", [{}]) @pytest.mark.parametrize("baseline_llm_kwargs", [{}])
...@@ -67,9 +64,6 @@ def test_logprobs_equality(vllm_runner, common_llm_kwargs, ...@@ -67,9 +64,6 @@ def test_logprobs_equality(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True
}]) }])
@pytest.mark.parametrize("per_test_common_llm_kwargs", [{}]) @pytest.mark.parametrize("per_test_common_llm_kwargs", [{}])
@pytest.mark.parametrize("baseline_llm_kwargs", [{}]) @pytest.mark.parametrize("baseline_llm_kwargs", [{}])
...@@ -119,9 +113,6 @@ def test_logprobs_different_k(vllm_runner, common_llm_kwargs, ...@@ -119,9 +113,6 @@ def test_logprobs_different_k(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True
}]) }])
@pytest.mark.parametrize("per_test_common_llm_kwargs", [{}]) @pytest.mark.parametrize("per_test_common_llm_kwargs", [{}])
@pytest.mark.parametrize("baseline_llm_kwargs", [{}]) @pytest.mark.parametrize("baseline_llm_kwargs", [{}])
...@@ -173,9 +164,6 @@ def test_logprobs_when_skip_speculation(vllm_runner, common_llm_kwargs, ...@@ -173,9 +164,6 @@ def test_logprobs_when_skip_speculation(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True
}]) }])
@pytest.mark.parametrize("per_test_common_llm_kwargs", [{}]) @pytest.mark.parametrize("per_test_common_llm_kwargs", [{}])
@pytest.mark.parametrize("baseline_llm_kwargs", [{}]) @pytest.mark.parametrize("baseline_llm_kwargs", [{}])
...@@ -251,8 +239,6 @@ def test_logprobs_temp_1(vllm_runner, common_llm_kwargs, ...@@ -251,8 +239,6 @@ def test_logprobs_temp_1(vllm_runner, common_llm_kwargs,
"model_name": "JackFram/llama-160m", "model_name": "JackFram/llama-160m",
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
}]) }])
@pytest.mark.parametrize("per_test_common_llm_kwargs", [{}]) @pytest.mark.parametrize("per_test_common_llm_kwargs", [{}])
@pytest.mark.parametrize("baseline_llm_kwargs", [{}]) @pytest.mark.parametrize("baseline_llm_kwargs", [{}])
......
...@@ -45,9 +45,6 @@ PRECISION = "float32" ...@@ -45,9 +45,6 @@ PRECISION = "float32"
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
...@@ -93,9 +90,6 @@ def test_medusa_e2e_greedy_correctness(vllm_runner, common_llm_kwargs, ...@@ -93,9 +90,6 @@ def test_medusa_e2e_greedy_correctness(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
...@@ -151,9 +145,6 @@ def test_medusa_e2e_greedy_logprobs(vllm_runner, common_llm_kwargs, ...@@ -151,9 +145,6 @@ def test_medusa_e2e_greedy_logprobs(vllm_runner, common_llm_kwargs,
[{ [{
"enforce_eager": False, "enforce_eager": False,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
...@@ -204,9 +195,6 @@ def test_medusa_e2e_greedy_correctness_cuda_graph( ...@@ -204,9 +195,6 @@ def test_medusa_e2e_greedy_correctness_cuda_graph(
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Precision # Precision
"dtype": PRECISION, "dtype": PRECISION,
...@@ -253,9 +241,6 @@ def test_medusa_e2e_greedy_correctness_with_preemption( ...@@ -253,9 +241,6 @@ def test_medusa_e2e_greedy_correctness_with_preemption(
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Precision # Precision
"dtype": PRECISION, "dtype": PRECISION,
...@@ -306,9 +291,6 @@ def test_medusa_different_k(vllm_runner, common_llm_kwargs, ...@@ -306,9 +291,6 @@ def test_medusa_different_k(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Precision # Precision
"dtype": PRECISION, "dtype": PRECISION,
...@@ -356,9 +338,6 @@ def test_medusa_disable_queue(vllm_runner, common_llm_kwargs, ...@@ -356,9 +338,6 @@ def test_medusa_disable_queue(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Precision # Precision
"dtype": PRECISION, "dtype": PRECISION,
......
...@@ -47,9 +47,6 @@ PRECISION = "float32" ...@@ -47,9 +47,6 @@ PRECISION = "float32"
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
...@@ -94,9 +91,6 @@ def test_mlp_e2e_greedy_correctness(vllm_runner, common_llm_kwargs, ...@@ -94,9 +91,6 @@ def test_mlp_e2e_greedy_correctness(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
...@@ -149,9 +143,6 @@ def test_mlp_e2e_greedy_logprobs(vllm_runner, common_llm_kwargs, ...@@ -149,9 +143,6 @@ def test_mlp_e2e_greedy_logprobs(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
...@@ -195,9 +186,6 @@ def test_mlp_e2e_acceptance_rate(vllm_runner, common_llm_kwargs, ...@@ -195,9 +186,6 @@ def test_mlp_e2e_acceptance_rate(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
...@@ -258,9 +246,6 @@ def test_mlp_e2e_seeded_correctness(vllm_runner, common_llm_kwargs, ...@@ -258,9 +246,6 @@ def test_mlp_e2e_seeded_correctness(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Precision # Precision
"dtype": PRECISION, "dtype": PRECISION,
...@@ -311,9 +296,6 @@ def test_mlp_e2e_greedy_correctness_with_preemption( ...@@ -311,9 +296,6 @@ def test_mlp_e2e_greedy_correctness_with_preemption(
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Precision # Precision
"dtype": PRECISION, "dtype": PRECISION,
...@@ -366,9 +348,6 @@ def test_mlp_e2e_greedy_correctness_with_padding( ...@@ -366,9 +348,6 @@ def test_mlp_e2e_greedy_correctness_with_padding(
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Precision # Precision
"dtype": PRECISION, "dtype": PRECISION,
...@@ -419,9 +398,6 @@ def test_mlp_different_k(vllm_runner, common_llm_kwargs, ...@@ -419,9 +398,6 @@ def test_mlp_different_k(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Precision # Precision
"dtype": PRECISION, "dtype": PRECISION,
...@@ -469,9 +445,6 @@ def test_mlp_disable_queue(vllm_runner, common_llm_kwargs, ...@@ -469,9 +445,6 @@ def test_mlp_disable_queue(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
"speculative_model": SPEC_MODEL, "speculative_model": SPEC_MODEL,
}]) }])
@pytest.mark.parametrize("per_test_common_llm_kwargs", [{}]) @pytest.mark.parametrize("per_test_common_llm_kwargs", [{}])
......
...@@ -55,9 +55,6 @@ from .conftest import (get_output_from_llm_generator, ...@@ -55,9 +55,6 @@ from .conftest import (get_output_from_llm_generator,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
}]) }])
@pytest.mark.parametrize( @pytest.mark.parametrize(
"per_test_common_llm_kwargs", "per_test_common_llm_kwargs",
...@@ -124,9 +121,6 @@ def test_spec_decode_e2e_with_detokenization(test_llm_generator, ...@@ -124,9 +121,6 @@ def test_spec_decode_e2e_with_detokenization(test_llm_generator,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
}]) }])
...@@ -190,9 +184,6 @@ def test_spec_decode_e2e_greedy_correctness_tiny_model_bs1( ...@@ -190,9 +184,6 @@ def test_spec_decode_e2e_greedy_correctness_tiny_model_bs1(
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
}]) }])
...@@ -246,9 +237,6 @@ def test_spec_decode_e2e_greedy_correctness_tiny_model_large_bs( ...@@ -246,9 +237,6 @@ def test_spec_decode_e2e_greedy_correctness_tiny_model_large_bs(
[{ [{
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True
}]) }])
@pytest.mark.parametrize( @pytest.mark.parametrize(
"per_test_common_llm_kwargs", "per_test_common_llm_kwargs",
...@@ -303,9 +291,6 @@ def test_spec_decode_e2e_greedy_correctness_tiny_model_large_bs_diff_output_len( ...@@ -303,9 +291,6 @@ def test_spec_decode_e2e_greedy_correctness_tiny_model_large_bs_diff_output_len(
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
}]) }])
...@@ -353,9 +338,6 @@ def test_spec_decode_e2e_greedy_correctness_real_model_bs1( ...@@ -353,9 +338,6 @@ def test_spec_decode_e2e_greedy_correctness_real_model_bs1(
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
}]) }])
...@@ -404,9 +386,6 @@ def test_spec_decode_e2e_greedy_correctness_real_model_large_bs( ...@@ -404,9 +386,6 @@ def test_spec_decode_e2e_greedy_correctness_real_model_large_bs(
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True
}]) }])
@pytest.mark.parametrize("per_test_common_llm_kwargs", [ @pytest.mark.parametrize("per_test_common_llm_kwargs", [
{ {
...@@ -454,9 +433,6 @@ def test_spec_decode_e2e_greedy_correctness_with_preemption( ...@@ -454,9 +433,6 @@ def test_spec_decode_e2e_greedy_correctness_with_preemption(
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True
}]) }])
@pytest.mark.parametrize( @pytest.mark.parametrize(
"per_test_common_llm_kwargs", "per_test_common_llm_kwargs",
...@@ -514,9 +490,6 @@ def test_spec_decode_different_block_size(vllm_runner, common_llm_kwargs, ...@@ -514,9 +490,6 @@ def test_spec_decode_different_block_size(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True
}]) }])
@pytest.mark.parametrize("per_test_common_llm_kwargs", [{}]) @pytest.mark.parametrize("per_test_common_llm_kwargs", [{}])
@pytest.mark.parametrize("baseline_llm_kwargs", [{}]) @pytest.mark.parametrize("baseline_llm_kwargs", [{}])
...@@ -570,9 +543,6 @@ def test_skip_speculation(vllm_runner, common_llm_kwargs, ...@@ -570,9 +543,6 @@ def test_skip_speculation(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True
}]) }])
@pytest.mark.parametrize("per_test_common_llm_kwargs", [{}]) @pytest.mark.parametrize("per_test_common_llm_kwargs", [{}])
@pytest.mark.parametrize("baseline_llm_kwargs", [{}]) @pytest.mark.parametrize("baseline_llm_kwargs", [{}])
...@@ -611,9 +581,6 @@ def test_disable_speculation(vllm_runner, common_llm_kwargs, ...@@ -611,9 +581,6 @@ def test_disable_speculation(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True
}]) }])
@pytest.mark.parametrize("per_test_common_llm_kwargs", [{}]) @pytest.mark.parametrize("per_test_common_llm_kwargs", [{}])
@pytest.mark.parametrize("baseline_llm_kwargs", [{}]) @pytest.mark.parametrize("baseline_llm_kwargs", [{}])
...@@ -660,9 +627,6 @@ def test_many_k(vllm_runner, common_llm_kwargs, per_test_common_llm_kwargs, ...@@ -660,9 +627,6 @@ def test_many_k(vllm_runner, common_llm_kwargs, per_test_common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True
}]) }])
@pytest.mark.parametrize("per_test_common_llm_kwargs", [{}]) @pytest.mark.parametrize("per_test_common_llm_kwargs", [{}])
@pytest.mark.parametrize("baseline_llm_kwargs", [{}]) @pytest.mark.parametrize("baseline_llm_kwargs", [{}])
......
...@@ -35,9 +35,6 @@ from .conftest import run_equality_correctness_test ...@@ -35,9 +35,6 @@ from .conftest import run_equality_correctness_test
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
}]) }])
...@@ -82,9 +79,6 @@ def test_ngram_e2e_greedy_correctness(vllm_runner, common_llm_kwargs, ...@@ -82,9 +79,6 @@ def test_ngram_e2e_greedy_correctness(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# Print spec metrics. # Print spec metrics.
"disable_log_stats": False, "disable_log_stats": False,
}]) }])
...@@ -145,9 +139,6 @@ def test_ngram_e2e_greedy_logprobs(vllm_runner, common_llm_kwargs, ...@@ -145,9 +139,6 @@ def test_ngram_e2e_greedy_logprobs(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True
}]) }])
@pytest.mark.parametrize("per_test_common_llm_kwargs", [ @pytest.mark.parametrize("per_test_common_llm_kwargs", [
{ {
...@@ -195,9 +186,6 @@ def test_ngram_e2e_greedy_correctness_with_preemption( ...@@ -195,9 +186,6 @@ def test_ngram_e2e_greedy_correctness_with_preemption(
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True
}]) }])
@pytest.mark.parametrize("per_test_common_llm_kwargs", [{}]) @pytest.mark.parametrize("per_test_common_llm_kwargs", [{}])
@pytest.mark.parametrize("baseline_llm_kwargs", [{}]) @pytest.mark.parametrize("baseline_llm_kwargs", [{}])
...@@ -254,9 +242,6 @@ def test_ngram_different_k(vllm_runner, common_llm_kwargs, ...@@ -254,9 +242,6 @@ def test_ngram_different_k(vllm_runner, common_llm_kwargs,
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True
}]) }])
@pytest.mark.parametrize("per_test_common_llm_kwargs", [{}]) @pytest.mark.parametrize("per_test_common_llm_kwargs", [{}])
@pytest.mark.parametrize("baseline_llm_kwargs", [{}]) @pytest.mark.parametrize("baseline_llm_kwargs", [{}])
...@@ -303,7 +288,6 @@ def test_ngram_disable_queue(vllm_runner, common_llm_kwargs, ...@@ -303,7 +288,6 @@ def test_ngram_disable_queue(vllm_runner, common_llm_kwargs,
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode. # Required for spec decode.
"use_v2_block_manager": True,
"speculative_model": "[ngram]", "speculative_model": "[ngram]",
"num_speculative_tokens": 5, "num_speculative_tokens": 5,
"ngram_prompt_lookup_max": 3, "ngram_prompt_lookup_max": 3,
......
...@@ -17,9 +17,6 @@ SPEC_MODEL = "JackFram/llama-160m" ...@@ -17,9 +17,6 @@ SPEC_MODEL = "JackFram/llama-160m"
# Skip cuda graph recording for fast test. # Skip cuda graph recording for fast test.
"enforce_eager": True, "enforce_eager": True,
# Required for spec decode.
"use_v2_block_manager": True,
# speculative model # speculative model
"speculative_model": "JackFram/llama-160m", "speculative_model": "JackFram/llama-160m",
......
...@@ -678,12 +678,3 @@ def get_client_text_logprob_generations( ...@@ -678,12 +678,3 @@ def get_client_text_logprob_generations(
return [(text_generations, text, return [(text_generations, text,
(None if x.logprobs is None else x.logprobs.top_logprobs)) (None if x.logprobs is None else x.logprobs.top_logprobs))
for completion in completions for x in completion.choices] for completion in completions for x in completion.choices]
def check_deprecated_block_manager_usage(test_name: str):
assert envs.VLLM_ALLOW_DEPRECATED_BLOCK_MANAGER_V1 is True, (
f"To allow the use of deprecated BlockSpaceManagerV1, set the "
f"environment variable VLLM_ALLOW_DEPRECATED_BLOCK_MANAGER_V1=1. "
f"You can run the tests with: "
f"`VLLM_ALLOW_DEPRECATED_BLOCK_MANAGER_V1=1 pytest {test_name}`" #noqa
)
...@@ -305,8 +305,6 @@ class FlashAttentionMetadataBuilder( ...@@ -305,8 +305,6 @@ class FlashAttentionMetadataBuilder(
self.runner = input_builder.runner self.runner = input_builder.runner
self.sliding_window = input_builder.sliding_window self.sliding_window = input_builder.sliding_window
self.block_size = input_builder.block_size self.block_size = input_builder.block_size
self.use_v2_block_manager = (
input_builder.scheduler_config.use_v2_block_manager)
def _add_seq_group( def _add_seq_group(
self, inter_data: "ModelInputForGPUBuilder.InterDataForSeqGroup", self, inter_data: "ModelInputForGPUBuilder.InterDataForSeqGroup",
...@@ -355,9 +353,9 @@ class FlashAttentionMetadataBuilder( ...@@ -355,9 +353,9 @@ class FlashAttentionMetadataBuilder(
# Compute slot mapping. # Compute slot mapping.
is_profile_run = is_block_tables_empty(block_tables) is_profile_run = is_block_tables_empty(block_tables)
start_idx = compute_slot_mapping_start_idx( start_idx = compute_slot_mapping_start_idx(is_prompt, query_len,
is_prompt, query_len, context_len, self.sliding_window, context_len,
self.use_v2_block_manager) self.sliding_window)
compute_slot_mapping(is_profile_run, self.slot_mapping, seq_id, compute_slot_mapping(is_profile_run, self.slot_mapping, seq_id,
seq_len, context_len, start_idx, seq_len, context_len, start_idx,
self.block_size, inter_data.block_tables) self.block_size, inter_data.block_tables)
......
...@@ -475,8 +475,6 @@ class FlashInferMetadataBuilder(AttentionMetadataBuilder[FlashInferMetadata]): ...@@ -475,8 +475,6 @@ class FlashInferMetadataBuilder(AttentionMetadataBuilder[FlashInferMetadata]):
self.sliding_window = input_builder.sliding_window self.sliding_window = input_builder.sliding_window
self.block_size = input_builder.block_size self.block_size = input_builder.block_size
self.use_v2_block_manager = (
input_builder.scheduler_config.use_v2_block_manager)
# Please follow https://docs.flashinfer.ai/tutorials/kv_layout.html#page-layout # Please follow https://docs.flashinfer.ai/tutorials/kv_layout.html#page-layout
# for the precise definition of the following fields. # for the precise definition of the following fields.
...@@ -542,9 +540,9 @@ class FlashInferMetadataBuilder(AttentionMetadataBuilder[FlashInferMetadata]): ...@@ -542,9 +540,9 @@ class FlashInferMetadataBuilder(AttentionMetadataBuilder[FlashInferMetadata]):
is_profile_run = is_block_tables_empty(block_tables) is_profile_run = is_block_tables_empty(block_tables)
# Compute slot mapping. # Compute slot mapping.
start_idx = compute_slot_mapping_start_idx( start_idx = compute_slot_mapping_start_idx(is_prompt, query_len,
is_prompt, query_len, context_len, self.sliding_window, context_len,
self.use_v2_block_manager) self.sliding_window)
compute_slot_mapping(is_profile_run, self.slot_mapping, seq_id, compute_slot_mapping(is_profile_run, self.slot_mapping, seq_id,
seq_len, context_len, start_idx, seq_len, context_len, start_idx,
self.block_size, inter_data.block_tables) self.block_size, inter_data.block_tables)
......
...@@ -38,18 +38,12 @@ def is_block_tables_empty(block_tables: Union[None, Dict]): ...@@ -38,18 +38,12 @@ def is_block_tables_empty(block_tables: Union[None, Dict]):
def compute_slot_mapping_start_idx(is_prompt: bool, query_len: int, def compute_slot_mapping_start_idx(is_prompt: bool, query_len: int,
context_len: int, sliding_window: int, context_len: int, sliding_window: int):
use_v2_block_manager: bool):
""" """
Compute the start index of slot mapping. Compute the start index of slot mapping.
""" """
start_idx = 0 start_idx = 0
if is_prompt and sliding_window is not None: if is_prompt and sliding_window is not None:
assert use_v2_block_manager or context_len == 0, (
"Prefix caching is currently not supported with "
"sliding window attention in V1 block manager")
# When prefill, we use it to not write slots to kv cache
# to save memory.
start_idx = max(0, query_len - sliding_window) start_idx = max(0, query_len - sliding_window)
return start_idx return start_idx
...@@ -138,8 +132,6 @@ class CommonMetadataBuilder(AttentionMetadataBuilder[TAttentionMetadata]): ...@@ -138,8 +132,6 @@ class CommonMetadataBuilder(AttentionMetadataBuilder[TAttentionMetadata]):
self.sliding_window = input_builder.sliding_window self.sliding_window = input_builder.sliding_window
self.block_size = input_builder.block_size self.block_size = input_builder.block_size
self.use_v2_block_manager = (
input_builder.scheduler_config.use_v2_block_manager)
def _add_seq_group( def _add_seq_group(
self, inter_data: "ModelInputForGPUBuilder.InterDataForSeqGroup", self, inter_data: "ModelInputForGPUBuilder.InterDataForSeqGroup",
...@@ -180,9 +172,9 @@ class CommonMetadataBuilder(AttentionMetadataBuilder[TAttentionMetadata]): ...@@ -180,9 +172,9 @@ class CommonMetadataBuilder(AttentionMetadataBuilder[TAttentionMetadata]):
# Compute slot mapping. # Compute slot mapping.
is_profile_run = is_block_tables_empty(block_tables) is_profile_run = is_block_tables_empty(block_tables)
start_idx = compute_slot_mapping_start_idx( start_idx = compute_slot_mapping_start_idx(is_prompt, query_len,
is_prompt, query_len, context_len, self.sliding_window, context_len,
self.use_v2_block_manager) self.sliding_window)
compute_slot_mapping(is_profile_run, self.slot_mapping, seq_id, compute_slot_mapping(is_profile_run, self.slot_mapping, seq_id,
seq_len, context_len, start_idx, seq_len, context_len, start_idx,
self.block_size, inter_data.block_tables) self.block_size, inter_data.block_tables)
......
__commit__ = "93ec62b8556e279d2c050bdc1c3247831bd39466"
...@@ -949,7 +949,6 @@ class SchedulerConfig: ...@@ -949,7 +949,6 @@ class SchedulerConfig:
iteration. iteration.
max_model_len: Maximum length of a sequence (including prompt max_model_len: Maximum length of a sequence (including prompt
and generated text). and generated text).
use_v2_block_manager: Whether to use the BlockSpaceManagerV2 or not.
num_lookahead_slots: The number of slots to allocate per sequence per num_lookahead_slots: The number of slots to allocate per sequence per
step, beyond the known token ids. This is used in speculative step, beyond the known token ids. This is used in speculative
decoding to store KV activations of tokens which may or may not be decoding to store KV activations of tokens which may or may not be
...@@ -976,7 +975,6 @@ class SchedulerConfig: ...@@ -976,7 +975,6 @@ class SchedulerConfig:
max_num_batched_tokens: Optional[int], max_num_batched_tokens: Optional[int],
max_num_seqs: int, max_num_seqs: int,
max_model_len: int, max_model_len: int,
use_v2_block_manager: bool = True,
num_lookahead_slots: int = 0, num_lookahead_slots: int = 0,
delay_factor: float = 0.0, delay_factor: float = 0.0,
enable_chunked_prefill: bool = False, enable_chunked_prefill: bool = False,
...@@ -1026,7 +1024,6 @@ class SchedulerConfig: ...@@ -1026,7 +1024,6 @@ class SchedulerConfig:
self.max_num_seqs = max_num_seqs self.max_num_seqs = max_num_seqs
self.max_model_len = max_model_len self.max_model_len = max_model_len
self.use_v2_block_manager = use_v2_block_manager
self.num_lookahead_slots = num_lookahead_slots self.num_lookahead_slots = num_lookahead_slots
self.delay_factor = delay_factor self.delay_factor = delay_factor
self.chunked_prefill_enabled = enable_chunked_prefill self.chunked_prefill_enabled = enable_chunked_prefill
...@@ -1067,18 +1064,6 @@ class SchedulerConfig: ...@@ -1067,18 +1064,6 @@ class SchedulerConfig:
f"({self.num_scheduler_steps}) must be greater than or " f"({self.num_scheduler_steps}) must be greater than or "
"equal to 1.") "equal to 1.")
if (not self.use_v2_block_manager \
and not envs.VLLM_ALLOW_DEPRECATED_BLOCK_MANAGER_V1):
raise ValueError(
"The use of BlockSpaceManagerV1 is deprecated and will "
"be removed in a future release. Please switch to "
"BlockSpaceManagerV2 by setting --use-v2-block-manager to "
"True. If you wish to suppress this error temporarily, "
"you can set the environment variable "
"`VLLM_ALLOW_DEPRECATED_BLOCK_MANAGER_V1=1. If your use "
"case is not supported in BlockSpaceManagerV2, please "
"file an issue with detailed information.")
@property @property
def is_multi_step(self) -> bool: def is_multi_step(self) -> bool:
return self.num_scheduler_steps > 1 return self.num_scheduler_steps > 1
...@@ -1137,7 +1122,6 @@ class SpeculativeConfig: ...@@ -1137,7 +1122,6 @@ class SpeculativeConfig:
speculative_disable_mqa_scorer: Optional[bool], speculative_disable_mqa_scorer: Optional[bool],
speculative_max_model_len: Optional[int], speculative_max_model_len: Optional[int],
enable_chunked_prefill: bool, enable_chunked_prefill: bool,
use_v2_block_manager: bool,
disable_log_stats: bool, disable_log_stats: bool,
speculative_disable_by_batch_size: Optional[int], speculative_disable_by_batch_size: Optional[int],
ngram_prompt_lookup_max: Optional[int], ngram_prompt_lookup_max: Optional[int],
...@@ -1178,9 +1162,6 @@ class SpeculativeConfig: ...@@ -1178,9 +1162,6 @@ class SpeculativeConfig:
enable_chunked_prefill (bool): Whether vLLM is configured to use enable_chunked_prefill (bool): Whether vLLM is configured to use
chunked prefill or not. Used for raising an error since its not chunked prefill or not. Used for raising an error since its not
yet compatible with spec decode. yet compatible with spec decode.
use_v2_block_manager (bool): Whether vLLM is configured to use the
v2 block manager or not. Used for raising an error since the v2
block manager is required with spec decode.
speculative_disable_by_batch_size (Optional[int]): Disable speculative_disable_by_batch_size (Optional[int]): Disable
speculative decoding for new incoming requests when the number speculative decoding for new incoming requests when the number
of enqueue requests is larger than this value, if provided. of enqueue requests is larger than this value, if provided.
...@@ -1231,11 +1212,6 @@ class SpeculativeConfig: ...@@ -1231,11 +1212,6 @@ class SpeculativeConfig:
"Speculative decoding and chunked prefill are " "Speculative decoding and chunked prefill are "
f"currently mutually exclusive ({enable_chunked_prefill=}).") f"currently mutually exclusive ({enable_chunked_prefill=}).")
if not use_v2_block_manager:
raise ValueError(
"Speculative decoding requires usage of the V2 "
"block manager. Enable it with --use-v2-block-manager.")
# TODO: The user should be able to specify revision/max model len # TODO: The user should be able to specify revision/max model len
# for the draft model. It is not currently supported. # for the draft model. It is not currently supported.
draft_revision = None draft_revision = None
......
...@@ -4,28 +4,6 @@ from vllm.utils import (STR_NOT_IMPL_ENC_DEC_PREFIX_CACHE, ...@@ -4,28 +4,6 @@ from vllm.utils import (STR_NOT_IMPL_ENC_DEC_PREFIX_CACHE,
STR_NOT_IMPL_ENC_DEC_SWA) STR_NOT_IMPL_ENC_DEC_SWA)
def _get_block_mgr_sliding_window_attr(block_mgr):
'''
BlockManagerV1 and BlockManagerV2 have slightly different
members related to sliding window attention (SWA). This
function extracts the appropriate member to use for determining
whether SWA is enabled.
Arguments:
* block_mgr: BlockManagerV1 or BlockManagerV2 instance
'''
if hasattr(block_mgr, 'block_sliding_window'):
return block_mgr.block_sliding_window
if hasattr(block_mgr, 'max_block_sliding_window'):
return block_mgr.max_block_sliding_window
raise AttributeError("Block manager instance has neither " + \
"block_sliding_window nor " + \
"max_block_sliding_window attributes.")
def check_no_caching_or_swa_for_blockmgr_encdec( def check_no_caching_or_swa_for_blockmgr_encdec(
block_mgr, seq_group: SequenceGroup) -> None: block_mgr, seq_group: SequenceGroup) -> None:
''' '''
...@@ -41,7 +19,7 @@ def check_no_caching_or_swa_for_blockmgr_encdec( ...@@ -41,7 +19,7 @@ def check_no_caching_or_swa_for_blockmgr_encdec(
''' '''
if seq_group.is_encoder_decoder(): if seq_group.is_encoder_decoder():
if _get_block_mgr_sliding_window_attr(block_mgr) is not None: if block_mgr.max_block_sliding_window is not None:
raise NotImplementedError(STR_NOT_IMPL_ENC_DEC_SWA) raise NotImplementedError(STR_NOT_IMPL_ENC_DEC_SWA)
if block_mgr.enable_caching: if block_mgr.enable_caching:
......
...@@ -17,7 +17,7 @@ SeqId = int ...@@ -17,7 +17,7 @@ SeqId = int
EncoderSeqId = str EncoderSeqId = str
class BlockSpaceManagerV2(BlockSpaceManager): class SelfAttnBlockSpaceManager(BlockSpaceManager):
"""BlockSpaceManager which manages the allocation of KV cache. """BlockSpaceManager which manages the allocation of KV cache.
It owns responsibility for allocation, swapping, allocating memory for It owns responsibility for allocation, swapping, allocating memory for
......
This diff is collapsed.
...@@ -28,13 +28,9 @@ class BlockSpaceManager(ABC): ...@@ -28,13 +28,9 @@ class BlockSpaceManager(ABC):
def get_block_space_manager_class(version: str): def get_block_space_manager_class(version: str):
version = version.lower() version = version.lower()
if version == "v1": if version == "selfattn":
from vllm.core.block_manager_v1 import BlockSpaceManagerV1 from vllm.core.block_manager import SelfAttnBlockSpaceManager
return BlockSpaceManagerV1 return SelfAttnBlockSpaceManager
if version == "v2":
from vllm.core.block_manager_v2 import BlockSpaceManagerV2
return BlockSpaceManagerV2
if version == "placeholder": if version == "placeholder":
from vllm.core.placeholder_block_space_manager import ( from vllm.core.placeholder_block_space_manager import (
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment