owned this note
owned this note
Published
Linked with GitHub
# Reed Solomon - Leopard - speed benchmark
Summary of Leopard speed measurements we've done after extending the code to run on ARM as well [https://github.com/status-im/leopard/pulls?q=is%3Apr+is%3Aclosed].
## Apple M1 in Intel emulation (Rosetta) on macOS
```
leo_init called 1 times per trial. 15380 usec avg. 15380 usec for each of 1 trials
Parameters: [original count=1000] [recovery count=100] [buffer bytes=64000] [loss count=100] [random seed=2]
Leopard Encoder(64 MB in 1000 pieces, 100 losses): Input=1993.58 MB/s, Output=199.358 MB/s
Leopard Decoder(64 MB in 1000 pieces, 100 losses): Input=515.207 MB/s, Output=51.5207 MB/s
```
## Apple M1 native on macOS
```
leo_init called 1 times per trial. 12780 usec avg. 12780 usec for each of 1 trials
Parameters: [original count=1000] [recovery count=100] [buffer bytes=64000] [loss count=100] [random seed=2]
Leopard Encoder(64 MB in 1000 pieces, 100 losses): Input=3136.18 MB/s, Output=313.618 MB/s
Leopard Decoder(64 MB in 1000 pieces, 100 losses): Input=708.302 MB/s, Output=70.8302 MB/s
```
## Intel
```
leo_init called 1 times per trial. 24696 usec avg. 24696 usec for each of 1 trials
Parameters: [original count=1000] [recovery count=100] [buffer bytes=64000] [loss count=100] [random seed=2]
Leopard Encoder(64 MB in 1000 pieces, 100 losses): Input=2502.44 MB/s, Output=250.244 MB/s
Leopard Decoder(64 MB in 1000 pieces, 100 losses): Input=416.442 MB/s, Output=41.6442 MB/s
```
## i7 10th gen
```
leo_init called 1 times per trial. 2114 usec avg. 2114 usec for each of 1 trials
Parameters: [original count=1000] [recovery count=100] [buffer bytes=64000] [loss count=100] [random seed=2]
Leopard Encoder(64 MB in 1000 pieces, 100 losses): Input=4775.41 MB/s, Output=477.541 MB/s
Leopard Decoder(64 MB in 1000 pieces, 100 losses): Input=476.279 MB/s, Output=47.6279 MB/s
```
## Raspberry Pi3
```
Parameters: [original count=1000] [recovery count=100] [buffer bytes=64000] [loss count=100] [random seed=2]
Leopard Encoder(64 MB in 1000 pieces, 100 losses): Input=136.62 MB/s, Output=13.662 MB/s
Leopard Decoder(64 MB in 1000 pieces, 100 losses): Input=27.0177 MB/s, Output=2.70177 MB/s
```
## Intel NUC, four cores with 11th Gen Intel(R) Core(TM) i3-1115G4 @ 3.00GHz and NVMe
```
leo_init called 1 times per trial. 11516 usec avg. 11516 usec for each of 1 trials
Parameters: [original count=1000] [recovery count=100] [buffer bytes=64000] [loss count=100] [random seed=2]
Leopard Encoder(64 MB in 1000 pieces, 100 losses): Input=3508.58 MB/s, Output=350.858 MB/s
Leopard Decoder(64 MB in 1000 pieces, 100 losses): Input=620.053 MB/s, Output=62.0053 MB/s
```
## Intel NUC, four cores with Intel(R) Core(TM) i3-10110U CPU @ 2.10GHz and NVMe
```
leo_init called 1 times per trial. 16349 usec avg. 16349 usec for each of 1 trials
Parameters: [original count=1000] [recovery count=100] [buffer bytes=64000] [loss count=100] [random seed=2]
Leopard Encoder(64 MB in 1000 pieces, 100 losses): Input=1565.21 MB/s, Output=156.521 MB/s
Leopard Decoder(64 MB in 1000 pieces, 100 losses): Input=438.548 MB/s, Output=43.8548 MB/s
```
## GMK Nucbox (Intel Celeron J4125 CPU @ 2.00GHz + 8GB RAM)
```
leo_init called 1 times per trial. 10330 usec avg. 10330 usec for each of 1 trials
Parameters: [original count=1000] [recovery count=100] [buffer bytes=64000] [loss count=100] [random seed=2]
Leopard Encoder(64 MB in 1000 pieces, 100 losses): Input=1147.04 MB/s, Output=114.704 MB/s
Leopard Decoder(64 MB in 1000 pieces, 100 losses): Input=246.822 MB/s, Output=24.6822 MB/s
```
## Raspberry pi 4 B
```
leo_init called 1 times per trial. 64459 usec avg. 64459 usec for each of 1 trials
Parameters: [original count=1000] [recovery count=100] [buffer bytes=64000] [loss count=100] [random seed=2]
Leopard Encoder(64 MB in 1000 pieces, 100 losses): Input=191.593 MB/s, Output=19.1593 MB/s
Leopard Decoder(64 MB in 1000 pieces, 100 losses): Input=44.5662 MB/s, Output=4.45662 MB/s
```
## RK3328 (Rock64 SBC, 4 x Cortex-A53)
```
Parameters: [original count=1000] [recovery count=100] [buffer bytes=64000] [loss count=100] [random seed=2]
Leopard Encoder(64 MB in 1000 pieces, 100 losses): Input=202.632 MB/s, Output=20.2632 MB/s
Leopard Decoder(64 MB in 1000 pieces, 100 losses): Input=34.2045 MB/s, Output=3.42045 MB/s
```
## Apple M1 with Parallels arm64 linux
```
Parameters: [original count=1000] [recovery count=100] [buffer bytes=64000] [loss count=100] [random seed=2]
Leopard Encoder(64 MB in 1000 pieces, 100 losses): Input=5281.4 MB/s, Output=528.14 MB/s
Leopard Decoder(64 MB in 1000 pieces, 100 losses): Input=901.332 MB/s, Output=90.1332 MB/s
```