# vLLM-2080Ti-Definitive
**Repository Path**: python395118/vLLM-2080Ti-Definitive
## Basic Information
- **Project Name**: vLLM-2080Ti-Definitive
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: vllm-2080ti-deifinitive
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-08-16
- **Last Updated**: 2026-08-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# ⚡ vLLM 2080 Ti Definitive Edition

面向双 RTX 2080 Ti / SM75 推理的终极版 vLLM 运行时。
这是一个硬件定向的 vLLM fork,用来保存已经跑通的 2080 Ti vLLM
栈:补丁源码、启动 profile、运行时说明和稳定环境记录。
Fork 发布版本:`v0.1.15`
基础 vLLM:`0.21.0`
核心实测:双 2080 Ti TP=2 runtime 下,Qwen3.x 27B FP8 路线已在官方
Qwen3.6 和 Qwen3.8 权重上验证,其中 Qwen3.6 基线单请求 decode 达到
`100+ tok/s`;Qwen3.x 35B 路线也已跑通 256K 纯文本 normal/aggressive
noMTP、136K 图文 normal/aggressive,以及 178K fast/MTP3 路线。
语言:[English](README.md) | 简体中文

## 💡 为什么用 RTX 2080 Ti 做 LLM 推理?
2018 年 8 月,NVIDIA 推出了划时代的 RTX 2080 Ti 系列显卡,并将玩家
显卡产品线从 GTX 带入 RTX 时代,从此开启了实时光追时代。这一代显卡
给无数电脑爱好者留下了难以磨灭的印记。八年之后,2080 Ti 依然可以在
2K 分辨率下流畅运行当下主流 3A 大作,可以说是老骥伏枥,志在千里。
而当年的 2080 Ti 还留下了两个非常关键的硬件空间:一是可以把 11 颗
1GB GDDR6 显存颗粒升级为 2GB 容量,从而获得 22GB 可用显存;二是它
保留了在 40 系之后被消费级显卡淘汰的 NVLink 高速互联接口。当高规格
核心、改造后的大显存、高速卡间互联,以及以今天眼光看依然很快的显存
带宽叠加在一起,我们在审视本地 AI 推理时发现,这个组合仍然有巨大的
用武之地。具体而言:
| 指标 | 2x 2080 Ti 22GB + NVLink | 3090 Ti 24GB 基线 | 倍率 |
|---|---:|---:|---:|
| 物理 CUDA core 数量 | 8,704 | 5,376 | 1.62x |
| SM 数量 | 136 | 84 | 1.62x |
| 物理 Tensor Core 数量 | 1,088 | 336 | 3.24x |
| Dense Tensor FP16 matrix throughput | 228 TFLOPS | 160 TFLOPS | 1.43x |
| 总物理显存带宽 | 1,232 GB/s | 1,008 GB/s | 1.22x |
| 总显存容量 | 44GB | 24GB | 1.83x |
| 二手价格锚点 | CNY 3,600,含 NVLink | 约 CNY 7,000-8,000 | 约 0.5x |
这个项目的核心判断很简单:用约一半 RTX 3090 Ti 二手价格,组出双
22GB RTX 2080 Ti + NVLink,并在 LLM 推理真正关心的物理资源上持平甚至
超过 3090 Ti,再通过 vLLM 运行时优化把这些资源转化成真实 token 产出。
这就是本 fork 的首要价值:把老但仍然很强的 Turing 硅片,通过 Marlin、
FlashQLA/FlashInfer、TurboQuant/INT8 KV、MTP 和 CUDAGraph 集成,
变成一个严肃可用的 27B/31B/35B 级别推理平台。
## 🧩 核心路线
服务形态:
- 本项目追求的是双 2080 Ti 上的极限单并发性能:一个个人 agent 场景、
一个足够强的 27B/31B/35B 模型,以及这套硬件能稳定承载的最大实用上下文。
- 它不是多租户 serving 集群。多 agent 使用更适合作为排队式工作区隔离,
而不是并行长 prefill 吞吐。长上下文并发在调好参数后可以安全排队,
但在这个 TP=2 profile 下实际会被 runtime scheduler 串行化。
状态:🟢 已验证支持;🟡 实验或部分支持;🔴 已知失败或明显退化;⚪ 非目标预设或尚未验证。
### Qwen3.x 27B 成熟主线
Qwen3.x 系 27B 是这个 fork 的主要生产路线,在 FP8/INT4/NVFP4 权重、MTP、
FP16/INT8/TurboQuant KV、256K 原生上下文、YaRN 容量和图像多模态上覆盖最完整。
| 功能 | FP16 KV | INT8 KV | TurboQuant KV |
|---|---|---|---|
| Marlin 权重路线 | 🟢 FP8/INT4/NVFP4 | 🟢 FP8/INT4/NVFP4 | 🟢 FP8/INT4/NVFP4 |
| MTP 解码 | 🟢 支持 | 🟢 支持 | 🟢 支持 |
| 原生 256K 上下文 | 🟢 支持 | 🟢 支持 | 🟢 支持 |
| YaRN 扩展 | ⚪ 非目标路线 | 🟢 支持 | ⚪ 非目标预设 |
| No-eager / CUDAGraph | 🟢 支持 | 🟡 部分支持 | 🟢 支持 |
| 快速 prefill 路线 | 🟢 FlashQLA / FlashInfer | 🟢 FlashQLA / FlashInfer | 🟢 FlashQLA / FlashInfer |
| 图像多模态 | 🟢 支持 | 🟢 支持 | 🟢 支持 |
| 当前预设状态 | 🟢 normal / fast / safe | 🟢 normal / safe | 🟢 fast |
### Qwen3.x 35B 成熟第二主线
Qwen3.x 35B MoE 是同一套双 2080 Ti 已验证 runtime 上的成熟第二主线。
它整体上继承了 27B 主线的大部分支持能力:MTP、FP16 KV 长上下文服务、
FlashQLA / FlashInfer 快速 prefill,以及图像多模态都已经支持。
当前正式预设覆盖 FP16 KV 的 256K 纯文本 `normal` / `aggressive`、FP16 KV
的 136K 图文 `normal` / `aggressive`,以及一条 178K 的 `fast` MTP3 预设。
### Gemma4 31B 实验路线
Gemma4 31B 保留为第二路线和实验路线。目前最值得继续推进的是官方 QAT
target 搭配对应的 QAT assistant,这条路线相比早期 Gemma 变体有更好的
FP16/default KV 空间。
| 功能 | FP16 KV | INT8 KV | TurboQuant KV |
|---|---|---|---|
| Marlin 权重路线 | 🟢 GPTQ / QAT | 🟡 GPTQ / QAT | 🟡 GPTQ / QAT |
| MTP 解码 | 🟡 QAT assistant MTP3 | ⚪ 无预设 | ⚪ 无预设 |
| 实测上下文 | 🟡 约 170K KV 空间 | 🔴 初始化问题 | 🔴 容量不足 |
| No-eager / CUDAGraph | 🟢 支持 | 🟡 fallback 问题 | 🟡 admission 受限 |
| 快速 prefill 路线 | 🟢 FlashInfer | 🟡 FlashInfer | 🟡 FlashInfer |
| 图像多模态 | ⚪ 无已验证预设 | ⚪ 无已验证预设 | ⚪ 无已验证预设 |
| 当前预设状态 | 🟡 仅实验 | ⚪ 无预设 | ⚪ 无预设 |
## 🧪 已测试模型权重
这一节记录 checkpoint 级别的验证结果。这里的标准比“vLLM 能加载”更严格:
支持表示可以启动并生成;推荐表示在双 2080 Ti 上同时具备有意义的速度 /
上下文权衡。当前 Qwen3.x 27B FP8 泛化路线覆盖下方列出的官方 Qwen3.6
和 Qwen3.8 权重;其它量化行仍按具体 checkpoint 记录。
| 模型路线 | 权重路线 | 模型卡 | 状态 |
|---|---|---|---|
| Qwen3.x 27B | FP8 | [Qwen/Qwen3.8-27B-FP8](https://huggingface.co/Qwen/Qwen3.8-27B-FP8)
[Qwen/Qwen3.6-27B-FP8](https://huggingface.co/Qwen/Qwen3.6-27B-FP8)
[Jackrong/Qwopus3.6-27B-v2-FP8](https://huggingface.co/Jackrong/Qwopus3.6-27B-v2-FP8) | 🟢 推荐 |
| Qwen3.x 35B | FP8 | [Qwen/Qwen3.6-35B-A3B-FP8](https://huggingface.co/Qwen/Qwen3.6-35B-A3B-FP8)
[Jackrong/Qwopus3.6-35B-A3B-Coder-FP8](https://huggingface.co/Jackrong/Qwopus3.6-35B-A3B-Coder-FP8)
[kyr0/Ornith-35B-FP8-E4M3-MTP](https://huggingface.co/kyr0/Ornith-35B-FP8-E4M3-MTP) | 🟢 推荐 |
| Qwen3.x 27B | AWQ-INT4 | [QuantTrio/Qwen3.6-27B-AWQ](https://huggingface.co/QuantTrio/Qwen3.6-27B-AWQ)
[mconcat/Qwopus3.6-27B-v2-AWQ-4bit](https://huggingface.co/mconcat/Qwopus3.6-27B-v2-AWQ-4bit) | 🟢 推荐 |
| Qwen3.x 27B | GPTQ-INT4 | [llmfan46/Qwen3.6-27B-uncensored-heretic-v2-Native-MTP-Preserved-GPTQ-Int4](https://huggingface.co/llmfan46/Qwen3.6-27B-uncensored-heretic-v2-Native-MTP-Preserved-GPTQ-Int4) | 🟢 推荐 |
| Qwen3.x 27B | NVFP4 | [unsloth/Qwen3.6-27B-NVFP4](https://huggingface.co/unsloth/Qwen3.6-27B-NVFP4) | 🟡 支持 |
| Qwen3.x 27B | Quark-INT8 | [nameistoken/Qwen3.6-27B-Quark-W8A8-INT8](https://huggingface.co/nameistoken/Qwen3.6-27B-Quark-W8A8-INT8) | 🟡 支持 |
| Qwen3.x 27B | AutoGPTQ-INT8 | [Minachist/Qwen3.6-27B-INT8-AutoRound](https://huggingface.co/Minachist/Qwen3.6-27B-INT8-AutoRound)
[Minachist/Qwen3.6-27B-INT8-AutoRound W8A16-GS128](https://huggingface.co/Minachist/Qwen3.6-27B-INT8-AutoRound/tree/W8A16-GS128) | 🟡 支持 |
| Gemma4 31B QAT | QAT + QAT assistant draft | [google/gemma-4-31B-it-qat-w4a16-ct](https://huggingface.co/google/gemma-4-31B-it-qat-w4a16-ct)
[google/gemma-4-31B-it-qat-q4_0-unquantized-assistant](https://huggingface.co/google/gemma-4-31B-it-qat-q4_0-unquantized-assistant) | 🟡 支持 |
| Gemma4 31B GPTQ | GPTQ-INT4 + assistant draft | [ebircak/gemma-4-31B-it-4bit-W4A16-GPTQ](https://huggingface.co/ebircak/gemma-4-31B-it-4bit-W4A16-GPTQ) | 🟡 支持 |
## 🛠️ 目标硬件与运行环境
- 已验证 GPU profile:双 RTX 2080 Ti 22GB,SM75,NVLink,tensor parallel
size 2
- 已验证主机系统:Ubuntu 22.04/24.04 LTS 或 Debian 12,Linux kernel 6.x
- CUDA/PyTorch:CUDA 12.8,`torch 2.11.0+cu128`
- Fork 发布版本:`v0.1.15`
- 基础 vLLM:`0.21.0`
- 仓库身份:`vllm-2080ti-definitive`
- 运行时身份:`vllm-sm75-tp2-cu128`
- 兼容目标:NVIDIA Turing / SM75 显卡。其它 Turing 显卡仍需要按显存容量、
P2P/NVLink 行为、模型 head_dim、KV dtype、CUDAGraph/MTP 设置重新验证
profile。
## 🚀 如何使用
下载仓库后直接编译 runtime:
```bash
git clone https://github.com/weicj/vLLM-2080Ti-Definitive.git
cd vLLM-2080Ti-Definitive
./build.sh
```
`build.sh` 会创建本地 `.venv`、安装依赖、编译 CUDA 扩展,并在结束时明确提示
成功或失败,同时给出 build log 路径。真正开始安装前,它还会先对 PyPI、Git、
PyTorch wheel 下载链路做测速,需要时自动切到更快的镜像路径。
随后启动并管理服务:
```bash
./launcher.sh
```
`launcher.sh` 是交互式服务管理器。你可以在菜单里选择 checkpoint 目录、套用或
修改 profile、选择 `safe` / `normal` / `fast` / `aggressive` 模式、选择
GPU/TP、设置端口、切换仅本地或局域网访问、配置 chat template 和工具调用、
启动服务、停止服务,也可以保存自定义 profile。
Prefix cache 默认作为 launcher 全局设置开启,不保存到具体 route profile 里。
对 Qwen 路线,launcher 会自动应用已验证 prefix-cache 路径所需的 cache mode。
支持 OpenAI-compatible 工具调用。launcher 提供自动工具选择、tool parser 选择
和严格结构化 tool 输出等全局运行参数。
启动成功后,状态区会显示 `RUNNING`、服务模型名、PID、OpenAI-compatible API
地址、日志文件位置、prefix-cache 状态、prompt token details 状态,以及 vLLM
能上报时的 cache 容量。
非交互启动示例:
```bash
MODEL_DIR=/path/to/qwen-or-gemma-checkpoint \
PROFILE=qwen27b/normal/int4/fp16kv-256K-mtp3-text-only.env \
MODE=normal \
PORT=8000 \
SERVICE_SCOPE=lan \
CUDA_VISIBLE_DEVICES=0,1 \
./launcher.sh --non-interactive
```
Profile 只声明兼容模式,不再提供推荐启动模式。需要指定模式时,显式传
`MODE=safe`、`MODE=normal`、`MODE=fast` 或 `MODE=aggressive`;launcher
会根据 profile 做二次校验。
3. 更新已有 checkout:
```bash
./update.sh
```
`update.sh` 会检查 GitHub 最新 Release 和本地 fork 版本;有新版本时下载
release archive,并保留本地 `.venv`、`.deps`、日志、结果、缓存和用户 profile
等运行状态,更新完成后会询问是否立刻运行 `build.sh`。
## 🧭 Profile 与推荐路线
从 [Profile 导引](profiles/README.zh-CN.md) 开始选。Profile 按
`profiles////.env` 组织,例如
`qwen27b/normal/int4/fp16kv-256K-mtp3-text-only.env`、
`qwen35b/aggressive/fp8/fp16kv-256K-nomtp-text-only.env` 和
`qwen35b/normal/fp8/fp16kv-136K-nomtp-text-image.env`。
可用模式:
- `normal`:默认推荐模式,适合日常生产部署。
- `fast`:高性能模式,但不推荐用于稳定生产部署。
- `aggressive`:更加激进的模式,性能与质量风险最高。
- `safe`:安全模式,速度较慢,但输出质量高度稳定,用于排障。
## 🚀 MTP 与 KV 精度
优先使用项目自带 profile,不建议一开始手动调 MTP 和 KV 参数。每条路线的
MTP 已按当前实测选择了更适合部署的值。KV 先按目标选择:FP16/default KV
追求质量,INT8 KV 用于平衡型长上下文服务,TurboQuant K8V4 用于 fast
压缩路线。
详细 benchmark 记录见
[MTP 任务敏感性](docs/mtp-task-sensitivity.md) 和
[Qwen3.6 KV 吞吐 Sweep](docs/qwen36-kv-throughput-sweep.zh-CN.md)。
## ❓ 硬件 Q&A
**Q:需要什么样的卡间互联?**
A:推荐 NVLink,但真正的底线是 GPU 之间能开启 PCIe P2P。当前验证系统使用了
NVLink,而且 PCIe 拓扑本身很不理想:一张卡 PCIe 3.0 x1,另一张卡 PCIe 3.0
x4。在 NVLink 承担 GPU-to-GPU 通信时,PCIe 插槽带宽不是主要瓶颈。没有
NVLink 时,不能直接认为极窄 PCIe 带宽也足够,仍然需要确认 P2P 行为并按实际
拓扑 benchmark。
**Q:需要很强的 CPU 或很多内存吗?**
A:不需要高端 CPU,但更推荐单核性能强、平台延迟低的现代 CPU。已验证路线可以
跑在 Intel Core i3-9100T + 16GB RAM 上;同一条 4096/128 GPTQ-INT4 MTP3 路线下,
更老的双 Xeon X5675 主机约为 56 tok/s decode,而 i3-9100T 约为 91 tok/s。
更多内存主要帮助 build、下载和 compile cache。由于 vLLM 有 Python / 服务化控制面,
很老的 CPU 平台可能更适合 llama.cpp 这类极简 C++ runtime。
**Q:哪些 Turing 显卡值得尝试?可以 11GB + 22GB 混搭吗?**
A:完整验证目标是双 RTX 2080 Ti 22GB。其它更推荐高显存 TU102 级别显卡:
TITAN RTX 24GB、Quadro RTX 6000 24GB、Quadro RTX 8000 48GB,最好成对使用并
具备 NVLink 或确认可用的 PCIe P2P。不推荐 11GB + 22GB RTX 2080 Ti 混搭来跑
这些 27B/31B profile,因为 vLLM TP=2 基本会被较小 rank 的显存限制。更小的
Turing 卡可以跑小模型,但不是这个 stack 的主要目标。
**Q:已验证的 CUDA、PyTorch 和驱动版本是什么?**
A:已验证 runtime 是 CUDA 12.8 + `torch 2.11.0+cu128`,参考验证主机使用
NVIDIA driver `590.48.01`。请使用支持目标 GPU、并且兼容该 CUDA runtime 的
较新 NVIDIA driver。不要随意混用 build/runtime 假设:PyTorch CUDA 版本、
本地 CUDA toolkit、FlashInfer/FlashQLA 构建和启动 profile 应保持一致。
**Q:还有哪些硬件风险需要注意?**
A:散热、供电稳定性,以及给模型文件和 compile cache 留够 SSD 空间。长 prefill
或反复 CUDAGraph/AOT 编译时,降频很容易伪装成软件性能回退。
## 🔗 相关项目
- [2080Ti-LLM-Toolbox](https://github.com/weicj/2080Ti-LLM-Toolbox):双
2080 Ti 模型路线、benchmark 汇总、模型记录和运行建议的配套工具箱。
本仓库则聚焦于 vLLM 运行时源码、补丁和启动配置本身。
## 🙏 致谢 / 上游项目
本仓库是基于上游 [vLLM](https://github.com/vllm-project/vllm) 的硬件定向
fork,遵循 Apache-2.0 license。仓库保留上游项目结构,并加入面向双
2080 Ti / SM75 路线的本地运行时补丁、启动 profile 和验证记录。
当前 runtime 使用或集成的加速组件包括:
- [vLLM](https://github.com/vllm-project/vllm):基础推理引擎和 serving
框架。
- [FlashInfer](https://github.com/flashinfer-ai/flashinfer):vLLM 使用的
attention、sampling 和量化 kernel 路线。
- [QwenLM/FlashQLA](https://github.com/QwenLM/FlashQLA):上游 FlashQLA
Gated DeltaNet / Qwen3.5 linear-attention 实现。
- [weicj/FlashQLA-SM70-SM75](https://github.com/weicj/FlashQLA-SM70-SM75):
面向 SM70/SM75 的适配版本,已验证 Qwen3.6 prefill profile 会用到。
- TurboQuant、Marlin、CUTLASS、Triton 以及 vLLM
相关加速 kernel:这些都是已有开源加速工作,本项目将它们整合、适配并在
目标硬件上验证。
本仓库不会严格跟随上游 vLLM 的主线节奏,但上游更新合入的补丁都会在
SM75 适用范围内重新验证。