askoa commented on PR #3622:
URL: https://github.com/apache/arrow-rs/pull/3622#issuecomment-1407506292
The current iteration of `take_run` kernel looks substantially slower
compared to other take kernels. Mostly because of using binary search to
determine the indices. I am working on some alternative approach. Will update
here on the outcome.
```
take i32 512 time: [645.79 ns 656.51 ns 670.97 ns]
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) high mild
2 (2.00%) high severe
take i32 1024 time: [934.35 ns 954.59 ns 983.22 ns]
Found 8 outliers among 100 measurements (8.00%)
3 (3.00%) high mild
5 (5.00%) high severe
take check bounds i32 512
time: [929.47 ns 952.88 ns 992.80 ns]
Found 10 outliers among 100 measurements (10.00%)
4 (4.00%) high mild
6 (6.00%) high severe
take check bounds i32 1024
time: [1.5971 µs 1.6644 µs 1.7631 µs]
Found 9 outliers among 100 measurements (9.00%)
4 (4.00%) high mild
5 (5.00%) high severe
take i32 nulls 512 time: [728.49 ns 750.21 ns 775.88 ns]
Found 16 outliers among 100 measurements (16.00%)
3 (3.00%) high mild
13 (13.00%) high severe
take i32 nulls 1024 time: [1.1009 µs 1.1676 µs 1.2571 µs]
Found 11 outliers among 100 measurements (11.00%)
1 (1.00%) high mild
10 (10.00%) high severe
take bool 512 time: [1.8112 µs 1.8761 µs 1.9625 µs]
Found 10 outliers among 100 measurements (10.00%)
2 (2.00%) low mild
4 (4.00%) high mild
4 (4.00%) high severe
take bool 1024 time: [4.2973 µs 4.3593 µs 4.4482 µs]
Found 10 outliers among 100 measurements (10.00%)
4 (4.00%) high mild
6 (6.00%) high severe
take bool nulls 512 time: [2.2029 µs 2.2717 µs 2.3672 µs]
Found 7 outliers among 100 measurements (7.00%)
2 (2.00%) high mild
5 (5.00%) high severe
take bool nulls 1024 time: [4.2868 µs 4.4366 µs 4.6310 µs]
Found 5 outliers among 100 measurements (5.00%)
3 (3.00%) high mild
2 (2.00%) high severe
take str 512 time: [6.1369 µs 6.3286 µs 6.5568 µs]
Found 10 outliers among 100 measurements (10.00%)
3 (3.00%) high mild
7 (7.00%) high severe
take str 1024 time: [10.398 µs 10.606 µs 10.840 µs]
Found 11 outliers among 100 measurements (11.00%)
4 (4.00%) high mild
7 (7.00%) high severe
take str null indices 512
time: [6.6720 µs 7.0256 µs 7.4753 µs]
Found 13 outliers among 100 measurements (13.00%)
10 (10.00%) high mild
3 (3.00%) high severe
take str null indices 1024
time: [12.488 µs 12.707 µs 12.960 µs]
Found 13 outliers among 100 measurements (13.00%)
6 (6.00%) high mild
7 (7.00%) high severe
take str null values 1024
time: [14.919 µs 15.238 µs 15.622 µs]
Found 13 outliers among 100 measurements (13.00%)
9 (9.00%) high mild
4 (4.00%) high severe
take str null values null indices 1024
time: [12.459 µs 12.800 µs 13.165 µs]
Found 16 outliers among 100 measurements (16.00%)
3 (3.00%) low mild
6 (6.00%) high mild
7 (7.00%) high severe
take primitive run logical len: 1024, physical len: 512, indices: 1024
time: [57.119 µs 58.460 µs 59.983 µs]
Found 12 outliers among 100 measurements (12.00%)
6 (6.00%) high mild
6 (6.00%) high severe
```
--
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]