Jump to content

Connect SuperML | Leeroopedia MCP: Equip your AI agents with best practices, code verification, and debugging knowledge. Powered by Leeroo — building Organizational Superintelligence. Contact us at founders@leeroo.com.

Implementation:LMCache LMCache LMCacheEngineConfig PD Fields

From Leeroopedia
Revision as of 15:24, 16 February 2026 by Admin (talk | contribs) (Auto-imported from implementations/LMCache_LMCache_LMCacheEngineConfig_PD_Fields.md)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)


Knowledge Sources
Domains Configuration, Distributed_Systems
Last Updated 2026-02-09 00:00 GMT

Overview

Concrete tool for configuring prefill-decode disaggregation parameters provided by the LMCacheEngineConfig class.

Description

The LMCacheEngineConfig includes PD-specific fields defined in _CONFIG_DEFINITIONS (lines 187-229): enable_pd, pd_role, pd_buffer_size, pd_buffer_device, pd_peer_host, pd_peer_init_port, pd_peer_alloc_port, pd_proxy_host, pd_proxy_port, and transfer_channel. Validation at lines 522-548 enforces that when enable_pd=True, all required fields are set and mutually exclusive features (remote_url, save_decode_cache, enable_p2p) are disabled.

Usage

Create YAML config files for each role and point to them via LMCACHE_CONFIG_FILE environment variable when launching each vLLM instance.

Code Reference

Source Location

  • Repository: LMCache
  • File: lmcache/v1/config.py
  • Lines: L187-L229 (field definitions), L522-L548 (validation)

Signature

# PD-specific fields in _CONFIG_DEFINITIONS dict:
"enable_pd": {"type": bool, "default": False}
"pd_role": {"type": Optional[str], "default": None}       # "sender" or "receiver"
"pd_buffer_size": {"type": Optional[int], "default": None}
"pd_buffer_device": {"type": Optional[str], "default": None}  # "cuda" or "cpu"
"pd_peer_host": {"type": Optional[str], "default": None}
"pd_peer_init_port": {"type": Optional[list[int]], "default": None}
"pd_peer_alloc_port": {"type": Optional[list[int]], "default": None}
"pd_proxy_host": {"type": Optional[str], "default": None}
"pd_proxy_port": {"type": Optional[int], "default": None}
"transfer_channel": {"type": Optional[str], "default": None}  # "nixl"

Import

from lmcache.v1.config import load_engine_config_with_overrides

I/O Contract

Inputs

Name Type Required Description
enable_pd bool Yes Enable prefill-decode mode
pd_role str Yes "sender" (prefiller) or "receiver" (decoder)
pd_buffer_size int Yes NIXL buffer size in bytes
pd_buffer_device str Yes Buffer device ("cuda" or "cpu")
pd_peer_host str Receiver Peer host address (required for receiver)
pd_peer_init_port list[int] Receiver NIXL init ports per TP rank (required for receiver)
pd_peer_alloc_port list[int] Receiver Allocation ports per TP rank (required for receiver)
pd_proxy_host str Sender Proxy host address (required for sender)
pd_proxy_port int Sender Proxy ZMQ port (required for sender)

Outputs

Name Type Description
config LMCacheEngineConfig Validated PD configuration instance

Usage Examples

Prefiller YAML Config

# lmcache-prefiller-config.yaml
chunk_size: 256
local_cpu: False
enable_pd: True
pd_role: "sender"
pd_buffer_size: 1073741824    # 1 GB
pd_buffer_device: "cuda"
pd_proxy_host: "localhost"
pd_proxy_port: 7500
transfer_channel: "nixl"

Decoder YAML Config

# lmcache-decoder-config.yaml
chunk_size: 256
local_cpu: False
enable_pd: True
pd_role: "receiver"
pd_buffer_size: 1073741824
pd_buffer_device: "cuda"
pd_peer_host: "localhost"
pd_peer_init_port: [7300]
pd_peer_alloc_port: [7400]
transfer_channel: "nixl"

Related Pages

Implements Principle

Page Connections

Double-click a node to navigate. Hold to expand connections.
Principle
Implementation
Heuristic
Environment