Performance
Models are distributed in ONNX format and executed through ONNX Runtime. Device selection is made per model by a production policy rather than being fixed.
Reference configurations
Two machines were measured, chosen to differ from each other.
| Reference A | Reference B | |
|---|---|---|
| Form factor | Laptop | Desktop |
| CPU | Intel Core i9-14900HX | Intel Core Ultra 5 250K Plus |
| Discrete GPU | NVIDIA GeForce RTX 4090 Laptop | AMD Radeon RX 9070 XT |
| Integrated GPU | Intel UHD Graphics | Intel Graphics |
| NPU | Not present | Present |
| Runtime | ONNX Runtime 1.24.6 | ONNX Runtime 1.24.6 |
On both machines the discrete GPU is left idle by the platform. Neither the RTX 4090 nor the Radeon RX 9070 XT is asked to run any of this work.
This is deliberate. Pinned measurements show the CPU is the fastest device for almost every one of these models, which are small enough that the comparison is not close. Production selects accelerator hardware regardless, because keeping the CPU free during gameplay is worth more than reducing an inference time that already has generous headroom.
Device selection
Selection is per model, so a single session can span two devices.
| Model | Reference A | Reference B |
|---|---|---|
| YAMNet | Integrated GPU (OpenVINO) | Integrated GPU (OpenVINO) |
| Mood classifier | Integrated GPU (OpenVINO) | NPU (OpenVINO) |
| Pattern model | Integrated GPU (OpenVINO) | NPU (OpenVINO) |
| Content region model | Integrated GPU (OpenVINO) | NPU (OpenVINO) |
On a machine with an NPU, the three small models run there and YAMNet runs on the integrated GPU. Without an NPU, all four run on the integrated GPU.
Session cost by device
Steady-state process usage sampled every 500 ms, on Reference B. Figures are the float model variant; int8 variants differ by a few tenths of a percent at session level. The final row of each table is the production selection.
Razer Resonance
| Device | CPU % avg | GPU % avg |
|---|---|---|
| CPU (0x0007) | 0.2 | 0.0 |
| CPU OpenVINO (0x0007) | 1.1 | 0.0 |
| CPU OpenVINO.AUTO (0x0007) | 1.1 | 0.0 |
| DGPU Dml (0x7550) | 0.1 | 0.3 |
| DGPU MIGraphX (0x7550) | No capture | No capture |
| IGPU Dml (0x7d67) | 0.1 | 3.6 |
| IGPU OpenVINO (0x7d67) | 0.3 | 20.3 |
| IGPU OpenVINO.AUTO (0x7d67) | 0.3 | 20.2 |
| NPU OpenVINO (0xad1d) | No capture | No capture |
| NPU OpenVINO.AUTO (0xad1d) | No capture | No capture |
| Production policy → IGPU OpenVINO | 0.3 | 22.6 |
Screen Sync
| Device | CPU % avg | GPU % avg |
|---|---|---|
| CPU (0x0007) | 1.9 | 0.0 |
| CPU OpenVINO (0x0007) | 1.9 | 0.0 |
| CPU OpenVINO.AUTO (0x0007) | 2.2 | 0.0 |
| DGPU Dml (0x7550) | 2.2 | 0.0 |
| DGPU MIGraphX (0x7550) | 1.8 | 0.0 |
| IGPU Dml (0x7d67) | 1.8 | 0.1 |
| IGPU OpenVINO (0x7d67) | 2.0 | 0.7 |
| IGPU OpenVINO.AUTO (0x7d67) | 2.1 | 0.7 |
| NPU OpenVINO (0xad1d) | 1.7 | 0.1 |
| NPU OpenVINO.AUTO (0xad1d) | 1.9 | 0.1 |
| Production policy → NPU OpenVINO | 2.2 | 0.1 |
Mood Analyzer
| Device | CPU % avg | GPU % avg |
|---|---|---|
| CPU (0x0007) | 1.0 | 0.0 |
| CPU OpenVINO (0x0007) | 1.0 | 0.0 |
| CPU OpenVINO.AUTO (0x0007) | 1.0 | 0.0 |
| DGPU Dml (0x7550) | 0.8 | 0.1 |
| DGPU MIGraphX (0x7550) | No capture | No capture |
| IGPU Dml (0x7d67) | 0.7 | 1.3 |
| IGPU OpenVINO (0x7d67) | 1.2 | 5.2 |
| IGPU OpenVINO.AUTO (0x7d67) | 1.2 | 5.1 |
| Production policy → IGPU + NPU OpenVINO | 2.2 | 5.9 |
GPU load depends heavily on which integrated GPU is present. Razer Resonance uses 22.6% of the integrated GPU on Reference B where it used 1.4% on Reference A. Treat the GPU column as specific to a configuration.
Screen Sync carries the highest CPU cost of the three, which follows from its pipeline. Colour extraction runs on the CPU at 5 Hz alongside the two vision models.
Since Screen Sync and Mood Analyzer are mutually exclusive, a running system carries at most one of those two plus Razer Resonance.
Inference latency
Per-inference cost on the production device, warm cache.
| Model | Reference A | Reference B |
|---|---|---|
| YAMNet | 9.54 ms avg, 12.65 ms p95 | 6.53 ms avg |
| Mood classifier | 3.37 ms avg | 4.07 ms avg |
| Pattern model | 15.85 ms avg, 26.84 ms p95 | 4.65 ms avg |
| Content region model | 14.08 ms avg, 22.17 ms p95 | 4.93 ms avg |
Compare these against the cadences in Signal characteristics. YAMNet runs at roughly 8 Hz, giving it a 125 ms budget per cycle, and it uses under 13 ms at p95 on the slower of the two machines. The vision models run every 3 seconds and complete in well under 30 ms.
Every model finishes far inside its window, so the analysis cadence is set by design rather than by what the hardware can keep up with.
Model inputs
| Model | Input | Output |
|---|---|---|
| YAMNet | 0.975 s window of system audio, 15,600 samples at 16 kHz | Per-class scores plus a 1,024-value embedding |
| Mood classifier | YAMNet's 1,024-value embedding | Mood label |
| Pattern model | 32×32 RGB screen downscale | On-screen pattern class |
| Content region model | 32×32 RGB screen downscale | Active content rectangle |
The 32×32 input is what "low-resolution snapshot" means in practice for Screen Sync, and why it reproduces the overall colour of a scene rather than fine detail.
Model caching
precompileModels exists because compiled model caching (EPContext) is supported on the OpenVINO devices. Precompiling at install time means sessions open from cache rather than compiling on first use.
Cached session open on Reference B is roughly 35 to 38 ms on the NPU, 36 to 88 ms on the integrated GPU, and 37 to 116 ms on the CPU. Devices without EPContext support open uncached every time.
Next
- Overview, feature summary and runtime model