doug.sh
Building things with keyboards and end mills. Rabbit holes included.
gpu-unlock lifts the half-rate cap on RTX 3090 BF16 tensor cores: matrix math 61 to 91% faster, vLLM prefill up 13 to 20%, no decode gain.
With GPU peer-to-peer (P2P) off, four Radeon AI PRO R9700s at tensor parallel 4 lost 45 to 55% of prefill speed, 30% of decode and 53% of 16-client throughput.
Linux 7.0 sized a PCIe switch's bridge window too small for four 32 GB GPU BARs (can't assign; no space). A kernel module that pads the BARs fixes it.
Why a motherboard with 128 GB of RAM won't POST with Resizable BAR on six GPUs: its 64-bit PCI window only has room for five 32 GB BARs.
Four Radeon AI PRO R9700s and two RTX 3090s behind a PEX88096 switch on one X570 slot: BIOS, kernel flags, ROCm and CUDA, and Qwen3.8-27B at 601 tok/s.
What bifurcation risers, retimers and PCIe switch (PLX) cards do for a multi-GPU box, with peer-to-peer copies at 54.7 GB/s inside a PEX88096 and what ACS costs.
Two RTX 3090s on a bifurcated x8/x8 splitter hung vLLM with timeouts and GPU errors. The fix was two PCIe register bits and a gen3 lock at boot.
How to point Oh My Pi at vLLM, llama.cpp, SGLang, and other local servers or a gateway, plus two config fixes for omp 18.2.7 and later.
Keeping vLLM's Prefix Cache Warm Between Agent Turns
Sep 15, 2026
What vLLM's cache tiers hold, why coding agent traffic keeps invalidating them, and the Bifrost tool schema bug that cost 90 to 180 seconds on the turns it hit.
How I cut a self-hosted coding agent's wait per turn from 28 seconds to 7 with Oh My Pi, a thinking budget and a warm vLLM prefix cache.