Bob O'Dell
HomeAboutExperienceProjectsAI ToolsBlogContact
Bob O'Dell/Blog

Blog

A GeForce RTX graphics card photographed in selective focus, its fans and shroud filling the frame against a dark background.LLM

vLLM vs SGLang for agent workloads: the bake-off was decided by prefix caching, not throughput

A coding agent is a 30-60 turn loop that re-sends a huge, mostly-unchanged context every turn, so the benchmark that decides your engine is cross-request prefix caching, not tokens per second. What I measured on two RTX 5090s, and the second axis nobody charts: tool-call reliability over a long loop.

August 24, 202613 min read
Close-up of a computer processor and its surrounding cabling inside an open workstation case, lit by diffused indoor light.LLM

Two CPU cores, 100% busy, zero work: making a local LLM server event-triggered

An inference server that pins one CPU core per tensor-parallel rank at 100% while completely idle is not broken hardware. It is a busy-poll loop in the scheduler. How I found it, why a cpuset would only have hidden it, and the measurement three weeks later that mattered more than the two cores.

August 17, 202611 min read
A row of rack-mounted servers in a dimly lit server room, front panels and cabling visibleLLM

Tuning an LLM workstation: what actually moved the needle on CPU and GPU

A practical account of tuning a shared Ryzen 9950X / dual RTX 5090 box that runs CI, local LLM inference, and production web at once - which CPU and GPU settings measurably changed throughput and thermals, which ones did nothing, and the drift bug that made a frequency cap silently protect nothing.

August 15, 202612 min read
Bob O'Dell blog