A symbol scan over every tracked file found 123 top-level definitions in vllm/ with zero references, including references inside strings. All of them came from features this fork deleted earlier. - Delete dead attention helpers: MLADCPManager, split_prefill_chunks, the reshape helpers, compute_varlen_chunk_metadata, the LINEAR backend's unused BailingLinearAttentionBackend, and the sparse flash-attn entry points. - Delete the CPU and AMX op wrappers from _custom_ops.py: cpu_mla_decode, cpu_mla_extend, cpu_mla_get_scheduler_metadata, gather_mla_context_cache_cpu. - Delete dead quantization helpers: awq_pack, gptq_pack, gptq_quantize_weights, get_and_maybe_dequant_weights, marlin_quant_fp8_torch, the rand_marlin_weight_*_like pair, ocp_mx_weight_dtype_and_rows, get_fp8_block_weight_scale, input_to_float8. - Delete dead model helpers: resolve_visual_encoder_outputs, run_dp_sharded_vision_model, fast_topk, get_layer_index, is_pp_missing_parameter, skip_spec_layers, KimiK3MergedQKVGateLinear, selective_scan_fn, causal_conv1d_update_torch. - Delete dead utils: format_kib, format_mib, chunk_list, prev_power_of_2, split_host_port, join_host_port, make_zmq_path, make_async_with_semaphore, is_meta_module, is_non_overlapping_and_dense, supports_xpu_graph, create_kv_caches_with_random*, and the unused has_* capability probes. - Delete the unreachable deep-gemm mega-MoE warmup path, which imported vllm.models.deepseek_v4.nvidia.model and vllm.models.kimi_k3.nvidia.model, neither of which exists anymore. - Drop the imports and the two now-empty guards left behind. Verified statically: every changed file compiles, no unused import remains, and no deleted name is referenced in vllm, tests or csrc. The runtime gates still need the Python environment rebuilt. Co-authored-by: Hinata <hinata@idihore.id> Signed-off-by: MOVZX <movzx@yahoo.com>
41 lines
1.1 KiB
Python
41 lines
1.1 KiB
Python
# SPDX-License-Identifier: Apache-2.0
|
|
# SPDX-FileCopyrightText: Copyright contributors to the vLLM project
|
|
"""Math utility functions for vLLM."""
|
|
|
|
from bisect import bisect_left
|
|
|
|
# Approximate value of 1/ln(2), used for log/exp base conversion
|
|
# Best FP32 approximation: 1.4426950216 (hex 0x3FB8AA3B)
|
|
RCP_LN2 = 1.4426950216
|
|
|
|
|
|
def cdiv(a: int, b: int) -> int:
|
|
"""Ceiling division."""
|
|
return -(a // -b)
|
|
|
|
|
|
def next_power_of_2(n: int) -> int:
|
|
"""The next power of 2 (inclusive)."""
|
|
return 1 if n < 1 else 1 << (n - 1).bit_length()
|
|
|
|
|
|
def round_up(x: int, y: int) -> int:
|
|
"""Round up x to the nearest multiple of y."""
|
|
return ((x + y - 1) // y) * y
|
|
|
|
|
|
def round_down(x: int, y: int) -> int:
|
|
"""Round down x to the nearest multiple of y."""
|
|
return (x // y) * y
|
|
|
|
|
|
def largest_power_of_2_divisor(n: int) -> int:
|
|
"""Return the largest power-of-2 that divides *n* (isolate lowest set bit)."""
|
|
return n & (-n)
|
|
|
|
|
|
def round_up_to(values: list[int], n: int) -> int | None:
|
|
"""Round `n` up to the smallest member of sorted `values` >= n, or None."""
|
|
i = bisect_left(values, n)
|
|
return values[i] if i < len(values) else None
|