All research
Field Note 15InfrastructureExperiment · 12 Oct 2026

Does every AI workload need a GPU?

Kokoro, embeddings and three transcription models on Azure CPUs in South Africa, compared with our AWS Cape Town baseline.

An ivory CPU and mint GPU balanced on a sculptural beam.
1.44sKokoro EN median on Azure D4
Exploratory benchmark

First-party engineering evidence. Results apply to the tested configuration and sample; they are not an SLA or a general model ranking.

THE TAKEAWAY

Start with the workload, not the GPU.

What we learned

Kokoro was the clearest CPU candidate: the small D4 completed English speech at a 1.44-second median and French at 1.30 seconds. A larger D16 lowered those to 0.85 and 0.77 seconds, but increased allocated compute cost per character. Bigger was faster; it was not cheaper.

Embeddings worked on both CPU sizes and preserved all six expected search matches. The AWS GPU was faster and cheaper on the measured batch. Crane was a plausible CPU fallback. Sunflower and Whisper ran successfully, but the GPU remained preferable for interactive transcription.

Same model, measured differences

The nine paired Kokoro recordings had exactly matching durations and waveform correlations of 0.993–0.997. ASR round-trip WER was 14.8% for AWS and 13.9% for Azure across 108 reference words. These proxies cannot prove equal naturalness or pronunciation. Listen to the samples below.

Crane retained all 36 clean-clip transcripts on D4. CPU INT8 Whisper/Sunflower can produce different words from GPU INT8_FLOAT16. Small WER movements on twelve clips do not establish a quality improvement.

What this changes

Evaluate an isolated Kokoro CPU canary before considering a production move. Keep GPU transcription for interactive work; consider CPU embeddings for background indexing or fallback. No production routing changed in this experiment.

Kokoro already used CPU on the shared AWS GPU host. Moving it only reduces that AWS bill if the host can also be stopped or resized. Azure credit eligibility does not change economic unit cost.

THE MEASUREMENTS

Results, in context.

EXPLORE THE TRADEOFF

Faster. Cheaper. Sometimes both.

Switch workloads to compare the measured paths. Lower is better for both metrics.

Kokoro · English · Seconds per request
Azure D4 · model1.44 s
Azure D16 · model0.85 s
AWS · public API2.49 s

AWS includes API and admission overhead; Azure measures synthesis directly. Kokoro runs on CPU on both clouds. Cost excludes idle time, storage and transfer. Shared-host allocation is not marginal savings. Each chart starts at zero.

Kokoro: latency and allocated compute
Scroll sideways to compare all columns →
Host / pathEN median (s)FR median (s)EN USD / 1M charsFR USD / 1M chars
Azure D4 · model1.441.31.521.35
Azure D16 · model0.850.773.633.22
AWS · public API2.492.16.945.9

AWS includes HTTP/admission; Azure does not. AWS Kokoro also executes on CPU. Busy-compute estimates allocate the whole host rate to the measured operation. They exclude idle time, startup, storage, network and taxes; they are not customer API prices or marginal savings. Rates are the recorded October 2026 inputs, not a current quote.

Qwen3 Embedding 0.6B
Scroll sideways to compare all columns →
HostSix-document median (s)USD / 1M tokensExpected matches
Azure D40.4190.4486 / 6
Azure D160.1490.6376 / 6
AWS API0.1090.3146 / 6

All vectors were finite and 1,024-dimensional. Maximum cosine-similarity difference was approximately 0.0005. This is a small synthetic retrieval diagnostic.

Transcription: matched clean recordings
Scroll sideways to compare all columns →
ModelLanguageHostWER ↓Median (s) ↓USD / audio min
CraneENAWS baseline20.16%0.6670.00092
CraneENAzure D420.16%1.4260.00062
CraneENAzure D1620.16%0.7910.00154
CraneSWAWS baseline24.31%0.6920.00059
CraneSWAzure D424.31%1.9970.00053
CraneSWAzure D1624.31%0.9670.00120
CraneLGAWS baseline61.68%0.6750.00056
CraneLGAzure D461.68%1.7210.00053
CraneLGAzure D1661.68%0.8930.00121
SunflowerSWAWS baseline12.55%1.1400.00084
SunflowerSWAzure D412.16%9.8880.00265
SunflowerSWAzure D1612.16%4.0840.00442
WhisperENAWS baseline6.45%0.8890.00100
WhisperENAzure D44.44%8.1570.00339
WhisperENAzure D164.44%3.2390.00544
WhisperSWAWS baseline38.04%1.1860.00083
WhisperSWAzure D438.04%10.0590.00262
WhisperSWAzure D1638.04%4.1560.00435
WhisperLGAWS baseline108.88%1.5330.00109
WhisperLGAzure D4107.48%16.3570.00429
WhisperLGAzure D16107.48%6.5530.00684

