Adapt Frontier RoPE profiling to vLLM 0.20
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Run Frontier's linear profiler against the vLLM 0.20 RoPE API.
|
||||
|
||||
Frontier passes the pre-v0.20 ``get_rope`` arguments separately, while vLLM
|
||||
0.20 carries the same values in ``rope_parameters``. Keep both repositories
|
||||
unchanged and adapt only that call boundary for the profiling experiment.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import inspect
|
||||
from typing import Any
|
||||
|
||||
import torch
|
||||
from vllm.model_executor.layers.rotary_embedding import get_rope as vllm_get_rope
|
||||
|
||||
from frontier.profiling.common.layers import rotary_embedding as frontier_rope
|
||||
|
||||
|
||||
def _vllm020_get_rope_adapter(
|
||||
*,
|
||||
head_size: int,
|
||||
rotary_dim: int,
|
||||
max_position: int,
|
||||
base: int | float,
|
||||
is_neox_style: bool,
|
||||
rope_scaling: dict[str, Any] | None,
|
||||
dtype: torch.dtype | None = None,
|
||||
) -> Any:
|
||||
rope_parameters = dict(rope_scaling or {})
|
||||
rope_parameters["rope_theta"] = base
|
||||
rope_parameters["rope_dim"] = rotary_dim
|
||||
return vllm_get_rope(
|
||||
head_size=head_size,
|
||||
max_position=max_position,
|
||||
is_neox_style=is_neox_style,
|
||||
rope_parameters=rope_parameters,
|
||||
dtype=dtype,
|
||||
)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
parameters = inspect.signature(vllm_get_rope).parameters
|
||||
if "rope_parameters" not in parameters or "rotary_dim" in parameters:
|
||||
raise RuntimeError(
|
||||
"Expected the vLLM 0.20 get_rope API with rope_parameters; "
|
||||
f"found {inspect.signature(vllm_get_rope)}"
|
||||
)
|
||||
|
||||
frontier_rope._VLLM_GET_ROPE = _vllm020_get_rope_adapter
|
||||
frontier_rope._VLLM_GET_ROPE_IMPORT_ERROR = None
|
||||
|
||||
from frontier.profiling.linear_op.main import main as frontier_main
|
||||
|
||||
frontier_main()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user