feat: route silu_and_mul through operator runtime nn
基于 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
--model
/workspace/model
--max-tokens
--gpu-memory-utilization
(0, 1]
--max-model-len
--max-num-batched-tokens
--max-num-seqs
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 三种实现。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
Intro-vllm
基于 nano-vllm 的教学版 vLLM 推理引擎, 对接 Intro-ops 算子库,支持在源码级切换算子后端。
快速开始
运行
参数
--impltorch,dsl,primitivetorch--model/workspace/model--max-tokens--gpu-memory-utilization(0, 1]--max-model-len--max-num-batched-tokens--max-num-seqs架构
致谢
本项目是 nano-vllm 的 fork,在此向 nano-vllm 的原作者表示感谢。我们在此基础上增加了算子后端切换机制,使同一套推理代码能够对比运行 torch → TileLang → CUDA 三种实现。