ON THIS PAGE

  • Power Profiles
  • Available Power Profiles and their characteristics
  • Setting the Power Profile
  • Power Profiles Benchmark
  • Benchmark Results (Under Full CPU Load)
  • What Does “Bogo Ops/s (usr+sys)” Measure?
  • Measurement accuracy
  • Reproducing the Benchmark

Power Profiles

The camera's performance can be tuned using configurable power profiles. Selecting the right profile depends on whether you need raw neural-network inference throughput or CPU headroom.Adjusting the power profile is especially useful in situations where the camera may slow down due to thermal throttling after extended use. It allows you to choose which component - CPU or neural network - should be prioritized or sacrificed.Power profile selection is only supported on OAK-4 series cameras.

Available Power Profiles and their characteristics

1. best_effort
  • Balances both NN and CPU tasks fairly well
  • Yields high inference FPS
  • Also maintains higher CPU performance than sustained_nn_heavy in most cases
2. sustained_nn_heavy
  • Prioritizes consistent NN inferences per second
  • Often produces the highest FPS
  • Comes at the cost of CPU efficiency, which drops notably under stress
3. sustained_cpu_heavy
  • Returns the lowest FPS, especially for NN-heavy tasks
  • In exchange, it offers excellent CPU efficiency, making it useful in CPU-bound or multitasking applications

Setting the Power Profile

When ssh-ed onto the camera switch power profile with agentconfd:
Command Line
1agentconfd power-switch --profile best_effort
Replace best_effort with any of the supported profiles.

Power Profiles Benchmark

We benchmarked five neural networks across three available power profiles to understand how inference speed and CPU efficiency are affected - while stressing the CPU at 100% using the stress-ng tool in the background to simulate a heavy-load scenario.

Benchmark Results (Under Full CPU Load)

Modelbest_effort FPS VS Bogo Ops/ssustained_cpu_heavy FPS VS Bogo Ops/ssustained_nn_heavy FPS VS Bogo Ops/s
yolov8-instance-segmentation-large149.17fps 119.62ops/s57.83fps 119.41ops/s150.62fps 57.5ops/s
yolov10-nano657.06fps 85.75ops/s238.3fps 118.88ops/s655.44fps 58.86ops/s
yolo-world-l71.82fps 90.59ops/s27.57fps 119.09ops/s74.56fps 50.58ops/s
scrfd-face-detection380.85fps 89.02ops/s131.42fps 119.7ops/s381.94fps 49.46ops/s
yolov8-large-pose-estimation171.96fps 92.96ops/s65.36fps 119.36ops/s173.06fps 52.76ops/s

What Does “Bogo Ops/s (usr+sys)” Measure?

It gives an estimate of how many CPU operations per second are executed. It's calculated as:bogo ops/s = total bogo ops / (user time + system time)
  • Higher values = more efficient CPU execution
  • Measured via: stress-ng
  • Useful for comparing how much strain power profiles place on CPU resources

Measurement accuracy

  • FPS (Frames Per Second) values were collected using the modelconverter benchmark tool and have an approximate ±10% margin of error.
  • CPU efficiency (bogo ops/s) was measured using stress-ng output under user+system time. However, it's important to treat these numbers as observational only, not precise performance metrics.
Disclaimer from stress-ng Documentation:Note that these are not a reliable metric of performance or throughput and have not been designed to be used for benchmarking whatsoever. The metrics are just a useful way to observe how a system behaves when under various kinds of load.

Reproducing the Benchmark

Complete guide to reproducing the banchmark can be found in this blogpost.