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
ARROW-10914: [Rust] Refactor simd arithmetic kernels to use chunked iteration #8929
ARROW-10914: [Rust] Refactor simd arithmetic kernels to use chunked iteration #8929
Conversation
… and avoid out of bounds reads
I'm seeing bigger variations on the benchmark numbers between runs, the results below between current master and this pr are from one of the faster runs:
|
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.
Thanks a lot, @jhorstmann !
I did not go through all the details of this PR, but what I read looks really good and makes the code much easier to read. So, 👍
…teration This should avoid out of bounds reads in those kernels and also removes some unsafe blocks. The performance actually seems to increase slightly, I will post the numbers later. The division kernel looks a bit more complex now, but follows the same pattern as used in the simd aggregation functions, with two separate codepaths for the nullable/non-null cases. The comparison kernels might also do some out of bounds reads, I will look at those in a separate ticket/PR. Closes apache#8929 from jhorstmann/ARROW-10914-simd-arithmetic-read-out-of-bounds Authored-by: Jörn Horstmann <joern.horstmann@signavio.com> Signed-off-by: Jorge C. Leitao <jorgecarleitao@gmail.com>
This should avoid out of bounds reads in those kernels and also removes some unsafe blocks. The performance actually seems to increase slightly, I will post the numbers later.
The division kernel looks a bit more complex now, but follows the same pattern as used in the simd aggregation functions, with two separate codepaths for the nullable/non-null cases.
The comparison kernels might also do some out of bounds reads, I will look at those in a separate ticket/PR.