This repository contains interesting AI workloads running on the Web, using WebAssembly (Wasm), WebGPU, WebNN or other underlying technologies. Those workloads help us to evaluate the performance of the implementation, e.g., in browsers or JavaScript and WebAssembly runtimes.
The runner, which allows to select workloads, including ones from external sources, and collects and displays metrics, is based on the Speedometer runner. See the Speedometer repo for a more detailed explanation, e.g., in which phases workloads are run and measured.
- Prerequisites: NPM, node.
npm installto install the dependencies of the runner. - Building the individual workloads: Run
npm run buildin the root directory. This will install dependencies and build all workloads inresources/. Alternatively, you can also manually runnpm installandnpm run buildinside eachresources/<workload-group>/sub-directory to produce output inresources/<workload-group>/dist/. - Starting the web server:
npm run devin the root directory. - Running a workload in the browser: TODO.
- Inspecting and understanding metrics: TODO.
- Most important files:
- Workloads are in
resources/transformers-js/andresources/litert-js. - Shared files are in
resources/shared/, which is depended-upon as a local package. - The default suite / tests to run are in
resources/default-tests.mjs.
- Workloads are in
TODO: Add a screenshot of the runner, after updating logo and name and some minor styling of the workloads.
- If you have not done that yet, run
npm installandnpm run buildinsideresources/<workload-group>/to produce output indist/. npm run devin the root directory to start the server- Navigate to
http://localhost:8080/resources/<workload-group>/dist/<workload>.html(e.g. http://localhost:8080/resources/transformers-js/dist/feature-extraction-cpu.html ) then domanualRun()in dev console.
See the CONTRIBUTING file for how to help out.
Every file containing source code must include copyright and license information. This includes any JS/CSS files that you might be serving out to browsers. (This is to help well-intentioned people avoid accidental copying that doesn't comply with the license.)
BSD 2-clause header:
Copyright 2025 Google LLC
Use of this source code is governed by a BSD-style
license that can be found in the LICENSE file or at
https://developers.google.com/open-source/licenses/bsd
Workloads from third party projects or files from the original Speedometer runner may have different, but compatible licenses (e.g., Apache 2). The respective subdirectories should have the appropriate LICENSE file.