终极vLLM源码编译指南:从零构建高性能推理引擎

【免费下载链接】vllm A high-throughput and memory-efficient inference and serving engine for LLMs 【免费下载链接】vllm 项目地址: https://gitcode.com/GitHub_Trending/vl/vllm

vLLM是一个高性能、内存高效的LLM推理和服务引擎,本指南将带你从零开始编译vLLM源码,打造专属于你的高性能推理引擎。无论你是AI爱好者还是开发者,通过本指南都能快速掌握vLLM的编译方法,开启高效的大模型部署之旅。

📋 编译前准备工作

在开始编译vLLM之前,确保你的系统满足以下要求,并安装必要的依赖工具。

系统要求

  • 操作系统:Linux(推荐Ubuntu 20.04及以上版本)
  • Python:3.8 - 3.12
  • GPU支持
    • NVIDIA GPU:CUDA Toolkit 11.7及以上
    • AMD GPU:ROCm 6.3及以上(如MI200s、MI300等型号)
  • CPU支持:s390x架构(IBM Z平台,实验性支持)

必备依赖工具

  1. 基础编译工具

    sudo apt update && sudo apt install -y build-essential cmake ninja-build git
    
  2. Python依赖管理

    # 安装uv(推荐)或pip
    curl -LsSf https://astral.sh/uv/install.sh | sh
    # 或使用pip
    pip install --upgrade pip
    
  3. 加速编译工具

    # 安装ccache加速编译
    sudo apt install -y ccache
    

🔄 获取vLLM源码

首先,克隆vLLM项目仓库到本地:

git clone https://gitcode.com/GitHub_Trending/vl/vllm
cd vllm

🛠️ 编译步骤详解

根据你的硬件环境(GPU/CPU),选择以下对应的编译流程。

NVIDIA GPU编译流程

1. 安装CUDA Toolkit

确保已安装CUDA Toolkit 11.7+,可通过以下命令验证:

nvcc --version
2. 创建并激活虚拟环境
uv venv --python 3.12 --seed
source .venv/bin/activate
3. 安装依赖
# 安装构建依赖
uv pip install -r requirements/build.txt --torch-backend=auto
# 安装CUDA相关依赖
uv pip install -r requirements/cuda.txt
4. 生成CMake配置
python tools/generate_cmake_presets.py

该脚本会自动检测系统配置,生成CMakeUserPresets.json文件,包含编译所需的各项参数。

5. 执行编译
# 配置CMake
cmake --preset release
# 构建并安装
cmake --build --preset release --target install

AMD GPU编译流程

1. 安装ROCm环境

参考AMD官方文档安装ROCm 6.3+,以ROCm 7.0为例:

# 添加ROCm源
echo 'deb [arch=amd64] https://repo.radeon.com/rocm/apt/7.0/ jammy main' | sudo tee /etc/apt/sources.list.d/rocm.list
sudo apt update
# 安装ROCm核心组件
sudo apt install -y rocm-hip-sdk rocm-opencl-sdk
2. 安装ROCm版PyTorch
pip install --no-cache-dir torch torchvision --index-url https://download.pytorch.org/whl/nightly/rocm7.0
3. 安装Triton和Flash Attention
# 安装ROCm版Triton
git clone https://github.com/ROCm/triton.git
cd triton && git checkout f9e5bf54
cd python && python setup.py install && cd ../..

# 安装Flash Attention
git clone https://github.com/Dao-AILab/flash-attention.git
cd flash-attention && git checkout 0e60e394
GPU_ARCHS="gfx942" python setup.py install && cd ..
4. 编译vLLM
# 安装依赖
pip install -r requirements/rocm.txt
# 设置架构(以MI300为例)
export PYTORCH_ROCM_ARCH="gfx942"
# 编译安装
python setup.py develop

CPU编译流程(s390x架构)

1. 安装系统依赖
sudo dnf install -y gcc g++ make cmake numactl-devel
2. 安装Rust环境
curl https://sh.rustup.rs -sSf | sh -s -- -y
source "$HOME/.cargo/env"
3. 编译vLLM
# 移除requirements中的torch(使用 nightly 版本)
sed -i '/^torch/d' requirements/build.txt
# 安装依赖
pip install -v --extra-index-url https://download.pytorch.org/whl/nightly/cpu -r requirements/build.txt -r requirements/cpu.txt
# 构建wheel并安装
VLLM_TARGET_DEVICE=cpu python setup.py bdist_wheel && pip install dist/*.whl

🧩 vLLM引擎架构解析

vLLM的高性能得益于其精心设计的架构,核心组件包括输入处理、调度、模型执行和输出处理四个模块,共同协作实现高效的LLM推理。

vLLM引擎架构

vLLM引擎架构图:展示了LLMEngine的核心组成部分及其交互流程,包括输入处理、调度、模型执行和输出处理模块。

🚀 验证编译结果

编译完成后,通过以下命令验证vLLM是否安装成功:

# 启动vLLM服务
python -m vllm.entrypoints.openai.api_server --model meta-llama/Llama-3.2-1B-Instruct

如果服务成功启动,说明编译完成!你现在可以通过OpenAI兼容的API接口使用vLLM进行推理了。

💡 编译优化技巧

  1. 使用ccache加速编译

    export CMAKE_C_COMPILER_LAUNCHER=ccache
    export CMAKE_CXX_COMPILER_LAUNCHER=ccache
    
  2. 调整并行编译任务数: 在CMakeUserPresets.json中修改jobs参数,建议设置为CPU核心数的1.5倍。

  3. 清理构建缓存: 当遇到编译错误时,可尝试清理构建目录:

    rm -rf cmake-build-release
    cmake --preset release
    

📚 参考资料

通过本指南,你已成功掌握vLLM的源码编译方法。现在,你可以基于源码进行定制开发,进一步优化大模型推理性能,开启高效的LLM部署之旅!

【免费下载链接】vllm A high-throughput and memory-efficient inference and serving engine for LLMs 【免费下载链接】vllm 项目地址: https://gitcode.com/GitHub_Trending/vl/vllm

Logo

昇腾计算产业是基于昇腾系列(HUAWEI Ascend)处理器和基础软件构建的全栈 AI计算基础设施、行业应用及服务,https://devpress.csdn.net/organization/setting/general/146749包括昇腾系列处理器、系列硬件、CANN、AI计算框架、应用使能、开发工具链、管理运维工具、行业应用及服务等全产业链

更多推荐