Skip to content
This repository has been archived by the owner on Feb 18, 2024. It is now read-only.

Speed up boolean comparison kernels (~3x) #610

Merged
merged 2 commits into from Nov 16, 2021

Conversation

Dandandan
Copy link
Collaborator

@Dandandan Dandandan commented Nov 16, 2021

  • Reuse binary and unary functions to do computation on u64 elements and cleanup code.
  • Restore comparison benchmark

Outcome:

bool 2^10               time:   [311.72 ns 312.34 ns 313.03 ns]
                        change: [-50.796% -50.519% -50.257%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  4 (4.00%) high mild
  1 (1.00%) high severe

Benchmarking bool scalar 2^10: Collecting 100 samples in estimated 5.0002 s (36M                                                                                bool scalar 2^10        time:   [134.00 ns 134.44 ns 134.93 ns]
                        change: [-29.129% -28.672% -28.185%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 5 outliers among 100 measurements (5.00%)
  4 (4.00%) high mild
  1 (1.00%) high severe

Benchmarking bool 2^12: Collecting 100 samples in estimated 5.0011 s (7.5M itera                                                                                bool 2^12               time:   [682.72 ns 690.96 ns 698.70 ns]
                        change: [-67.207% -66.954% -66.710%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 3 outliers among 100 measurements (3.00%)
  1 (1.00%) high mild
  2 (2.00%) high severe

Benchmarking bool scalar 2^12: Collecting 100 samples in estimated 5.0010 s (25M                                                                                bool scalar 2^12        time:   [194.41 ns 197.01 ns 200.69 ns]
                        change: [-51.596% -51.032% -50.249%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 8 outliers among 100 measurements (8.00%)
  1 (1.00%) high mild
  7 (7.00%) high severe

Benchmarking bool 2^14: Collecting 100 samples in estimated 5.0098 s (2.2M itera                                                                                bool 2^14               time:   [2.2481 us 2.2573 us 2.2680 us]
                        change: [-71.747% -71.515% -71.308%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
  1 (1.00%) low mild
  5 (5.00%) high mild

Benchmarking bool scalar 2^14: Collecting 100 samples in estimated 5.0003 s (11M                                                                                bool scalar 2^14        time:   [449.36 ns 450.69 ns 452.27 ns]
                        change: [-66.059% -65.853% -65.645%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 4 outliers among 100 measurements (4.00%)
  1 (1.00%) high mild
  3 (3.00%) high severe

Benchmarking bool 2^16: Collecting 100 samples in estimated 5.0003 s (616k itera                                                                                bool 2^16               time:   [8.1296 us 8.1497 us 8.1684 us]
                        change: [-75.072% -74.346% -73.690%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 6 outliers among 100 measurements (6.00%)
  1 (1.00%) low mild
  4 (4.00%) high mild
  1 (1.00%) high severe

Benchmarking bool scalar 2^16: Collecting 100 samples in estimated 5.0012 s (3.8                                                                                bool scalar 2^16        time:   [1.2945 us 1.2995 us 1.3050 us]
                        change: [-72.611% -72.412% -72.226%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 8 outliers among 100 measurements (8.00%)
  5 (5.00%) high mild
  3 (3.00%) high severe

@Dandandan Dandandan changed the title Speed up bool comparison kernels (~3x) Speed up boolean comparison kernels (~3x) Nov 16, 2021
@codecov
Copy link

codecov bot commented Nov 16, 2021

Codecov Report

Merging #610 (f265ef2) into main (ed0dee7) will decrease coverage by 0.01%.
The diff coverage is 100.00%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main     #610      +/-   ##
==========================================
- Coverage   79.54%   79.52%   -0.02%     
==========================================
  Files         401      401              
  Lines       24785    24766      -19     
==========================================
- Hits        19714    19695      -19     
  Misses       5071     5071              
Impacted Files Coverage Δ
src/compute/comparison/boolean.rs 92.59% <100.00%> (-1.41%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ed0dee7...f265ef2. Read the comment docs.

@jorgecarleitao jorgecarleitao added the feature A new feature label Nov 16, 2021
@jorgecarleitao
Copy link
Owner

5udy41

-- @Dandandan , probably

Great PR, as usual 💯

@jorgecarleitao jorgecarleitao merged commit 70562fa into jorgecarleitao:main Nov 16, 2021
@jorgecarleitao jorgecarleitao added enhancement An improvement to an existing feature and removed feature A new feature labels Nov 27, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
enhancement An improvement to an existing feature
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants