YOLOv8 on an Embedded GPU: Squeezing Real-Time Inference Out of 15 Watts

Model optimization matters more than your motion model. Here are the numbers.
Test objective: determine whether a YOLOv8-based object detector can hit real-time inference (defined here as ≥20 FPS sustained, end-to-end latency under 50ms) on automotive-grade embedded hardware within a 15W power envelope, without an unacceptable accuracy loss.
Test scope: YOLOv8n and YOLOv8s variants, three optimization stages (baseline FP32, INT8 quantization, INT8 + structured pruning), evaluated across three hardware targets. All numbers below are from our own benchmark runs on a held-out 4,000-image automotive validation set (mixed daytime/dusk urban and highway scenes), not vendor-published figures.
Baseline: Where We Started
YOLOv8s at native FP32 precision, no optimization applied, running on a workstation-class GPU for reference:
Metric | Value |
|---|---|
mAP@0.5 (validation set) | 71.2% |
Inference latency (GPU workstation, reference only) | 8.3 ms |
Model size | 22.5 MB |
This is the accuracy ceiling we're measuring degradation against. The workstation number isn't a candidate deployment target — it's a reference point, since a discrete workstation GPU draws well over 100W and isn't relevant to an automotive power budget.
Hardware Candidates
Platform | Rated compute | Power envelope (measured, sustained inference load) | Notes |
|---|---|---|---|
NVIDIA Jetson Orin Nano (8GB) | 40 TOPS (INT8) | 12.8W average, 15.1W peak | Consumer/prototyping-grade module, not automotive-qualified |
Qualcomm SA8155P | 18 TOPS (mixed precision) | 11.4W average | Automotive-qualified, widely used in current-gen ADAS domain controllers |
Custom ASIC (internal eval silicon, representative of a fixed-function accelerator class) | ~26 TOPS (INT8-only) | 9.7W average | No FP32/FP16 path — INT8 quantization is mandatory, not optional, on this target |

Stage 1: INT8 Quantization
Post-training INT8 quantization applied to YOLOv8s using a calibration set of 500 representative automotive scenes (mixed lighting conditions, deliberately including some dusk/low-light frames since these are historically where quantization hurts accuracy most).
Platform | FPS (before → after) | Latency ms (before → after) | mAP@0.5 (before → after) |
|---|---|---|---|
Jetson Orin Nano | 14.2 → 31.6 | 70.4 → 31.6 | 71.2% → 69.8% |
Qualcomm SA8155P | 9.8 → 22.1 | 102.0 → 45.2 | 71.2% → 68.9% |
Custom ASIC | N/A (INT8-only) → 38.4 | N/A → 26.0 | 71.2% → 68.1% |
INT8 quantization alone more than doubled throughput on every platform, at a consistent accuracy cost in the 1.3-3.1 point mAP range — in line with what's typically reported for well-calibrated post-training quantization on detection models, and small enough that we considered it acceptable on its own merits before layering further optimization.
Worth flagging: the ASIC's larger accuracy drop (3.1 points versus Jetson's 1.4) is consistent with it having no fallback higher-precision path — quantization-sensitive layers that Jetson's mixed-precision engine can selectively keep at FP16 are forced to INT8 on the ASIC regardless, which shows up directly in the mAP delta.
Stage 2: TensorRT Conversion (Jetson only — platform-specific)
TensorRT conversion applies additional graph-level optimization — layer fusion, kernel auto-tuning, precision calibration refinement — on top of the INT8 quantization already applied. This step is Jetson-specific in our test since TensorRT is NVIDIA's own inference runtime; the SA8155P and ASIC use their own respective vendor toolchains (SNPE and a proprietary compiler, respectively), which we cover separately below.
Metric | INT8 only | INT8 + TensorRT |
|---|---|---|
FPS | 31.6 | 47.3 |
Latency (ms) | 31.6 | 21.1 |
mAP@0.5 | 69.8% | 69.6% |
TensorRT's gain here comes almost entirely from graph-level efficiency (layer fusion, memory layout optimization) rather than any further precision reduction, which explains the negligible additional accuracy cost (0.2 points) compared to the much larger jump from FP32 to INT8 in Stage 1.
Stage 3: Structured Pruning
Structured channel pruning applied to the INT8+TensorRT model, targeting a 30% reduction in channel count in the backbone's later stages (where we found the least accuracy sensitivity via a layer-wise sensitivity analysis pass before committing to the pruning ratio).
Platform | FPS (Stage 2 → Stage 3) | Latency ms (Stage 2 → Stage 3) | mAP@0.5 (Stage 2 → Stage 3) |
|---|---|---|---|
Jetson Orin Nano | 47.3 → 58.9 | 21.1 → 17.0 | 69.6% → 67.4% |
Qualcomm SA8155P | 22.1 → 27.8 | 45.2 → 36.0 | 68.9% → 66.2% |
Custom ASIC | 38.4 → 44.1 | 26.0 → 22.7 | 68.1% → 65.3% |
Pruning delivers a meaningfully smaller relative gain than quantization did (roughly 20-25% additional throughput versus quantization's 100%+ improvement), at a proportionally larger accuracy cost per unit of speed gained. This is the point in the optimization pipeline where the trade-off curve visibly steepens — the easy accuracy-for-speed exchanges have already been made in Stage 1.
Full Comparison Table
Platform | Configuration | FPS | Latency (ms) | mAP@0.5 | Power (W) |
|---|---|---|---|---|---|
Jetson Orin Nano | FP32 baseline | 14.2 | 70.4 | 71.2% | 15.1 (peak) |
Jetson Orin Nano | INT8 | 31.6 | 31.6 | 69.8% | 13.9 |
Jetson Orin Nano | INT8 + TensorRT | 47.3 | 21.1 | 69.6% | 13.2 |
Jetson Orin Nano | INT8 + TensorRT + Pruning | 58.9 | 17.0 | 67.4% | 12.8 |
Qualcomm SA8155P | FP32-equivalent baseline | 9.8 | 102.0 | 71.2% | 12.1 |
Qualcomm SA8155P | INT8 | 22.1 | 45.2 | 68.9% | 11.8 |
Qualcomm SA8155P | INT8 + SNPE optimization | 27.8 (post-pruning) | 36.0 | 66.2% | 11.4 |
Custom ASIC | INT8 (mandatory) | 38.4 | 26.0 | 68.1% | 9.9 |
Custom ASIC | INT8 + Pruning | 44.1 | 22.7 | 65.3% | 9.7 |

Reading the Results
Every platform clears the 20 FPS / 50ms real-time bar after Stage 1 alone. This is worth emphasizing because it means the "must we prune" question is not actually about hitting a minimum real-time bar — all three platforms do that with INT8 quantization alone. Pruning becomes relevant only if your target frame rate is meaningfully above the minimum (for redundancy margin, multi-camera scaling, or headroom for other concurrent workloads sharing the same compute budget), not as a requirement to reach basic real-time operation.
The accuracy cost is front-loaded, not evenly distributed. Going from FP32 to INT8 costs 1.3-3.1 mAP points and buys more than double the throughput. Going from there through TensorRT/SNPE optimization to pruning costs a comparable or larger additional accuracy hit (1.8-2.7 further points) for a much smaller proportional speed gain. If your accuracy budget is tight, INT8 quantization plus compiler-level graph optimization is close to the efficient frontier on its own — pruning should be treated as an optional further step reserved for cases with genuine headroom requirements, not a default final stage.
The custom ASIC's power efficiency comes with the least flexibility. At 9.7W it's the most power-efficient of the three at comparable throughput, but it also has the largest accuracy cost at every stage, precisely because it offers no precision fallback — every layer runs INT8 whether or not that layer is quantization-sensitive. The Jetson's mixed-precision engine, by contrast, can selectively preserve accuracy-critical layers at higher precision, which shows up consistently as a smaller mAP delta at every corresponding optimization stage.

The Trade-off, Stated Plainly
There is no configuration in this test matrix that achieves workstation-level accuracy (71.2% mAP) at automotive power budgets (under 15W) and real-time frame rates simultaneously — that combination doesn't exist yet at this model scale on this hardware class. What does exist is a genuinely usable operating point: INT8 quantization plus vendor-level graph optimization, landing in the 68-70% mAP range across all three platforms, comfortably clearing real-time throughput requirements, within power budget with margin to spare.
Whether to push further into pruning territory is a decision that should be driven by your specific frame-rate margin requirements, not treated as an automatic next step in an optimization checklist — the accuracy-per-FPS exchange rate gets measurably worse the further you push past INT8 quantization and compiler-level optimization alone.