文档版本:2026-10-31
适用场景:RTX PRO 6000 Blackwell(96G)+ WSL2 + vLLM 0.31.0 基线部署
模型格式:NVFP4(compressed-tensors 量化,非 BF16 / AWQ / GPTQ)
| 组件 | 版本 / 说明 |
|---|---|
| 宿主机系统 | Windows 10 / 11(64 位) |
| 虚拟化 | WSL2(严禁使用 WSL1) |
| GPU | NVIDIA RTX PRO 6000 Blackwell(96G,支持 NVFP4) |
| WSL 发行版 | Ubuntu 22.04 |
| 推理框架 | vLLM 0.31.0(基线,MTP 有 bug) |
| 备选框架 | SGLang(推荐用于 MTP 高吞吐场景) |
| 关键依赖 | FlashInfer 0.7.0.post1、CUDA 13.0、NVIDIA WSL 驱动 |
以 管理员身份 打开 PowerShell:
powershell展开代码# 启用 WSL 功能 dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart # 启用虚拟机平台(WSL2 必需) dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
执行完毕后 必须重启电脑。
重启后检查:
控制面板 → 程序 → 启用或关闭 Windows 功能 → 确认【虚拟机平台】【适用于 Linux 的 Windows 子系统】已勾选。
powershell展开代码# 安装 WSL(若已安装可跳过) wsl --install # 设置默认版本为 WSL2 wsl --set-default-version 2
国内用户建议:若网络不稳定,使用离线安装包(百度网盘等)导入,避免下载中断。 通过网盘分享的文件:wsl应用 链接: https://pan.baidu.com/s/1nARxIJL06TkjcPB_hM7TvQ?pwd=tyq1 提取码: tyq1 --来自百度网盘超级会员v4的分享
nvidia-smi 验证powershell展开代码wsl --install -d Ubuntu-22.04
powershell展开代码# 语法:wsl --import <系统名> <安装目录> <镜像路径> wsl --import Ubuntu22.04 "D:\Ubuntu22.04" "C:\Users\Administrator\Downloads\ubuntu-22.04.5-wsl-amd64.tar"
powershell展开代码wsl -d Ubuntu22.04
进入后提示符为 root@xxx:/#,执行以下命令创建用户(将 yourname 替换为实际用户名):
bash展开代码# 创建用户并加入 sudo 组
adduser test
usermod -aG sudo test
# 设置 WSL 默认登录用户
echo -e "[user]\ndefault=test" >> /etc/wsl.conf
# 设置 sudo 免密(可选)
echo "test ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/test
chmod 0440 /etc/sudoers.d/test
退出并重启 WSL:
bash展开代码exit
powershell展开代码wsl --shutdown wsl -d Ubuntu22.04
再次进入后应以普通用户自动登录。
bash展开代码# 备份原源
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
# 写入清华源
sudo tee /etc/apt/sources.list << 'EOF'
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
EOF
# 更新
sudo apt update && sudo apt upgrade -y
bash展开代码sudo tee -a /etc/wsl.conf << 'EOF'
[boot]
systemd=true
EOF
退出后在 PowerShell 中重启:
powershell展开代码wsl --shutdown wsl -d Ubuntu22.04
验证:
bash展开代码systemctl status
powershell展开代码# 查看列表 wsl --list -v # 启动指定发行版 wsl -d Ubuntu-22.04
bash展开代码sudo apt install -y build-essential git python3 python3-venv python3-pip curl wget
从 NVIDIA 官网下载 CUDA 13.0 for WSL-Ubuntu 的
.run文件。
bash展开代码sudo chmod +x cuda_13.0.0_580.65.06_linux.run
sudo ./cuda_13.0.0_580.65.06_linux.run
bash展开代码nvidia-smi
应能看到 RTX PRO 6000 Blackwell,CUDA Version 显示 12.x(WSL 继承 Windows 驱动版本)。
bash展开代码curl -LsSf https://astral.sh/uv/install.sh | sh
source $HOME/.bashrc
bash展开代码cd ~
uv venv vllm-env
source vllm-env/bin/activate
激活后命令行前缀显示
(vllm-env)。
bash展开代码uv pip install vllm==0.31.0 --index-url https://pypi.tuna.tsinghua.edu.cn/simple
bash展开代码uv pip show flashinfer-python
python -c "import flashinfer; print(flashinfer.__version__)"
# 预期输出:0.7.0.post1
| 问题 | 说明 |
|---|---|
| MTP 加载本地模型 | --speculative-config 指定本地绝对路径会触发 HFValidationError |
| 仅支持单 token 解码 | 无法启用 Qwen3.8 MTP,吞吐受限(基线约 391 tok/s) |
| 替代方案 | 如需 MTP 高吞吐,请改用 SGLang |
必须是 NVFP4 + compressed-tensors 格式,BF16/AWQ/GPTQ 不可直接使用此启动参数。
目标路径:/home/wdwc/Qwen3.8-27B-NVFP4
bash展开代码# WSL 可直接访问 Windows 磁盘
cp -r /mnt/d/模型/Qwen3.8-27B-NVFP4 ~/
禁止直接在
/mnt/d下加载模型,NTFS IO 性能极差,必须复制到 WSL ext4 目录。
bash展开代码pip install modelscope modelscope download --model unsloth/Qwen3.8-27B-NVFP4 --local_dir /home/wdwc/Qwen3.8-27B-NVFP4
bash展开代码ls ~/Qwen3.8-27B-NVFP4
# 应包含:config.json、model-*.safetensors、tokenizer*、quantization_config.json 等
bash展开代码source ~/vllm-env/bin/activate
export HF_HUB_OFFLINE=1
export TRANSFORMERS_OFFLINE=1
vllm serve /home/wdwc/Qwen3.8-27B-NVFP4 \
--host 0.0.0.0 \
--port 8000 \
--trust-remote-code \
--served-model-name Qwen3.8-27B \
--quantization compressed-tensors \
--kv-cache-dtype fp8 \
--max-model-len 32768 \
--gpu-memory-utilization 0.90
| 参数 | 说明 |
|---|---|
--host 0.0.0.0 | 允许 Windows 宿主机访问 |
--served-model-name | API 请求中使用的模型名称 |
--quantization compressed-tensors | NVFP4 量化必需 |
--kv-cache-dtype fp8 | 节省显存,提升并发 |
--max-model-len 32768 | 最大上下文 32k |
--gpu-memory-utilization 0.90 | 显存占用上限 |
首次启动会 JIT 编译 FlashInfer 内核,耗时较长,请耐心等待。
成功标志:日志输出 Uvicorn running on http://0.0.0.0:8000
新开 WSL 终端,激活环境:
bash展开代码curl http://localhost:8000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "Qwen3.8-27B",
"messages": [
{"role": "user", "content": "用一句话介绍 Qwen3.8-27B-NVFP4"}
],
"max_tokens": 512,
"temperature": 0.7,
"top_p": 0.95,
"chat_template_kwargs": {"enable_thinking": false}
}'
保持服务运行,新开终端:
bash展开代码vllm bench serve \ --backend openai-chat \ --base-url http://localhost:8000 \ --endpoint /v1/chat/completions \ --model Qwen3.8-27B \ --tokenizer /home/wdwc/Qwen3.8-27B-NVFP4 \ --dataset-name random \ --random-input-len 1024 \ --random-output-len 256 \ --num-prompts 64 \ --max-concurrency 1 \ --temperature 0 \ --ignore-eos
| 参数 | 说明 |
|---|---|
--max-concurrency | 并发数,建议阶梯测试:4 / 8 / 16 / 24 |
--request-rate inf | 尽可能发送请求,打满并发 |
--ignore-eos | 强制生成指定长度,排除结束符干扰 |
--save-result | 保存 JSON 结果文件 |
| 指标 | 含义 |
|---|---|
| Output token throughput | 输出 token 吞吐(核心) |
| Mean TTFT | 首 token 延迟(用户感知) |
| Mean TPOT | 单 token 生成延迟 |
WSL 监听 0.0.0.0:8000,Windows 可通过以下方式访问:
http://localhost:8000(WSL 自动端口转发,大部分场景可用)bash展开代码# WSL 内查看 IP
hostname -I
Windows 端使用 Postman / 前端 / 代码直接调用 http://<WSL_IP>:8000/v1/chat/completions
| 问题 | 解决方案 |
|---|---|
nvidia-smi 不可用 | 确认 Windows 驱动已安装,WSL 内无需单独装驱动 |
| 模型加载极慢 | 确保模型在 WSL ext4 目录,而非 /mnt/ 下 |
| FlashInfer 版本不匹配 | 强制安装 flashinfer-python==0.7.0.post1 |
| MTP 启动报错 | vLLM 0.31.0 已知 bug,换 SGLang 或等待修复 |
| 端口无法访问 | 检查 Windows 防火墙,或直接使用 WSL IP |
本文作者:zzz
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!