Twelve clips per language. EN = English, SW = Swahili, LG = Luganda. WER can exceed 100% through insertions. Timing boundaries differ as described in the method.

Recorded host rates
HostUSD / hour
Azure D4s v50.254
Azure D16s v51.016
AWS g4dn.xlarge0.698

Busy-compute estimates allocate the whole host rate to the measured operation. They exclude idle time, startup, storage, network and taxes; they are not customer API prices or marginal savings. Rates are the recorded October 2026 inputs, not a current quote.

TEST SETUP

How we ran it.

  1. Azure South Africa North: D4s v5 (4 logical CPUs, 16 GiB) and D16s v5 (16 logical CPUs, 64 GiB), tested sequentially. Both reported Intel Xeon Platinum 8573C. AWS baseline: Cape Town g4dn.xlarge, one NVIDIA T4, four vCPUs, 16 GiB RAM.
  2. Kokoro: nine matched prompts across af_heart, bf_emma and ff_siwis; three Azure repeats and two fresh AWS API repeats, same FP32 weights and speed 1. Retrieval: six documents and six known-answer queries, CPU FP32 versus GPU FP16. ASR: twelve matched FLEURS clips per language, plus separate noise and silence checks.
  3. Azure timings are direct synthesis/model execution. AWS Kokoro and embeddings use the public API, including HTTP and admission; historical AWS Swahili/Luganda ASR uses direct execution and English includes API overhead. These are deployment-path observations, not isolated hardware speedups.
LISTENING ROOM

Hear the tradeoffs.

AI-generated samples. The prompt is the intended transcript; listen for omissions, pronunciation, pauses and voice character.

Kokoro · English collection message

Your order is ready for collection. The office closes at five p.m.
AWS referenceDownload WAV
Azure D4 CPUDownload WAV

Synthetic test prompt, not a customer recording or live transaction. Unmodified WAVs; the same voice, weights and speed setting. This is a labelled listening comparison, not a blinded listening study.

Kokoro · English place names

Embiro helps businesses in Nairobi, Dar es Salaam and Kigali use artificial intelligence.
AWS referenceDownload WAV
Azure D4 CPUDownload WAV

Synthetic test prompt, not a customer recording or live transaction. Unmodified WAVs; the same voice, weights and speed setting. This is a labelled listening comparison, not a blinded listening study.

Kokoro · French payment message

Votre paiement a bien été reçu. Merci de votre confiance.
AWS referenceDownload WAV
Azure D4 CPUDownload WAV

Synthetic test prompt, not a customer recording or live transaction. Unmodified WAVs; the same voice, weights and speed setting. This is a labelled listening comparison, not a blinded listening study.

WHAT THIS DOES NOT PROVE

The limits matter.

  • Small diagnostic samples, not a production SLA or a population accuracy estimate. Different output lengths affect completion time.
  • Sequential single-model tests do not establish co-resident memory or concurrent throughput. Disk cache was not controlled for load-time comparisons. FLEURS may overlap training data. No East African end-user network latency was measured.
  • Orpheus and image generation were not CPU-tested here. No blind human listening panel was conducted.
  • Busy-compute estimates allocate the whole host rate to the measured operation. They exclude idle time, startup, storage, network and taxes; they are not customer API prices or marginal savings. Rates are the recorded October 2026 inputs, not a current quote.
OPEN FINDINGS

Evidence & sources.

The public extract contains the methods, selected results and caveats in this note. It is a curated summary, not the full raw run. Fingerprints identify the retained source artifacts; gated audio and private operational records are not included.

Download results extract
Source artifact fingerprints · SHA-256
REPORT.md28d7aa75fa8dd3170e55523122982593a1a0aaae6007e1c931f679f0697bab6a
summary.jsond4a5e78d615978fca2c5688b74c0efbdb21dbd620aec571c0a1e3237fcd69fbd
summary-d4.json77cae0fc1522d28118db65ec612dcd262a4cc076e524d33b3f941726b8887154

Suggested citation: Embiro Labs Research. “Does every AI workload need a GPU?” Published 12 Oct 2026. embiro.ai/research/african-inference-on-cpu

Report a correction