14
stars
5
commits
Aug 30, 2026
updated
Getting a used PCIe Tesla V100 32GB from "just arrived in the post" to 60+ tokens/sec on a 27B dense model, on Pop!_OS, with llama.cpp.
Everything in here was hit for real on one build — the driver that won't load, the phantom hang that isn't a hang, the passive heatsink with no fan, and the flags that silently undo each other.
The PCIe V100's single 8-pin power socket is not a standard PCIe 8-pin — you cannot plug a normal PSU lead into it. You need an adapter that converts it to two PCIe 8-pin connections, fed from two separate PSU cables (the card pulls 250W; one PCIe 8-pin is rated ~150W).
The one used here: COMeap 8-pin to dual PCIe 8-pin (6+2). Order it with the card — it's easy to miss and it blocks the whole build.
sudo apt install nvidia-driver-580 # Volta needs the proprietary driver
export CUDA_DEVICE_ORDER=PCI_BUS_ID # do this before anything else
sudo nvidia-smi -e 0 # ECC off (one reboot, then permanent)
sudo nvidia-smi -pm 1 -pl 250 # persistence + full power
sudo nvidia-smi -lgc 1380 # lock clocks (check YOUR card's max)
Build llama.cpp dual-arch with gcc-10 (-DCMAKE_CUDA_ARCHITECTURES="70;86"), then:
CUDA_DEVICE_ORDER=PCI_BUS_ID CUDA_VISIBLE_DEVICES=0 \
./build/bin/llama-server \
-m target-Q4_K_M.gguf -md dflash2-draft.gguf \
-ngl 99 -ngld 99 \
--spec-type draft-dflash --spec-draft-n-max 4 \
-c 114688 -np 1 -fa on --jinja -b 512 -ub 256 \
--reasoning on --reasoning-format deepseek --reasoning-effort low
| Finding | Detail |
|---|---|
| Power caps aren't universally free | Identical throughput at 150W vs 250W on sparse MoE; 15–30% cost on dense + speculative decoding |
| ECC-off helps unevenly | MTP +12.5%, DFlash2 +4.3% — different bottlenecks |
| Method ranking flips with power state | MTP wins at 150W; DFlash2 wins at 250W + ECC off |
| Reasoning halves throughput | ~55 tok/s → 24–32 tok/s, near-identically for both methods |
| Manual placement flags break auto-fit | -ncmoe / -ot / --tensor-split disable it entirely → OOM on device 0 |
| KV cache is cheap on GQA models | 8K → 128K context cost only ~7.5 GB |
Building one of these? Find me at @kylehessling1 — happy to help anyone getting a V100 running, and equally happy to be told what we got wrong.
Measured August 2026. Single-run samples throughout — treat small differences as noise.
5 commits
14
stars
5
commits
Aug 30, 2026
updated
Getting a used PCIe Tesla V100 32GB from "just arrived in the post" to 60+ tokens/sec on a 27B dense model, on Pop!_OS, with llama.cpp.
Everything in here was hit for real on one build — the driver that won't load, the phantom hang that isn't a hang, the passive heatsink with no fan, and the flags that silently undo each other.
The PCIe V100's single 8-pin power socket is not a standard PCIe 8-pin — you cannot plug a normal PSU lead into it. You need an adapter that converts it to two PCIe 8-pin connections, fed from two separate PSU cables (the card pulls 250W; one PCIe 8-pin is rated ~150W).
The one used here: COMeap 8-pin to dual PCIe 8-pin (6+2). Order it with the card — it's easy to miss and it blocks the whole build.
sudo apt install nvidia-driver-580 # Volta needs the proprietary driver
export CUDA_DEVICE_ORDER=PCI_BUS_ID # do this before anything else
sudo nvidia-smi -e 0 # ECC off (one reboot, then permanent)
sudo nvidia-smi -pm 1 -pl 250 # persistence + full power
sudo nvidia-smi -lgc 1380 # lock clocks (check YOUR card's max)
Build llama.cpp dual-arch with gcc-10 (-DCMAKE_CUDA_ARCHITECTURES="70;86"), then:
CUDA_DEVICE_ORDER=PCI_BUS_ID CUDA_VISIBLE_DEVICES=0 \
./build/bin/llama-server \
-m target-Q4_K_M.gguf -md dflash2-draft.gguf \
-ngl 99 -ngld 99 \
--spec-type draft-dflash --spec-draft-n-max 4 \
-c 114688 -np 1 -fa on --jinja -b 512 -ub 256 \
--reasoning on --reasoning-format deepseek --reasoning-effort low
| Finding | Detail |
|---|---|
| Power caps aren't universally free | Identical throughput at 150W vs 250W on sparse MoE; 15–30% cost on dense + speculative decoding |
| ECC-off helps unevenly | MTP +12.5%, DFlash2 +4.3% — different bottlenecks |
| Method ranking flips with power state | MTP wins at 150W; DFlash2 wins at 250W + ECC off |
| Reasoning halves throughput | ~55 tok/s → 24–32 tok/s, near-identically for both methods |
| Manual placement flags break auto-fit | -ncmoe / -ot / --tensor-split disable it entirely → OOM on device 0 |
| KV cache is cheap on GQA models | 8K → 128K context cost only ~7.5 GB |
Building one of these? Find me at @kylehessling1 — happy to help anyone getting a V100 running, and equally happy to be told what we got wrong.
Measured August 2026. Single-run samples throughout — treat small differences as noise.
5 commits