-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GH-37273: [C++] Bump vendored xxhash version #37275
Conversation
@github-actions crossbow submit -g cpp |
|
@github-actions crossbow submit -g cpp |
Revision: 6b88733 Submitted crossbow builds: ursacomputing/crossbow @ actions-184ea6a984 |
This comment was marked as duplicate.
This comment was marked as duplicate.
Nice, seems new release contains some optimizations about neon, maybe it helps! |
@ursabot please benchmark |
Benchmark runs are scheduled for commit 6b88733. Watch https://buildkite.com/apache-arrow and https://conbench.ursa.dev for updates. A comment will be posted here when the runs are complete. |
I'm not sure we enable Neon at compile-time. In any case, feel free to try it out and benchmark. cc @cyb70289 |
Before
after
I've benchmark 3 times on my m1 macos, seems after this patch, |
Perhaps you can try out |
#ifndef XXH_VECTOR /* can be defined on command line */
# if defined(__ARM_FEATURE_SVE)
# define XXH_VECTOR XXH_SVE
# elif ( \
defined(__ARM_NEON__) || defined(__ARM_NEON) /* gcc */ \
|| defined(_M_ARM) || defined(_M_ARM64) || defined(_M_ARM64EC) /* msvc */ \
|| (defined(__wasm_simd128__) && XXH_HAS_INCLUDE(<arm_neon.h>)) /* wasm simd128 via SIMDe */ \
) && ( \
defined(_WIN32) || defined(__LITTLE_ENDIAN__) /* little endian only */ \
|| (defined(__BYTE_ORDER__) && __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) \
)
# define XXH_VECTOR XXH_NEON
# elif defined(__AVX512F__)
# define XXH_VECTOR XXH_AVX512
# elif defined(__AVX2__)
# define XXH_VECTOR XXH_AVX2
# elif defined(__SSE2__) || defined(_M_AMD64) || defined(_M_X64) || (defined(_M_IX86_FP) && (_M_IX86_FP == 2))
# define XXH_VECTOR XXH_SSE2
# elif (defined(__PPC64__) && defined(__POWER8_VECTOR__)) \
|| (defined(__s390x__) && defined(__VEC__)) \
&& defined(__GNUC__) /* TODO: IBM XL */
# define XXH_VECTOR XXH_VSX
# else
# define XXH_VECTOR XXH_SCALAR
# endif
#endif I guess by default we will pick |
Thanks for your patience. Conbench analyzed the 6 benchmarking runs that have been run so far on PR commit 6b88733. There were 13 benchmark results indicating a performance regression:
The full Conbench report has more details. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1
Can we merge this?
Or do we need more discussion before we merge this?
After merging your PR, Conbench analyzed the 6 benchmarking runs that have been run so far on merge-commit 369bb31. There were no benchmark performance regressions. 🎉 The full Conbench report has more details. It also includes information about possible false positives for unstable benchmarks that are known to sometimes produce them. |
Bump from 0.8.1 to 0.8.2. It should fix a compilation error seen here, and may come with other improvements: https://dev.azure.com/ursacomputing/crossbow/_build/results?buildId=53150&view=logs&j=0da5d1d9-276d-5173-c4c4-9d4d4ed14fdb * Closes: apache#37273 Authored-by: Antoine Pitrou <[email protected]> Signed-off-by: Antoine Pitrou <[email protected]>
Bump from 0.8.1 to 0.8.2. It should fix a compilation error seen here, and may come with other improvements:
https://dev.azure.com/ursacomputing/crossbow/_build/results?buildId=53150&view=logs&j=0da5d1d9-276d-5173-c4c4-9d4d4ed14fdb