Files
enginex-mlu590-vllm/README.md
2026-04-24 09:58:03 +08:00

3.1 KiB
Raw Permalink Blame History

Cambricon vLLM (vllm_mlu)

1. 项目描述

Cambricon vLLMvllm_mlu基于社区vLLM提供的插件系统开发旨在为用户提供在寒武纪MLU硬件平台上高效运行大语言模型LLM推理和服务的能力。

vllm_mlu支持包括但不限于Chunk Prefill、Prefix Caching、Spec Decode、Graph Mode、Sleep Mode等vLLM原生特性。

2. 更新历史

[2026.04.24] vllm_mlu day0支持DeepSeek-V4

3. 使用说明

软件环境依赖Cambricon SDKSDK获取请联系寒武纪官方支持渠道ecosystem@cambricon.com

NOTEvllm-mlu仓库仅支持MLU370以上的设备

3.1 镜像使用

使⽤寒武纪SDK提供的镜像 Cambricon vLLM Container。

# 加载镜像

docker load -i cambricon_vllm_container.tar.gz


# 进入镜像

docker run -it --net=host \
    --shm-size '64gb' --privileged -it \
    --ulimit memlock=-1 ${IMAGE_NAME} \
    /bin/bash

# 使⽤推理环境
source /torch/venv3/pytorch_infer/bin/activate
3.2 ⾃定义安装步骤

安装Cambricon vLLM前需要保证依赖已正确安装。

安装步骤:

# 已经获取Cambricon vLLM源码,包含vllm源码

# 基于vllm源码安装
cd vllm-v{社区vLLM版本}/
VLLM_TARGET_DEVICE=empty pip install -e . # 使⽤开发者模式安装

# 基于vllm-mlu源码安装
git clone https://github.com/Cambricon/vllm-mlu
cd vllm-mlu
pip install -e . # 使⽤开发者模式安装

# 安装ray
# 1. 进⼊vllm-mlu源码中。
cd tools/ray_mlu/
# 2. 适配基于Ray安装
pip install --no-cache-dir --force-reinstall ray==2.51.1
# 3. 为了在寒武纪设备运⾏Ray也需要适配寒武纪软件。
# PIP_INSTALL_LOC 指向pip的安装路径
cp __init__.py ${RAY_DIR}/_private/accelerators/__init__.py
cp mlu.py ${RAY_DIR}/_private/accelerators/
cp nsight.py ${RAY_DIR}/_private/runtime_env/nsight.py
cp node.py ${RAY_DIR}/_private/node.py
cp worker.py ${RAY_DIR}/_private/worker.py
cp device_manager/__init__.py ${RAY_DIR}/air/_internal/device_manager/__init__.py
cp device_manager/mlu.py ${RAY_DIR}/air/_internal/device_manager/
3.3 运行步骤

Cambricon vLLM代码运⾏和vLLM社区⼀致。

3.3.1 离线推理命令
# 运行推理命令

python examples/offline_inference/offline_inference.py ${MODEL_PATH}
3.3.2 在线推理命令

分别启动server和client完成推理服务示例如下

# server

vllm serve ${MODEL_PATH} \
    --port 8100 \
    --block-size 1 \
    --max-model-len 4096 \
    --tensor-parallel-size 8 \
    --gpu-memory-utilization 0.96 \
    --trust-remote-code \
    --enable-expert-parallel \
    --no-enable-prefix-caching \
    --disable-log-requests \
    --enforce-eager


# client, we post a single request here.

curl -X POST http://localhost:8100/v1/completions \
    -H "Content-Type: application/json" \
    -d '{"model": ${MODEL_PATH}, \
        "prompt": "The future of AI is", \
        "max_tokens": 128, "temperature": 0.7 \
    }'