From 50c1029d0a0e242cd4b8d3b119725b0d94ac6964 Mon Sep 17 00:00:00 2001 From: Robert Shaw Date: Tue, 7 May 2024 21:12:14 +0000 Subject: [PATCH] stray issues --- Dockerfile | 5 +- csrc/cpu/cache.cpp | 1 - docs/source/assets/kernel/v_vec.png | Bin 51256 -> 0 bytes docs/source/assets/kernel/value.png | Bin 121414 -> 0 bytes pyproject.toml | 1 + .../basic_correctness/test_chunked_prefill.py | 10 ++-- tests/lora/test_quant_model.py | 55 ++++++++---------- vllm/config.py | 10 +--- vllm/model_executor/models/xverse.py | 2 +- vllm/worker/model_runner.py | 7 ++- 10 files changed, 38 insertions(+), 53 deletions(-) delete mode 100644 docs/source/assets/kernel/v_vec.png delete mode 100644 docs/source/assets/kernel/value.png diff --git a/Dockerfile b/Dockerfile index 97c8a5399e8b5..15796446473b3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -102,6 +102,8 @@ WORKDIR /usr/src/flash-attention-v2 RUN pip --verbose wheel flash-attn==${FLASH_ATTN_VERSION} \ --no-build-isolation --no-deps --no-cache-dir +#################### FLASH_ATTENTION Build IMAGE #################### + #################### vLLM installation IMAGE #################### # image with vLLM installed FROM nvidia/cuda:12.4.1-base-ubuntu22.04 AS vllm-base @@ -124,6 +126,7 @@ RUN --mount=type=bind,from=build,src=/workspace/dist,target=/vllm-workspace/dist RUN --mount=type=bind,from=flash-attn-builder,src=/usr/src/flash-attention-v2,target=/usr/src/flash-attention-v2 \ --mount=type=cache,target=/root/.cache/pip \ pip install /usr/src/flash-attention-v2/*.whl --no-cache-dir +#################### vLLM installation IMAGE #################### #################### TEST IMAGE #################### # image to run unit testing suite @@ -159,7 +162,5 @@ RUN --mount=type=cache,target=/root/.cache/pip \ ENV VLLM_USAGE_SOURCE production-docker-image -ENV VLLM_USAGE_SOURCE production-docker-image - ENTRYPOINT ["python3", "-m", "vllm.entrypoints.openai.api_server"] #################### OPENAI API SERVER #################### diff --git a/csrc/cpu/cache.cpp b/csrc/cpu/cache.cpp index 93b8c6e23430a..7849a5df991b1 100644 --- a/csrc/cpu/cache.cpp +++ b/csrc/cpu/cache.cpp @@ -111,7 +111,6 @@ void copy_blocks(std::vector &key_caches, void reshape_and_cache(torch::Tensor &key, torch::Tensor &value, torch::Tensor &key_cache, torch::Tensor &value_cache, torch::Tensor &slot_mapping, - const std::string &kv_cache_dtype) { const std::string &kv_cache_dtype, float kv_scale) { TORCH_CHECK(kv_scale == 1.0f); diff --git a/docs/source/assets/kernel/v_vec.png b/docs/source/assets/kernel/v_vec.png deleted file mode 100644 index bac3c10949f6c55b60bd16e023485a9281dd7e9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51256 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 B0L%aY diff --git a/docs/source/assets/kernel/value.png b/docs/source/assets/kernel/value.png deleted file mode 100644 index f585c77b2e1449825a3c704cce6b102f567696a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 121414 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

