Note |
---|
Notice: Pre-Release Documentation |
This section contains some performance benchmarks for this release. During the measurements, processor clock and DDR speeds were set to maximum.
Interprocessor Communication
This is the measured MHz to transfer 16 channels of 32-bit data at 48 kHz between cores. Transfers were done with 1 msec blocks. This test uses the ChangeThread module and part of the reported MHz is on the sending core and part is on the receiving core.
...
When sending data between different cores, it is going through the carveout shared memory. When sending audio between the same core, this means that data is going to another hardware thread on the same core and non-shared is used.
TDM I/O
The limiting factor for serial port I/O is the speed of the LP DMA memory. This is 85 MB/second for reading and 170 MB/second for writing. These tests were with 48 sample block sizes.
...
In R4.1 provide measures with Synchronous Unaligned Ports
ALSA I/O
This test measures the overhead of streaming audio data between the HLOS and Audio Weaver. 16 channels of data streamed at 48 kHz. 1 msec block size in Audio Weaver and a 10 msec block size at the HLOS.
...
ALSA Settings | Measured | |||
Sample Rate | Block Size | Buffer Size | Latency (msec) | |
8000 | 80 | 160 | 18.2 | |
11025 | 120 | 240 | 21.6 | |
12000 | 120 | 240 | 21.8 | |
16000 | 160 | 320 | 15.6 | |
22050 | 220 | 440 | 20.0 | |
24000 | 240 | 480 | 15.4 | |
32000 | 320 | 640 | 17.8 | |
44100 | 480 | 960 | 19.8 | |
48000 | 480 | 960 | 16.2 |
Maximum CPU Loading
In this test, we used the BiquadLoading module to load each thread in the system. We measured how many Biquad stages we could run before we started having CPU overruns. We used a 1 msec block size on the Hexagon DSPs and a 10 msec block size on the Arm. This test measures code and framework efficiency.
...
Thread | BiquadStages | % Loading |
10A | 5000 | 50% |
Early Audio KPIs
In release R4.0, we are not able to fully measure this KPI. However, we were able to measure the Audio Weaver contribution to the boot time. We instrumented the code and measured the time that the main() function was reached on the ADSP until the time that real-time audio interrupts started.
...