ArmBench

Image And Video Workload Bench For Arm

An entry for the OpenCV AI Competition 2026 by Aariv Patel. Static page, zero dependencies, no network calls.

State Ready Host Reading Runtime Logical Cores Reading Runtime Clock Source performance.now Seed 1337

Measured On This Machine.
Estimated For The Cloud.

ArmBench times real image and video kernels on this machine's Arm CPU, then sets the readings beside cloud figures that are always labeled as estimates. Nothing on this page presents a projection as a measurement.

Measured
Every timing comes from a live run of JavaScript kernels over seeded pixel buffers, timed with a monotonic clock in this page.
Estimated
Cloud figures are arithmetic projections of the local readings, built from published core clocks and a memory bandwidth heuristic. Each one carries an Estimate badge.
Not Used
No AWS Graviton instance was contacted. Local Apple Silicon stands in for Arm, and a documented path lets anyone rerun the identical suite on EC2.

Workload Bench

Run the kernels on this machine. Pick a size and an iteration count, press Run, and every number in the results table comes from that live run.

One warmup pass runs uncounted before timing. A budget guard caps a timed pass at 12 million pixels, so a full run stays under about ten seconds.

Host Specs

Runtime Reported
Reading runtime
Logical Cores
Reading runtime
Declared Host
Apple Silicon Mac, Arm64, macOS. Declared by the author, not verified by a cloud vendor.
Arm Basis
Apple Silicon implements Armv8 and Armv9. This is a genuine Arm CPU, but it is not AWS Graviton.

Seeded Test Pattern

The exact deterministic input for the current seed, drawn at 96 px. A diagonal gradient, a lifted disc and seeded noise, identical in the browser and in the Node script.

Run Queue

Idle. The queue lists one entry per workload and size once a run starts.

  1. Waiting for the first run.

Latest Results

Wall time and throughput from the most recent in page run. Basis column shows the badge for every row.
Workload Image Iterations Mean Ms Median Ms Ops Per Sec Basis
No run yet. This table fills in after the first Run Bench press, and every row will carry a Measured badge.

Baseline Compare

Local readings beside projected Graviton figures. Solid cells are measurements from the latest run. Hatched cells carry the Estimate badge and are never measurements. This table uses the largest image size from the latest run.

Measured local throughput against estimated Graviton throughput. The estimate factor is the same for every row because the reference kernels are single threaded.
Workload Image Local Ops Per Sec Graviton Ops Per Sec Estimate Factor
No local run yet, so there is nothing to project from. Run the bench first. An estimate without a measurement behind it would be fiction, so this table stays empty.

Throughput Chart

  • Measured Local
  • Estimated Graviton

Bars are normalized within each workload group because the five kernels and the video pipeline operate at different scales. The table above is the source of exact values.

Estimate Assumptions

Loading the estimate model.

    Environment Card

    A plain statement of where these numbers come from and where they do not come from.

    Measured On
    An Apple Silicon Mac, Arm64, in this browser and in scripts/run-bench.mjs on the same machine.
    Not Measured On
    AWS Graviton. No cloud instance was contacted at any point, and no cloud vendor verified anything here.
    Arm Basis
    Apple Silicon implements Armv8 and Armv9, so the kernels run on a genuine Arm CPU, but it is not the AWS Graviton target.
    Runtime Reported
    Reading runtime
    Declared By Author
    Apple Silicon Mac, Arm64, macOS.

    Why The Card Matters

    Reproducibility beats proximity. This project does not claim a machine the author did not run. It ships a portable benchmark suite, states exactly which machine produced the local numbers, and gives a documented plug in point for the target architecture.

    Reproduce On Graviton

    # Any AWS Graviton instance, Amazon Linux 2023, c7g family
    # Node 18 or newer. No packages to install, no network calls.
    node scripts/run-bench.mjs --seed 1337 --iterations 5 --json
    
    # Same command, same table, on the cloud CPU.
    # Paste the local results and the Graviton output side by side,
    # and every honesty rule on this page still holds.

    Report Export

    A copyable methodology block a judge can rerun. The report regenerates from the most recent completed run.

    Generate stays disabled until a run completes, because a report without a run would be fiction. The report includes the honesty statement, the estimate assumptions and the exact commands to reproduce.

    The text area is read only. Copy places the full report on the clipboard without altering it.

    This page uses module scripts, which need a static server. Serve this folder and reload, for example with python3 -m http.server 8000, then open http://localhost:8000. The Node script scripts/run-bench.mjs works without a server.