Llmspeed Benchmark: Your Practical Guide to Choosing the Right Hardware for On‑Device LLMs
Introduction
If you’re tired of guessing whether a single RTX 4090 can sustain 100 req/s for Llama‑2‑7B—or how much electricity a Jetson‑Orin inference server will burn each year—this guide is for you. Llmspeed is an open‑source CLI that lets you run reproducible, hardware‑agnostic benchmarks in minutes, so you can make data‑driven purchasing decisions before you spend a fortune.
In the next few sections we’ll walk through installing llmspeed, running benchmarks on CPUs, GPUs, and edge devices, and turning the raw numbers into actionable insights with a ready‑to‑use spreadsheet calculator. By the end you’ll be able to answer questions like:
- “Will a single RTX 4090 handle 100 req/s for Llama‑2‑7B?”
- “What’s the yearly electricity cost of a Jetson‑based inference server?”
- “Is an Apple M2 sufficient for my 5‑B‑parameter chatbot?”
Quick‑Start: Install and Run Your First Benchmark
# Install the CLI (Python 3.10+ required)
pip install llmspeed
# Verify the installation
llmspeed --version
Benchmark a 7B model on the default device
# The CLI auto‑detects the best device (CPU, Apple M‑series, NVIDIA/AMD GPU)
llmspeed run --model meta-llama/Llama-2-7b-chat-hf \
--prompt "Explain quantum tunneling in two sentences." \
--output results.json
Force a specific backend
# Run on the NVIDIA RTX 4090 explicitly
llmspeed run --model meta-llama/Llama-2-7b-chat-hf \
--device cuda \
--prompt "Summarize the plot of Inception." \
--output results.json
Run a batch of tests across multiple devices
# Create a YAML config with a list of devices and batch sizes
cat > benchmark.yaml <<'EOF'
models:
- meta-llama/Llama-2-7b-chat-hf
devices:
- cpu
- cuda
- rocm
- metal # Apple Silicon
batch_sizes: [1, 8, 32]
prompts:
- "Translate to French: The quick brown fox jumps over the lazy dog."
EOF
# Execute the whole matrix
llmspeed batch --config benchmark.yaml --output matrix_results.json
All measurements are performed locally; no data ever leaves your machine unless you enable the optional telemetry flag.
Frequently Asked Questions
| Question | Answer |
|---|---|
Do I need a GPU to run llmspeed benchmarks? |
No. llmspeed works on pure CPU, Apple M‑series GPUs, and external NVIDIA/AMD GPUs. Use --device to select a backend or let the CLI auto‑detect. |
| How close are the latency numbers to production performance? | In our internal tests the median latency differed by ≤ 5 % from a FastAPI service under identical load, because llmspeed uses the same HF‑Transformers pipeline with torch.compile when available. |
| Can I benchmark proprietary models safely? | Absolutely. All inference runs stay on‑device. The CLI only contacts external servers if you enable --telemetry. |
What metrics does llmspeed report? |
Cold‑start latency, warm‑start latency, throughput (tokens / sec), GPU/CPU utilization, memory consumption, and estimated power draw (via NVIDIA‑SMI or macOS powermetrics). |
| Is there a way to compare results across hardware? | Export the JSON output and drop it into the companion Google Sheet calculator (link in the repo). The sheet converts raw numbers into TCO, electricity cost, and SLA feasibility. |
Why Benchmark Now?
- GPU scarcity – 2024‑2025 chip shortages have pushed RTX 4090 and A100 prices 30‑50 % above MSRP. A data‑driven benchmark protects you from over‑investing.
- Edge AI explosion – From smartphones to autonomous drones, on‑device LLMs run on Apple M2, Qualcomm Snapdragon 8 Gen 3, NVIDIA Jetson, and more. Their compute‑power and power envelopes differ dramatically.
- Rising cloud inference costs – A 7B model on an AWS p3.2xlarge costs ~$0.80 per 1 M tokens. For high‑traffic apps that quickly eclipses a modest on‑premise setup.
- Regulatory pressure – GDPR, HIPAA, and emerging AI‑specific rules demand data stay on‑premises. Local benchmarking validates compliance before any deployment.
Interpreting the Results
| Metric | What to Look For | Example (RTX 4090) |
|---|---|---|
| Cold‑start latency | Indicates first‑request penalty; important for bursty traffic. | 420 ms |
| Warm‑start latency | Steady‑state response time; the key SLA number. | 68 ms |
| Throughput (tokens / sec) | Determines how many concurrent requests you can sustain. | 2,850 t/s |
| GPU Utilization | Should stay below ~85 % for headroom; spikes indicate bottlenecks. | 78 % |
| Power (W) | Feed into your electricity‑cost model. | 250 W (peak) |
| Estimated yearly electricity cost |
Power (W) × hours/year × $/kWh. |
$219 (US avg $0.13/kWh) |
Step‑by‑step calculation (using the spreadsheet):
- Upload
results.json. - Fill in your local electricity rate and expected annual usage (e.g., 24 h × 365 days).
- The sheet returns TCO = hardware price + electricity + maintenance over a chosen horizon (e.g., 3 years).
Practical Recommendations
| Scenario | Recommended Hardware | Reasoning |
|---|---|---|
| Low‑budget research notebook | Apple M2 or AMD Ryzen 7950X (CPU‑only) | Acceptable warm latency (~120 ms) for 7B models; zero GPU cost. |
| High‑throughput SaaS (≥ 100 req/s) | Dual RTX 4090 (NVLink) | Warm latency ≤ 70 ms, throughput > 5 k tokens/s, amortized electricity cost <$300/yr. |
| Edge robot with 5 W budget | NVIDIA Jetson Orin (8 TOPS) | Power‑aware inference; latency ~250 ms, fits < 5 W envelope. |
| Compliance‑first enterprise | On‑premise AMD EPYC + Radeon 7900 XTX | Strong FP16 performance, no vendor lock‑in, easy to audit. |
Next Steps
-
Clone the repo and explore the
examples/folder for ready‑made benchmark scripts. - Run the full matrix on your own hardware using the YAML config shown earlier.
- Feed the JSON output into the spreadsheet calculator (link in the README).
- Document the findings and share them with your procurement team—no more guesswork.
Happy benchmarking!
— The Llmspeed Team
Herramienta mencionada: Groq Cloud
Top comments (0)