-
Notifications
You must be signed in to change notification settings - Fork 4k
ARROW-10304: [C++][Compute] Optimize variance kernel for integers #8466
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
Conversation
|
NOTE: Benchmark PR #8407 is not merged yet. Need to manually pull that PR to evaluation performance. Tested on Xeon Gold 5218, clang-9. |
|
Turn to draft. Will add 64bit integers optimization. |
|
Added int64 optimization. Updated benchmark result. Ready for review. |
Improve variance kernel performance for integers by leveraging textbook one pass algorithm and integer arithmetic.
|
Results on an AMD Zen 2 CPU: I'm curious why Int64 would be faster than Double. Aren't they using the same algorithm? (and Int64 goes through an additional int-to-float conversion for each value) |
There's no int-to-float conversion in Int64 summation loop (sum to Int128). It's faster than double summation. |
|
Ah, I hadn't noticed the |
pitrou
left a comment
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
Improve variance kernel performance for integers by leveraging
textbook one pass algorithm and integer arithmetic.