mapleFU commented on PR #55323:
URL: https://github.com/apache/arrow/pull/55323#issuecomment-6634437320

   > Benchmark numbers on my AMD Zen 2 CPU
   
   I've tested above gcc/clang, when n=64:
   
   ```
   
   impl | gcc10 O2 | gcc10 O3 | gcc14 O2 | gcc14 O3 | clang18 O2 | clang18 O3
   -- | -- | -- | -- | -- | -- | --
   main:scalar(NONE target) | 19.80 | 19.12 | 19.14 | 19.13 | 17.55 | 17.55
   main:level_comparison_avx2.cc | 19.62 | 19.13 | 19.14 | 19.14 | 6.24 | 6.24
   PR:xsimd sse4_2(xsimd 14.2.0) | 6.73 | 6.61 | 6.53 | 6.63 | 6.76 | 6.75
   PR:xsimd avx2(xsimd 14.2.0) | 6.64 | 6.35 | 6.17 | 6.11 | 6.02 | 6.02
   PR:xsimd sse4_2(mask() with xsimd optimize) | 3.09 | 3.32 | 3.10 | 3.10 | 
2.91 | 2.91
   PR:xsimd avx2(mask() with xsimd optimize) | 2.74 | 2.22 | 2.01 | 2.00 | 2.24 
| 2.24
   ```
   
   So, removing `lut` makes x86 faster, and `level_comparison_avx2.cc` might 
keep the same performance on clang, optimized on GCC. So I wonder should I:
   1. Removing original avx2 generated by `_avx2` with inline, keep the simd
   2. Or, just add neon and wait for xsimd optimization?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to