SG Com Compute Resource Usage
SG Com runs on the CPU; it has no impact on the GPU. Below are measurements for memory, CPU and power consumption.
Memory
A typical chat use case involves a single Engine to process local microphone input, and one or more Players to calculate animation targets for local or remote characters (see Engines and Players). Heap allocations and deallocations are only performed during construction and destruction of Engines and Players, and the heap is not touched by other functions.
Code | Heap (per Engine) | Heap (per Player) | Stack |
~12 MB | ~12 MB | ~1.5 MB + (44 KB * b) where b = Player buffer length (seconds) | < 10 KB |
CPU
We provide speed measurements of the two high-frequency functions for Engine and Player:
SG_COM_ProcessTick (Engine). This function is called 100 times per second to process audio input in 10 ms blocks, and the measurement below is the time taken to process 1 block.
SG_COM_UpdateAnimation (Player). This function is called at the application frame rate to calculate values of the output animation channels, and the measurement below is the time taken to process 1 frame.
For SG_COM_UpdateAnimation, the processing time depends on the complexity and type of character rig. Two sample rigs are considered:
Rig 1 is a bone rig with 82 targeted bones
Rig 2 is an Epic MetaHuman with 252 targeted scalar channels (and a few bones)
Windows | Linux | MacOS | iOS/Android | XBox X | PS5 | |
Processor | Intel Xeon E5-4620 | Intel Xeon Silver 4114 | Intel Xeon E5-1650 | ARM v8 Cortex-A72 | AMD Zen 2 | AMD Zen 2 |
Speed (GHz) | 2.2 | 2.2 | 3.5 | 1.8 | 3.66 | 3.5 |
Process Tick (ms) | 0.695 | 0.673 | 0.374 | 0.816 | 0.357 | 0.171 |
Update - Rig 1 (ms) | 0.187 | 0.183 | 0.0884 | 0.522 | 0.0981 | 0.0797 |
Update - Rig 2 (ms) | 0.0923 | 0.0823 | 0.0422 | 0.251 | 0.0357 | 0.0202 |
Memory to CPU bandwidth is usually the limiting factor on performance, affected by cache size and patterns of memory use in the whole system. For best results the thread calling SG_COM_ProcessTick is given fixed core affinity wherever possible.
Mobile power consumption
SG Com is optimized for mobile power consumption by using integer arithmetic for most calculations. The current consumption estimate is based on the time taken to discharge the device to 90% of its specified capacity versus an idle control case. Note this does not include the cost of 3D rendering.
Galaxy S20 Ultra 5G | |
Power consumption (mA) | ~115 |