v#ADmd@Fjjc*B;H4OA0q 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 diff --git a/pyproject.toml b/pyproject.toml index a8071d8d8cc2e..6a448defc16e1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,6 +17,7 @@ exclude = [ # External file, leaving license intact "examples/fp8/quantizer/quantize.py" ] + [tool.ruff.lint] select = [ # pycodestyle diff --git a/tests/basic_correctness/test_chunked_prefill.py b/tests/basic_correctness/test_chunked_prefill.py index 840b785ef58d7..47d582c726c66 100644 --- a/tests/basic_correctness/test_chunked_prefill.py +++ b/tests/basic_correctness/test_chunked_prefill.py @@ -14,7 +14,6 @@ ] -@pytest.mark.skip(reason="drift") @pytest.mark.parametrize("model", MODELS) @pytest.mark.parametrize("dtype", ["half"]) @pytest.mark.parametrize("max_tokens", [32]) @@ -60,8 +59,7 @@ def test_models( for i in range(len(example_prompts)): hf_output_ids, hf_output_str = hf_outputs[i] vllm_output_ids, vllm_output_str = vllm_outputs[i] - assert ( - hf_output_str == vllm_output_str - ), f"Test{i}:\nHF: {hf_output_str!r}\nvLLM: {vllm_output_str!r}" - assert (hf_output_ids == vllm_output_ids - ), f"Test{i}:\nHF: {hf_output_ids}\nvLLM: {vllm_output_ids}" + assert hf_output_str == vllm_output_str, ( + f"Test{i}:\nHF: {hf_output_str!r}\nvLLM: {vllm_output_str!r}") + assert hf_output_ids == vllm_output_ids, ( + f"Test{i}:\nHF: {hf_output_ids}\nvLLM: {vllm_output_ids}") diff --git a/tests/lora/test_quant_model.py b/tests/lora/test_quant_model.py index c345f746ec54d..feda06b256e04 100644 --- a/tests/lora/test_quant_model.py +++ b/tests/lora/test_quant_model.py @@ -43,8 +43,7 @@ def format_prompt_tuples(prompt): prompts, sampling_params, lora_request=LoRARequest(str(lora_id), lora_id, lora_path) - if lora_id else None, - ) + if lora_id else None) # Print the outputs. generated_texts = [] for output in outputs: @@ -64,21 +63,19 @@ def test_quant_model_lora(tinyllama_lora_files, model, tp_size): # if torch.cuda.device_count() < tp_size: # pytest.skip(f"Not enough GPUs for tensor parallelism {tp_size}") - llm = vllm.LLM( - model=model.model_path, - enable_lora=True, - max_num_seqs=16, - max_loras=4, - max_model_len=400, - tensor_parallel_size=tp_size, - quantization=model.quantization, - trust_remote_code=True, - ) + llm = vllm.LLM(model=model.model_path, + enable_lora=True, + max_num_seqs=16, + max_loras=4, + max_model_len=400, + tensor_parallel_size=tp_size, + quantization=model.quantization, + trust_remote_code=True) if model.quantization is None: expected_no_lora_output = [ "Here are some examples of orange-brown colors", - "I'm sorry, I don't have", + "I'm sorry, I don't have" ] expected_lora_output = [ "#ff8050", @@ -111,7 +108,7 @@ def expect_match(output, expected_output): assert output != expected_no_lora_output for i, o in enumerate(output): assert o.startswith( - "#"), f"Expected example {i} to start with # but got {o}" + '#'), f"Expected example {i} to start with # but got {o}" return assert output == expected_output @@ -158,28 +155,24 @@ def test_quant_model_tp_equality(tinyllama_lora_files, model): # if torch.cuda.device_count() < 2: # pytest.skip(f"Not enough GPUs for tensor parallelism {2}") - llm_tp1 = vllm.LLM( - model=model.model_path, - enable_lora=True, - max_num_seqs=16, - max_loras=4, - tensor_parallel_size=1, - quantization=model.quantization, - trust_remote_code=True, - ) + llm_tp1 = vllm.LLM(model=model.model_path, + enable_lora=True, + max_num_seqs=16, + max_loras=4, + tensor_parallel_size=1, + quantization=model.quantization, + trust_remote_code=True) output_tp1 = do_sample(llm_tp1, tinyllama_lora_files, lora_id=1) del llm_tp1 cleanup() - llm_tp2 = vllm.LLM( - model=model.model_path, - enable_lora=True, - max_num_seqs=16, - max_loras=4, - tensor_parallel_size=2, - quantization=model.quantization, - ) + llm_tp2 = vllm.LLM(model=model.model_path, + enable_lora=True, + max_num_seqs=16, + max_loras=4, + tensor_parallel_size=2, + quantization=model.quantization) output_tp2 = do_sample(llm_tp2, tinyllama_lora_files, lora_id=1) del llm_tp2 diff --git a/vllm/config.py b/vllm/config.py index b51ed8d490b11..3b68acefd6284 100644 --- a/vllm/config.py +++ b/vllm/config.py @@ -580,15 +580,7 @@ def __init__( placement_group: Optional["PlacementGroup"] = None, ) -> None: self.pipeline_parallel_size = pipeline_parallel_size - if is_neuron(): - # For Neuron device support, here we assign TP=1 to avoid sharding - # within vLLM directly. Transformer-neuronx would take - # neuron_tp_degree attribute, and distribute the workload - # to multiple NeuronCores. - self.tensor_parallel_size = 1 - self.neuron_tp_degree = tensor_parallel_size - else: - self.tensor_parallel_size = tensor_parallel_size + self.tensor_parallel_size = tensor_parallel_size self.worker_use_ray = worker_use_ray self.max_parallel_loading_workers = max_parallel_loading_workers self.disable_custom_all_reduce = disable_custom_all_reduce diff --git a/vllm/model_executor/models/xverse.py b/vllm/model_executor/models/xverse.py index d86adc8451768..0fb2662b2f715 100644 --- a/vllm/model_executor/models/xverse.py +++ b/vllm/model_executor/models/xverse.py @@ -363,4 +363,4 @@ def load_weights(self, weights: Iterable[Tuple[str, torch.Tensor]]): param = params_dict[name] weight_loader = getattr(param, "weight_loader", default_weight_loader) - weight_loader(param, loaded_weight) \ No newline at end of file + weight_loader(param, loaded_weight) diff --git a/vllm/worker/model_runner.py b/vllm/worker/model_runner.py index 1561254cc12d1..a5ba45adb4cd1 100644 --- a/vllm/worker/model_runner.py +++ b/vllm/worker/model_runner.py @@ -1033,11 +1033,9 @@ def vocab_size(self) -> int: return self.model_config.get_vocab_size() -class CUDAGraphRunner(nn.Module): +class CUDAGraphRunner(): def __init__(self, model: nn.Module): - super().__init__() - self.model = model self.input_buffers: Dict[str, torch.Tensor] = {} self.output_buffers: Dict[str, torch.Tensor] = {} @@ -1125,6 +1123,9 @@ def forward( # Return the output tensor. return self.output_buffers["hidden_states"] + def __call__(self, *args, **kwargs): + return self.forward(*args, **kwargs) + @contextlib.contextmanager def _maybe_pynccl():