GH-39747: [C++][Parquet] Make BYTE_STREAM_SPLIT routines type-agnostic#39748
Conversation
|
|
|
@github-actions crossbow submit -g cpp |
|
Revision: 267dae4 Submitted crossbow builds: ursacomputing/crossbow @ actions-4c99dc6a39 |
|
All Looks most AVX512 benchmarks are slower than AVX2. |
Amusing. Which CPU is it? |
It's Intel Cascade Lake. |
|
This might be because the CPU clock frequency slows down when executing AVX-512 instructions. |
|
Tested with perf, cpu freq (cycles/task-clock) is 2.8GHz for sse2 and avx2 tests, matches the system max frequency. |
We've seen same performance on Intel Xeon. |
|
Perhaps we should open a separate issue to remove the AVX512 variants then? |
Agreed |
|
After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit 78ec4dc. There were no benchmark performance regressions. 🎉 The full Conbench report has more details. |
…gnostic (apache#39748) ### Rationale for this change The low-level BYTE_STREAM_SPLIT routines currently reference the logical type they are operating on (float or double). However, the BYTE_STREAM_SPLIT encoding is type-agnostic and only cares about the type width. Removing references to logical types makes these routines easier to reuse. ### Are these changes tested? Yes, including more exhaustive SIMD tests. ### Are there any user-facing changes? No. These routines are internal. * Closes: apache#39747 Authored-by: Antoine Pitrou <antoine@python.org> Signed-off-by: Antoine Pitrou <antoine@python.org>
Rationale for this change
The low-level BYTE_STREAM_SPLIT routines currently reference the logical type they are operating on (float or double). However, the BYTE_STREAM_SPLIT encoding is type-agnostic and only cares about the type width. Removing references to logical types makes these routines easier to reuse.
Are these changes tested?
Yes, including more exhaustive SIMD tests.
Are there any user-facing changes?
No. These routines are internal.