目录

Intro-vllm

基于 nano-vllm 的教学版 vLLM 推理引擎, 对接 Intro-ops 算子库,支持在源码级切换算子后端。

快速开始

pip install -e .

运行

# 默认 torch 后端
python example.py

# TileLang DSL 后端
PYTHONPATH=../Intro-ops/python:../Intro-ops python example.py --impl dsl

# CUDA 原语后端(需先 build Intro-ops)
CAMP_BUILD_DIR=../Intro-ops/build-nvidia \
  PYTHONPATH=../Intro-ops/python:../Intro-ops \
  python example.py --impl primitive

# 如果可用显存较少,可以继续降低 demo 规模
PYTHONPATH=../Intro-ops/python:../Intro-ops \
  python example.py --impl dsl --max-model-len 512 --max-num-batched-tokens 512 --max-num-seqs 1

参数

参数 可选值 默认 说明
--impl torch, dsl, primitive torch 算子后端
--model 路径 /workspace/model 模型目录
--max-tokens int 256 最大生成长度
--gpu-memory-utilization float (0, 1] Config 默认值 覆盖 KV cache 显存预算比例
--max-model-len int Config 默认值 覆盖最大上下文长度
--max-num-batched-tokens int Config 默认值 覆盖 prefill 单批最多 token 数
--max-num-seqs int Config 默认值 覆盖最多并发序列数

架构

Intro-ops(算子库)
  ├── oprt.ops.*        # CUDA 原语
  ├── oprt.dsl.*        # TileLang DSL
  └── oprt.nn.*         # nn.Module 封装

          ↓ dispatch

Intro-vllm(推理引擎)
  └── nanovllm/layers/  # 每个 layer 通过 impl 参数选择后端

致谢

本项目是 nano-vllm 的 fork,在此向 nano-vllm 的原作者表示感谢。我们在此基础上增加了算子后端切换机制,使同一套推理代码能够对比运行 torch → TileLang → CUDA 三种实现。

关于
65.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号