RTX 5080 和 RTX 3090 多 GPU 设置用于 Qwen 3.6 27B

使用 NVIDIA RTX 5080 (16GB) 和翻新 RTX 3090 (24GB) 的混合 GPU 配置,在运行 Qwen 3.6 27B Q8 量化模型时,可以实现 80 到 90+ tokens per second (tok/s) 的推理速度。该设置利用总计 40GB 的 VRAM 来容纳模型以及通过 Q8 KV-cache 量化实现的 230k 大上下文窗口。

Hardware Configuration and PCIe Requirements

为了在不同代际(Blackwell 和 Ampere)之间使用两块 GPU,主板必须支持 PCIe 通道拆分。

  • Motherboard: 使用 Asus Prime X570-Pro 将一个 16x PCIe 插槽拆分为 2x8。
  • Connectivity: 需要高质量的 PCIe 4 riser 来连接第二块 GPU。
  • VRAM Total: 16GB (RTX 5080) + 24GB (RTX 3090) = 总计 40GB 可用 VRAM。

BIOS and System Settings

正确的 BIOS 配置对于多 GPU 识别和性能至关重要。不支持以 BIOS/MBR 模式启动;必须使用 UEFI。

必须在 BIOS 中设置以下参数:

  • CSM (Compatibility Support Module): Disabled
  • Above 4G Decoding: Enabled
  • ReSize BAR Support: Auto or Enabled
  • PCIEX16_1 Link Mode: Gen 4
  • PCIEX16_2 Link Mode: Gen 4

Driver and Kernel Installation

对于混合代际的 NVIDIA 卡,推荐选择 nvidia-open 驱动。虽然补丁驱动(例如来自 open-gpu-kernel-modules)对于相同的 GPU 可能有效,但它们在混合不同架构时通常会失败。

要验证设置,nvidia-smi 命令应显示 RTX 3090 和 RTX 5080 均为活动设备。要检查 PCIe 端口是否以全速运行(16GT/s, Width x8),请使用以下命令:

sudo lspci -vvv -s 07:00.0 | grep "LnkSta:"

llama.cpp Build and Execution

Build Flags

为了同时支持 Ampere (RTX 3090) 和 Blackwell (RTX 5080) 架构,llama.cpp 必须使用特定的 CUDA 架构标志进行编译:

cmake -B build -DBUILD_SHARED_LIBS=OFF -DGGML_CUDA=ON -DGGML_NATIVE=ON -DGGML_CUDA_FA=ON -DGGML_CUDA_FA_ALL_QUANTS=ON -DCMAKE_CUDA_ARCHITECTURES="86;120" -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc -DGGML_CUDA_NCCL=OFF
  • CMAKE_CUDA_ARCHITECTURES="86;120": 启用对两个 GPU 代际的支持。
  • -DGGML_CUDA_NCCL=OFF: 研究发现 NCCL 在这种特定配置下会适得其反。

Execution Parameters

使用以下标志运行 llama-server 可以优化 VRAM 使用量和吞吐量:

llama-server -m ./models/Huihui-Qwen3.6-27B-abliterated-ggml-model-Q8_0.gguf \
    -c 229376 \
    -np 1 -fa on -ngl 99 -ub 512 -t 6 --no-mmap \
    --temp 0.7 --top-p 0.8 --top-k 20 --min-p 0.0 --presence-penalty 0.0 --repeat-penalty 1.0 \
    -ctk q8_0 -ctv q8_0 --kv-unified \
    --chat-template-kwargs {"preserve_thinking": true} \
    --spec-type ngram-mod,draft-mtp --spec-draft-n-max 3 \
    -sm tensor -ts 2,3 \
    --port 8001 --host 0.0.0.0

Key Optimization Details:

  • -sm tensor: 为多 GPU 设置启用 tensor splitting。
  • -ts 2,3: 设置显存卡使用率比例,以确保所有 VRAM 能够被高效地填满。
  • --spec-type ngram-mod,draft-mtp: 使用 Multi-Token Prediction (MTP) 和 ngram-mod 进行投机采样(speculative decoding)以提升 token 生成速度。
  • -ctk q8_0 -ctv q8_0: 将 KV-cache 量化为 Q8 以在保持 230k 上下文窗口的同时节省内存。

Performance Results

该配置在运行 Qwen 3.6 27B Q8 模型时,可实现约 81.84 到 91.13 tokens per second 的生成速度。

Community Insights and Counterpoints

社区用户针对该设置提供了额外的技术改进建议和注意事项:

  • Parameter Tuning: 一些用户建议,对于处于 "thinking mode" 的 Qwen 3.6,最佳设置是 --temp 1.0 --top-p 0.95 --top-k 20 --min-p 0.00,而编码任务则受益于 --temp 0.6。此外,有人认为在 NVIDIA 硬件上 --spec-draft-n-max 2 比 3 更稳定。

  • Model Alternatives: 虽然作者使用了 huihui-ai abliterated 模型,但一些社区成员推荐使用 hereticExCal 版本以获得更好的质量。

  • Power and Heat: 一个关键的操作性问题是功耗。这种规模的双 GPU 设置在满载时功耗可达 700W,整个系统可能达到 1kW,因此需要高质量的 PSU 和散热管理。

  • Cost-Benefit Analysis: 一些用户指出,对于低频使用,通过 API 访问(例如通过 OpenRouter)比投入 2,000 美元以上的硬件和电力成本要便宜得多。

  • Alternative Hardware: 其他用户报告,使用更具性价比的性价比组合,例如在 MACHINIST X99 主板上使用 Xeon CPU 搭配两块 RTX 3080 20GB 卡,可以实现类似的性能(80 tok/s)。

Sources