mirror of
https://chromium.googlesource.com/libyuv/libyuv
synced 2026-10-28 18:07:12 +08:00
Add ComputeCumulativeSumRow_AVX2, CumulativeSumToAverageRow_AVX2, ComputeCumulativeSumRow_NEON, and CumulativeSumToAverageRow_NEON to accelerate ARGBBlur and ARGBComputeCumulativeSum on x86_64 and aarch64. Update ARGBBlurSmall_Opt to benchmark 320x180 with radius 1 and use a circular cumsum buffer of height radius * 2 + 2 in TestBlur. ARGBBlurSmall_Opt (320x180, r=1, 10000 iterations): CPU Was C/SSE2 Now AVX2/NEON Speedup -------------------- -------------- --------------- --------------- Intel Granite Rapids 29 ms (SSE2) 24 ms (AVX2) 1.21x Intel Emerald Rapids 30 ms (SSE2) 23 ms (AVX2) 1.30x Intel Sapphire Rapid 32 ms (SSE2) 28 ms (AVX2) 1.14x Intel Ice Lake 43 ms (SSE2) 34 ms (AVX2) 1.26x Intel Skylake-X 54 ms (SSE2) 45 ms (AVX2) 1.20x Intel Haswell 59 ms (SSE2) 54 ms (AVX2) 1.09x AMD Zen 5 32 ms (SSE2) 19 ms (AVX2) 1.68x AMD Zen 4 36 ms (SSE2) 26 ms (AVX2) 1.38x AMD Zen 3 42 ms (SSE2) 28 ms (AVX2) 1.50x ARM Neoverse-V2 256 ms (C) 40 ms (NEON) 6.40x ARGBBlur_Opt (1280x720, r=55, 1000 iterations): CPU Was C/SSE2 Now AVX2/NEON Speedup -------------------- -------------- --------------- --------------- Intel Granite Rapids 1150 ms (SSE2) 984 ms (AVX2) 1.17x Intel Emerald Rapids 1081 ms (SSE2) 953 ms (AVX2) 1.13x Intel Sapphire Rapid 1124 ms (SSE2) 973 ms (AVX2) 1.16x Intel Ice Lake 1450 ms (SSE2) 1167 ms (AVX2) 1.24x Intel Skylake-X 1935 ms (SSE2) 1630 ms (AVX2) 1.19x Intel Haswell 2211 ms (SSE2) 1982 ms (AVX2) 1.12x AMD Zen 5 1089 ms (SSE2) 694 ms (AVX2) 1.57x AMD Zen 4 1045 ms (SSE2) 929 ms (AVX2) 1.12x AMD Zen 3 1215 ms (SSE2) 967 ms (AVX2) 1.26x ARM Neoverse-V2 6529 ms (C) 1544 ms (NEON) 4.23x Bug: b/456384776 Change-Id: I39c463c791826d3adb05f0b0845b0b1f56f0e4da Reviewed-on: https://chromium-review.googlesource.com/c/libyuv/libyuv/+/8464496 Commit-Queue: Frank Barchard <fbarchard@google.com> Reviewed-by: richard winterton <rrwinterton@gmail.com> |
||
|---|---|---|
| .. | ||
| libyuv | ||
| libyuv.h | ||