Updated benchmark results for wasm32 arch.

This commit is contained in:
Kirill Kuzminykh
2024-07-06 20:13:38 +03:00
parent 57c547c15f
commit c84efe0e57
5 changed files with 50 additions and 54 deletions
@@ -1,4 +1,4 @@
### Resize LA-F32 (luma with alpha channel) image (F32x2) 4928x3279 => 852x567
### Resize LA32F (luma with alpha channel) image (F32x2) 4928x3279 => 852x567
Pipeline:
@@ -1,4 +1,4 @@
### Resize RGB16F image (F32x3) 4928x3279 => 852x567
### Resize RGB32F image (F32x3) 4928x3279 => 852x567
Pipeline:
+2 -2
View File
@@ -226,7 +226,7 @@ Pipeline:
<!-- bench_compare_la32f start -->
### Resize LA-F32 (luma with alpha channel) image (F32x2) 4928x3279 => 852x567
### Resize LA32F (luma with alpha channel) image (F32x2) 4928x3279 => 852x567
Pipeline:
@@ -248,7 +248,7 @@ Pipeline:
<!-- bench_compare_rgb32f start -->
### Resize RGB16F image (F32x3) 4928x3279 => 852x567
### Resize RGB32F image (F32x3) 4928x3279 => 852x567
Pipeline:
+44 -48
View File
@@ -7,15 +7,15 @@ Environment:
- CPU: AMD Ryzen 9 5950X
- RAM: DDR4 4000 MHz
- Ubuntu 22.04 (linux 6.5.0)
- Rust 1.78
- Rust 1.79
- criterion = "0.5.1"
- fast_image_resize = "4.0.0"
- wasmtime = "20.0.0"
- fast_image_resize = "4.1.0"
- wasmtime = "22.0.0"
Other libraries used to compare of resizing speed:
- image = "0.25.1" (<https://crates.io/crates/image>)
- resize = "0.8.4" (<https://crates.io/crates/resize>)
- resize = "0.8.4" (<https://crates.io/crates/resize>, single-threaded mode)
Resize algorithms:
@@ -40,10 +40,10 @@ Pipeline:
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
| image | 17.34 | - | 101.44 | 186.62 | 270.94 |
| resize | 10.98 | 33.34 | 61.39 | 116.05 | 182.75 |
| fir rust | 0.38 | 44.44 | 77.71 | 145.67 | 213.76 |
| fir simd128 | 0.38 | 6.22 | 8.33 | 13.44 | 20.59 |
| image | 26.19 | - | 103.03 | 180.66 | 258.39 |
| resize | 11.71 | 33.22 | 60.30 | 114.09 | 167.14 |
| fir rust | 0.39 | 45.14 | 79.53 | 150.42 | 223.19 |
| fir simd128 | 0.39 | 6.41 | 8.71 | 14.33 | 21.60 |
<!-- bench_compare_rgb end -->
@@ -62,9 +62,9 @@ Pipeline:
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|-------------|:-------:|:------:|:--------:|:-------:|:--------:|
| resize | 11.88 | 38.43 | 71.56 | 137.42 | 208.90 |
| fir rust | 0.26 | 108.03 | 161.33 | 272.43 | 384.54 |
| fir simd128 | 0.26 | 12.73 | 15.23 | 21.37 | 29.25 |
| resize | 12.41 | 38.94 | 73.52 | 138.90 | 211.97 |
| fir rust | 0.27 | 101.41 | 147.99 | 244.04 | 341.24 |
| fir simd128 | 0.27 | 16.30 | 19.02 | 25.52 | 33.58 |
<!-- bench_compare_rgba end -->
@@ -82,10 +82,10 @@ Pipeline:
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
| image | 16.36 | - | 79.55 | 142.10 | 203.30 |
| resize | 6.73 | 17.18 | 30.31 | 57.66 | 83.45 |
| fir rust | 0.21 | 16.02 | 27.48 | 50.59 | 74.72 |
| fir simd128 | 0.21 | 2.93 | 3.30 | 4.73 | 7.66 |
| image | 24.25 | - | 87.19 | 149.64 | 210.43 |
| resize | 7.87 | 17.80 | 28.64 | 53.29 | 77.57 |
| fir rust | 0.21 | 16.50 | 28.23 | 52.74 | 78.04 |
| fir simd128 | 0.21 | 3.02 | 3.32 | 4.66 | 7.59 |
<!-- bench_compare_l end -->
@@ -99,15 +99,15 @@ Pipeline:
- Source image
[nasa-4928x3279-rgba.png](https://github.com/Cykooz/fast_image_resize/blob/main/data/nasa-4928x3279-rgba.png)
has converted into grayscale image with alpha channel (two bytes per pixel).
has converted into grayscale image with an alpha channel (two bytes per pixel).
- Numbers in the table mean a duration of image resizing in milliseconds.
- The `image` crate does not support multiplying and dividing by alpha channel.
- The `resize` crate does not support this pixel format.
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
| fir rust | 0.20 | 51.14 | 75.07 | 123.35 | 171.89 |
| fir simd128 | 0.20 | 7.59 | 8.80 | 11.44 | 16.33 |
| fir rust | 0.20 | 50.44 | 73.54 | 120.60 | 168.31 |
| fir simd128 | 0.20 | 8.49 | 9.75 | 12.51 | 17.40 |
<!-- bench_compare_la end -->
@@ -125,10 +125,10 @@ Pipeline:
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
| image | 18.13 | - | 95.31 | 173.33 | 251.98 |
| resize | 11.03 | 30.34 | 55.99 | 107.76 | 152.73 |
| fir rust | 0.42 | 42.11 | 64.42 | 109.79 | 157.11 |
| fir simd128 | 0.42 | 32.56 | 51.45 | 89.52 | 129.08 |
| image | 27.31 | - | 106.09 | 188.35 | 270.09 |
| resize | 12.10 | 33.83 | 60.20 | 113.85 | 168.18 |
| fir rust | 0.41 | 39.02 | 62.29 | 107.96 | 154.74 |
| fir simd128 | 0.41 | 32.47 | 51.34 | 89.26 | 129.12 |
<!-- bench_compare_rgb16 end -->
@@ -147,9 +147,9 @@ Pipeline:
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
| resize | 12.49 | 39.73 | 74.62 | 140.65 | 211.84 |
| fir rust | 0.41 | 94.07 | 126.42 | 190.18 | 256.18 |
| fir simd128 | 0.41 | 51.49 | 75.52 | 123.99 | 173.44 |
| resize | 12.69 | 39.35 | 74.01 | 139.45 | 213.46 |
| fir rust | 0.34 | 87.33 | 110.98 | 158.35 | 207.47 |
| fir simd128 | 0.34 | 51.84 | 75.53 | 123.10 | 172.10 |
<!-- bench_compare_rgba16 end -->
@@ -167,10 +167,10 @@ Pipeline:
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
| image | 17.78 | - | 81.33 | 143.51 | 206.46 |
| resize | 8.06 | 18.72 | 29.77 | 54.94 | 79.38 |
| fir rust | 0.19 | 21.71 | 31.40 | 48.02 | 65.33 |
| fir simd128 | 0.19 | 12.15 | 18.24 | 30.03 | 43.44 |
| image | 23.98 | - | 86.94 | 149.67 | 211.09 |
| resize | 7.88 | 17.12 | 27.73 | 52.04 | 75.31 |
| fir rust | 0.19 | 21.90 | 30.69 | 49.16 | 69.15 |
| fir simd128 | 0.19 | 12.02 | 17.84 | 29.47 | 42.84 |
<!-- bench_compare_l16 end -->
@@ -184,15 +184,15 @@ Pipeline:
- Source image
[nasa-4928x3279-rgba.png](https://github.com/Cykooz/fast_image_resize/blob/main/data/nasa-4928x3279-rgba.png)
has converted into grayscale image with alpha channel (four bytes per pixel).
has converted into grayscale image with an alpha channel (four bytes per pixel).
- Numbers in the table mean a duration of image resizing in milliseconds.
- The `image` crate does not support multiplying and dividing by alpha channel.
- The `resize` crate does not support this pixel format.
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|-------------|:-------:|:-----:|:--------:|:-------:|:--------:|
| fir rust | 0.25 | 49.12 | 64.81 | 94.16 | 123.91 |
| fir simd128 | 0.25 | 28.50 | 40.57 | 65.66 | 92.68 |
| fir rust | 0.23 | 49.69 | 66.52 | 98.05 | 131.53 |
| fir simd128 | 0.23 | 28.41 | 40.62 | 65.56 | 92.21 |
<!-- bench_compare_la16 end -->
@@ -210,16 +210,15 @@ Pipeline:
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|----------|:-------:|:-----:|:--------:|:-------:|:--------:|
| image | 24.55 | - | 49.54 | 78.44 | 104.51 |
| resize | 5.03 | 8.64 | 13.85 | 30.14 | 45.81 |
| libvips | 5.96 | 25.74 | 21.52 | 42.24 | 71.71 |
| fir rust | 0.20 | 9.87 | 14.93 | 29.66 | 51.71 |
| image | 12.80 | - | 55.61 | 101.29 | 145.08 |
| resize | 7.49 | 16.02 | 22.29 | 43.93 | 64.19 |
| fir rust | 0.24 | 15.47 | 25.58 | 48.98 | 72.55 |
<!-- bench_compare_l32f end -->
<!-- bench_compare_la32f start -->
### Resize LA-F32 (luma with alpha channel) image (F32x2) 4928x3279 => 852x567
### Resize LA32F (luma with alpha channel) image (F32x2) 4928x3279 => 852x567
Pipeline:
@@ -234,14 +233,13 @@ Pipeline:
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|----------|:-------:|:-----:|:--------:|:-------:|:--------:|
| libvips | 11.58 | 70.05 | 101.70 | 176.48 | 252.74 |
| fir rust | 0.38 | 22.75 | 30.35 | 49.41 | 71.81 |
| fir rust | 0.36 | 33.44 | 46.92 | 75.38 | 105.46 |
<!-- bench_compare_la32f end -->
<!-- bench_compare_rgb32f start -->
### Resize RGB16F image (F32x3) 4928x3279 => 852x567
### Resize RGB32F image (F32x3) 4928x3279 => 852x567
Pipeline:
@@ -253,10 +251,9 @@ Pipeline:
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|----------|:-------:|:-----:|:--------:|:-------:|:--------:|
| image | 26.32 | - | 62.99 | 104.89 | 147.02 |
| resize | 8.97 | 16.30 | 24.52 | 48.25 | 72.16 |
| libvips | 11.75 | 60.36 | 52.63 | 113.20 | 197.67 |
| fir rust | 0.83 | 16.39 | 26.95 | 50.36 | 75.58 |
| image | 16.25 | - | 66.81 | 122.03 | 177.05 |
| resize | 10.81 | 21.69 | 36.33 | 66.61 | 97.10 |
| fir rust | 1.06 | 32.97 | 56.36 | 104.53 | 155.20 |
<!-- bench_compare_rgb32f end -->
@@ -276,9 +273,8 @@ Pipeline:
- The `resize` crate does not support multiplying and dividing by alpha channel
for this pixel format.
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|----------|:-------:|:------:|:--------:|:-------:|:--------:|
| libvips | 23.22 | 111.26 | 140.16 | 249.97 | 381.64 |
| fir rust | 1.01 | 35.88 | 45.64 | 70.56 | 93.29 |
| | Nearest | Box | Bilinear | Bicubic | Lanczos3 |
|----------|:-------:|:-----:|:--------:|:-------:|:--------:|
| fir rust | 1.25 | 59.62 | 84.12 | 137.68 | 192.68 |
<!-- bench_compare_rgba32f end -->
+2 -2
View File
@@ -237,7 +237,7 @@ Pipeline:
<!-- bench_compare_la32f start -->
### Resize LA-F32 (luma with alpha channel) image (F32x2) 4928x3279 => 852x567
### Resize LA32F (luma with alpha channel) image (F32x2) 4928x3279 => 852x567
Pipeline:
@@ -261,7 +261,7 @@ Pipeline:
<!-- bench_compare_rgb32f start -->
### Resize RGB16F image (F32x3) 4928x3279 => 852x567
### Resize RGB32F image (F32x3) 4928x3279 => 852x567
Pipeline: