Background

2026-07-05 · source · source ↗ · raw capture · wiki page

The author (iMil) initially bought an RTX 5080 for gaming and AI. By 2026, needing more than 16GB VRAM for models like Qwen 3.5, Gemma, and Qwen 3.6, they added a refurbished RTX 3090 (24GB). This allowed Qwen 3.6 Q4 quants at ~30 tok/s, later 50-60 with MTP. Unsatisfied with the 5080 sitting mostly idle, they pursued a dual-GPU setup.

Motherboard: Asus Prime X570-Pro — the "Pro" designation is crucial because it allows splitting the 16x PCIe into 2x8 lanes.

Riser: A quality PCIe 4 riser for the 5080 in the second slot.


BIOS Configuration

Crucial finding: "you CAN'T boot the OS in BIOS/MBR mode" — this prevents dual-card usage entirely.

Settings applied:

Tab Path Setting
Boot CSM Disabled
Advanced -> PCI Subsystem Above 4G Decoding Enabled
Advanced -> PCI Subsystem ReSize BAR Support Auto or Enabled
Advanced PCIEX16_1 Link Mode Gen 4
Advanced PCIEX16_2 Link Mode Gen 4

Kernel & Driver Setup

The author points to NVIDIA's Tesla driver installation docs, noting the documentation is messy.

They tested open-gpu-kernel-modules but it failed because the two GPUs are different models and generations. For those with matching cards, the patched driver requires: 1. Uninstalling nvidia-dkms-open 2. Blacklisting the nova driver

The expected p2p status check via nvidia-smi topo -p2p r should show "OK" between both GPUs.

For mismatched cards like this setup, the standard nvidia-open driver is used. The nvidia-smi output confirms: - GPU 0: RTX 3090, bus 07:00.0, 24,576 MiB total, 23,646 MiB used - GPU 1: RTX 5080, bus 08:00.0, 16,303 MiB total, 15,861 MiB used - Driver: NVIDIA-SMI 610.43.02, KMD Version 610.43.02, CUDA UMD Version 13.3 - Both show P8 power state, low temperatures (34C / 31C)


llama.cpp Build & Configuration

CMake Build Flags

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

Key details: - CMAKE_CUDA_ARCHITECTURES="86;120" enables both Ampere (86 = RTX 3090) and Blackwell (120 = RTX 5080) - -DGGML_CUDA_NCCL=OFF — the author found NCCL counterproductive despite what llama-server logs claim - Flash attention is enabled for all quants

Server Launch Command

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 Configuration Details


Performance Results

The setup delivers "80+ tokens/sec" with peaks above 90 depending on task.

Metric Value
Generation speed (100 tokens) 81.84 t/s
Generation speed (388 tokens) 91.13 t/s
Prompt eval 219.76 ms / 17 tokens (77.36 t/s)
Total eval 5,185.10 ms / 457 tokens (88.14 t/s)
Total time 5,404.85 ms / 474 tokens
Draft acceptance rate 0.77295 (320 accepted / 414 generated)

Speculative Decoding Statistics


PCIe Verification

To confirm cards run at full speed during workload:

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

Expected output for each port with the 16x/2 split:

"LnkSta: Speed 16GT/s, Width x8 (downgraded)"

This confirms both cards are operating at PCIe Gen 4 speeds with 8 lanes each (the "downgraded" note simply reflects that the slot supports 16x electrically but is wired for 8x in this dual configuration).