# GPU Migration Benchmarks: GTX 1080 Ti → RTX 2080 Ti

Date: May 2026
Source GPU: GTX 1080 Ti (Pascal, 11GB, no tensor cores)
Target GPU: RTX 2080 Ti (Turing SM75, 11GB, 280W PL, tensor cores)
CUDA: 12.6, Driver: 550.163.01
Binary: llama-server-sm75 (custom build from llama.cpp-mtp-turbo)

## Key Differences Detected

| Aspect | 1080 Ti | 2080 Ti |
|--------|---------|---------|
| Flash attention | Software-emulated | Hardware tensor cores |
| turbo3/turbo4 | Q4/Q4 fallback | INT8/INT4 native |
| Max context (35B MoE) | 150K | 250K |
| q8_0 cache viability | OOM prone | Works at 200K |

## Full Benchmark Results

### Heretic 35B MoE + Native MTP (PRIMARY)
Qwen3.6-35B-A3B-uncensored-heretic-Native-MTP-Preserved.Q4_K_M.gguf

| Cache | MTP | Threads | Context | tok/s | VRAM | Startup |
|-------|-----|---------|---------|-------|------|---------|
| turbo3/4 | on | 16 | 128K | 35.4 | 8.6GB | 4s |
| turbo3/4 | on | 16 | 150K | 43.8 | 8.3GB | 16s |
| turbo3/4 | on | 16 | 200K | 42.2 | 8.6GB | 4s |
| turbo3/4 | on | 32 | 250K | **47.9** | 8.0GB | 28s |
| q8_0 | on | 32 | 200K | **49.9** | 9.5GB | 56s |
| q8_0 | on | 32 | 250K | 48.3 | 9.7GB | 27s |
| q8_0 | off | 32 | 200K | 38.0 | 8.2GB | 29s |

**Production choice:** turbo3/4 + MTP @ 250K (47.9 tok/s, 8.0GB). MTP adds ~12 tok/s.

### Qwen3.6 35B MoE UD (no MTP)
Qwen3.6-35B-A3B-UD-Q4_K_M.gguf

| Cache | Context | tok/s | VRAM |
|-------|---------|-------|------|
| turbo3/4 | 128K | 45.3 | 7.8GB |
| turbo3/4 | 150K | 25.7 | 3.2GB |
| turbo3/4 | 200K | 25.8 | 3.3GB |

Note: 150K+ slowdown likely due to VRAM pressure — this model lacks MTP so can't use spec-draft efficiency to compensate.

### DeepSeek Flash 9B + MTP
Qwen3.5-9B-DeepSeek-V4-Flash-MTP-Q6_K.gguf

| Cache | Context | tok/s | VRAM |
|-------|---------|-------|------|
| turbo3/4 | 200K | 36.7 | 8.6GB |

### Qwopus Coder 9B + MTP
Qwopus3.5-9B-Coder-MTP-Q6_K.gguf

| Cache | Context | tok/s | VRAM |
|-------|---------|-------|------|
| turbo3/4 | 150K | 44.8 | 8.3GB |
| turbo3/4 | 200K | 43.2 | 8.6GB |

### Qwen3.5 9B Uncensored
Qwen3.5-9B-UD-Q5_K_XL.gguf

| Cache | Context | tok/s | VRAM |
|-------|---------|-------|------|
| turbo3/4 | 150K | 40.3 | 7.8GB |

### Gemma 4 26B MoE
gemma-4-26B-A4B-it-UD-Q4_K_XL.gguf

| Cache | Context | tok/s | VRAM | Notes |
|-------|---------|-------|------|-------|
| turbo3/4 | 131K | 25.2 | 3.2GB | |
| turbo3/4 | 150K | 25.3 | 3.3GB | |
| q8_0 | 131K | OOM | — | Killed by OOM during request |

Gemma needs turbo cache — q8_0 pushes it over 11GB. Uses `--n-cpu-moe 128 --no-kv-offload`.

## llama-swap Config for 2080 Ti

Optimal daily-driver flags (heretic-35b):

```
--threads 32 --threads-batch 32 --parallel 1
-c 250000 --ctx-size 250000
--batch-size 256 --ubatch-size 256
--cache-type-k turbo3 --cache-type-v turbo4
--flash-attn on --no-host -fitt 512
--n-cpu-moe 128
--spec-type mtp --spec-draft-n-max 3
--spec-draft-type-k q4_0 --spec-draft-type-v q4_0
```

Note: `--batch-size` lowered to 256 at 250K context to stay within VRAM budget. At 150K, 2048 batch is fine.

## System Setup

- Power limit: `sudo nvidia-smi -pl 280`
- Persistence mode: `sudo nvidia-smi -pm 1`
- llama-swap: systemd service, enabled, auto-restart
- Hermes custom_providers → `http://127.0.0.1:9292/v1`
- Model IDs in Hermes config must match llama-swap model names exactly
- All GGUF files in `/models/downloads/` — single flat directory
