Commits


Jorge C. Leitao authored and Andy Grove committed eba734755a3
ARROW-9971: [Rust] Improve speed of `take` by 2x-3x (change scaling with batch size) This PR improves the speed of the `take` kernel by using ~the dark magic~ buffers that @nevi-me thought me in another PR. 😀 Like others PRs, the first commit fixes the benchmarks: * made them not benchmark array creation * removed benchmark of i8 since it uses the same code as i32,i64,if32,etc. * removed size 256 since 512 and 1024 is enough * added benchmark of take of strings ``` git checkout c2aff01 && cargo bench --bench take_kernels && git checkout take_faster && cargo bench --bench take_kernels ``` Result on my computer: ``` take i32 512 time: [2.9221 us 2.9282 us 2.9348 us] change: [-46.697% -45.799% -44.703%] (p = 0.00 < 0.05) Performance has improved. Found 12 outliers among 100 measurements (12.00%) 5 (5.00%) high mild 7 (7.00%) high severe take i32 1024 time: [5.0237 us 5.0376 us 5.0548 us] change: [-48.840% -48.433% -48.087%] (p = 0.00 < 0.05) Performance has improved. Found 8 outliers among 100 measurements (8.00%) 3 (3.00%) high mild 5 (5.00%) high severe take bool 512 time: [2.4694 us 2.4765 us 2.4843 us] change: [-50.789% -50.390% -50.012%] (p = 0.00 < 0.05) Performance has improved. Found 6 outliers among 100 measurements (6.00%) 3 (3.00%) high mild 3 (3.00%) high severe take bool 1024 time: [4.0698 us 4.2407 us 4.4884 us] change: [-51.026% -49.906% -48.535%] (p = 0.00 < 0.05) Performance has improved. Found 9 outliers among 100 measurements (9.00%) 5 (5.00%) high mild 4 (4.00%) high severe take str 512 time: [8.1593 us 8.9810 us 10.114 us] change: [-66.908% -57.395% -45.151%] (p = 0.00 < 0.05) Performance has improved. Found 10 outliers among 100 measurements (10.00%) 9 (9.00%) high mild 1 (1.00%) high severe take str 1024 time: [12.098 us 12.151 us 12.208 us] change: [-78.241% -75.656% -72.725%] (p = 0.00 < 0.05) Performance has improved. Found 5 outliers among 100 measurements (5.00%) 1 (1.00%) high mild 4 (4.00%) high severe ``` Closes #8170 from jorgecarleitao/take_faster Authored-by: Jorge C. Leitao <jorgecarleitao@gmail.com> Signed-off-by: Andy Grove <andygrove@nvidia.com>