alamb opened a new pull request, #9035: URL: https://github.com/apache/arrow-rs/pull/9035
# Which issue does this PR close? <!-- We generally require a GitHub issue to be filed for all bug fixes and enhancements and this helps us generate change logs for our releases. You can link an issue to this PR using the GitHub syntax. --> - Related to https://github.com/apache/arrow-rs/issues/8806 - Related to https://github.com/apache/arrow-rs/pull/8996 # Rationale for this change When working on improving the boolean kernels, I have seen significant and unexplained noise from run to run. For example, just adding a fast path for `u64` aligned data resulted in a reported 30% regression in the speed of slice24 (code that is not affected by the change at all). for example, from https://github.com/apache/arrow-rs/pull/9022 ``` and 1.00 208.0±5.91ns ? ?/sec 1.34 278.8±10.07ns ? ?/sec and_sliced_1 1.00 1100.2±6.53ns ? ?/sec 1.12 1226.9±6.11ns ? ?/sec and_sliced_24 1.40 340.9±2.49ns ? ?/sec 1.00 243.7±2.13ns ? ?/sec ``` I also can't reproduce this effect locally or when I run the benchmarks individually. Given the above, and the tiny amount of time spent in the benchmark (hundreds of nanoseconds), I believe what is happening is that changing the allocation pattern during the benchmark runs (each kernel allocates output), data for subsequent iterations is allocated subtlety differently (e.g. the exact alignment or some other factor is different). This results in different performance characteristics even when the code has not changed. # What changes are included in this PR? To reduce this noise, I want to change the benchmarks to pre-allocate the input. # Are these changes tested? I ran them manually # Are there any user-facing changes? No, this is just a benchmark change -- 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]
