Chranos 37627677c6 update
2026-04-02 14:07:42 +08:00
2026-04-02 04:55:00 +00:00
2026-04-02 04:55:00 +00:00
2026-04-02 04:55:00 +00:00
2026-04-02 04:55:00 +00:00
2026-04-02 14:07:42 +08:00
2026-04-02 14:07:42 +08:00

vLLM for VastAI VA16 (VACC)

基于 vLLM v0.11.0 的 VastAI VA16 加速卡适配版本,通过 Out-of-Tree (OOT) 插件机制将 vLLM 的推理能力扩展到 VA16 硬件平台。

项目结构

enginex-vastai-va16-vllm/
├── vllm/              # vLLM v0.11.0 核心代码
├── vllm_vacc/         # VA16 适配层(运行时 Patch 机制)
├── torch_vacc/        # VA16 PyTorch 后端(设备管理、算子库、驱动)
└── vacc_tools/        # 调试工具Trace、内存分析

支持的模型

模型系列 具体模型 备注
Qwen Qwen2, Qwen2-VL, Qwen2.5-VL, Qwen3, Qwen3-MoE, Qwen3-VL 支持 Fused Attention
DeepSeek DeepSeek-V2/V3, DeepSeek-MTP 支持 MLA、Fused Prefill
BERT/RoBERTa BERT, RoBERTa 支持 Fused Attention

同时支持通过 vLLM 原生代码运行的 LLaMA 等其他模型(经 VA16 Patch 适配)。

Docker

镜像信息

镜像地址 标签 大小
git.modelhub.org.cn:9443/enginex/xc-llm-va16 26.03 3.82GB

拉取镜像

docker pull git.modelhub.org.cn:9443/enginex/xc-llm-va16:26.03

构建镜像

docker build -t git.modelhub.org.cn:9443/enginex/xc-llm-va16:26.03 .

使用 Docker 运行

docker run --rm -it --device /dev/vacc0 \
    -v /tmp/va16_model_cache:/models \
    -p 8000:8000 \
    git.modelhub.org.cn:9443/enginex/xc-llm-va16:26.03 \
    python -m vllm.entrypoints.openai.api_server \
        --model /models/leaderboard/modelHubXC/Qwen/Qwen2-1.5B-Instruct \
        --host 0.0.0.0 --port 8000

快速开始

启动 OpenAI 兼容 API 服务

# 基本启动
python -m vllm.entrypoints.openai.api_server \
    --model /path/to/model \
    --tensor-parallel-size 1

# 示例:使用 Qwen2-1.5B-Instruct
python -m vllm.entrypoints.openai.api_server \
    --model /tmp/va16_model_cache/leaderboard/modelHubXC/Qwen/Qwen2-1.5B-Instruct \
    --tensor-parallel-size 1

调用 API

curl http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "Qwen2-1.5B-Instruct",
    "messages": [{"role": "user", "content": "你好"}]
  }'

环境变量

环境变量 默认值 说明
VACC_VISIBLE_MODULES - 控制可见的 VA16 设备(类似 CUDA_VISIBLE_DEVICES
VLLM_VACC_KVCACHE_SPACE 16 KV Cache 显存大小单位GB
VLLM_USE_V1 1 是否使用 vLLM V1 引擎(0 使用 V0
BLOCK_GROUP_SIZE 8192 KV Cache Block 组大小
USE_FLASH_ATTENTION 1 是否使用 Flash Attention
USE_FUSED_QWEN_ATTENTION 1 是否使用 Qwen 融合 Attention
USE_FUSED_BERT_ATTENTION 1 是否使用 BERT 融合 Attention
USE_DECODER_LAYER_FUSE_MODE 1 Decode 阶段层融合模式
FUSE_ALL_DECODER_LAYERS 1 是否融合所有 Decoder 层CMCU 循环)
LLM_MAX_PREFILL_SEQ_LEN 57344 最大 Prefill 序列长度
CUT_PREFILL_SEQ_LEN -1 切分 Prefill 序列长度(-1 为不切分)
VLLM_VACC_DUMP_LOGITS - 设置后将 Logits 导出到指定目录(调试用)

技术架构

插件机制

项目通过 vLLM 的 OOT Platform 插件机制注册 VaccPlatform,并在加载时通过 VllmPatchManager 对 vLLM 核心模块进行运行时 Patch包括

  • Attention 后端VACCAttentionBackend(标准注意力)和 VACCMLABackendMulti-head Latent Attention
  • WorkerVACCWorkerV0/V1 引擎)和 VACCModelRunner
  • 算子替换RMSNorm、RoPE、SiLU、GPTQ/FP8 量化等
  • 分布式通信all_reduce、all_gather、broadcast 等

支持特性

  • Tensor Parallel (TP)
  • 投机采样 (Speculative Decoding)
  • FP8 / GPTQ 量化
  • Chunked Prefill & Prefix Caching
  • OpenAI 兼容 APIChat/Completion/Embedding
  • LoRA 适配器
  • 多模态模型VL 系列)

调试工具

vacc_tools/ 提供以下工具:

  • memory_analyzer.py — VA16 显存使用监控与分析
  • generate_trace.py / trace_logger.py — 硬件执行 Trace 采集
  • parse_vacc_log_for_tracing.py — 硬件日志解析

版本信息

  • vLLM 基线版本v0.11.0
  • torch_vacc 版本1.3.3.777
  • Docker 镜像标签git.modelhub.org.cn:9443/enginex/xc-llm-va16:26.03
Description
No description provided
Readme 55 MiB
Languages
Python 99.9%