Maru#

概述#

Maru 是一个高性能的 KV Cache 存储引擎,基于 CXL 共享内存构建,旨在用于 LLM 推理场景,在这些场景中,多个实例需要以最小延迟共享 KV Cache。

KV Cache 共享:没有 Maru 与有 Maru

有关架构的详细信息,请参阅 Maru 文档

快速开始#

安装 Maru:

git clone https://github.com/xcena-dev/maru.git
cd maru
./install.sh

这将安装 maru-servermaru-resourcedmaru Python 包。

使用 Maru 部署模型#

前提条件: CXL 设备(/dev/dax*),安装 Python 3.12+、vLLM 和 LMCache。

1. 启动 Maru 服务器

maru-server

2. 创建配置文件 (maru-config.yaml):

chunk_size: 256
local_cpu: False
max_local_cpu_size: 0
save_unfull_chunk: True

# Maru backend
maru_path: "maru://localhost:5555"
maru_pool_size: 4

3. 使用 Maru 启动 vLLM

LMCACHE_CONFIG_FILE="maru-config.yaml" \
vllm serve \
    meta-llama/Llama-3.1-8B-Instruct \
    --max-model-len 65536 \
    --kv-transfer-config \
    '{"kv_connector":"LMCacheConnectorV1", "kv_role":"kv_both"}'

配置#

LMCache 参数:

参数

默认

描述

maru_path

必需

Maru 服务器 URL(格式:maru://host:port

maru_pool_size

4.0

每个实例的 CXL 内存池大小(单位:GB,例如 40.5

高级参数(通过 extra_config):

参数

默认

描述

maru_instance_id

自动 UUID

唯一客户端实例标识符

maru_timeout_ms

5000

ZMQ RPC 套接字超时(毫秒)

maru_use_async_rpc

异步 DEALER-ROUTER RPC (false 表示同步 REQ-REP)

maru_max_inflight

64

最大并发异步 RPC 请求数

maru_eager_map

在连接时预先映射所有共享区域

附加资源#