Skip to content

Conversation

@imartayan
Copy link
Collaborator

No description provided.

@RagnarGrootKoerkamp
Copy link
Contributor

RagnarGrootKoerkamp commented Oct 1, 2025

Updated the bench for multiple lengths and to reuse the allocation, and added & fixed a test for BitSeqVec::push_ascii which was broken when more than 1 sequence of non-multiple-of-8 length was pushed.

This is what I now get on x86:

test test::push_ascii_1bit_bench ...
Bench BitSeqVec::from_ascii
Len     100 => 2.441 Gbp/s
Len     150 => 3.043 Gbp/s
Len     200 => 3.368 Gbp/s
Len    1000 => 4.626 Gbp/s
Len 1000000 => 5.117 Gbp/s

test test::push_ascii_2bit_bench ...
Bench PackedSeqVec::from_ascii
Len     100 => 3.074 Gbp/s
Len     150 => 3.426 Gbp/s
Len     200 => 4.466 Gbp/s
Len    1000 => 5.373 Gbp/s
Len 1000000 => 5.653 Gbp/s

After some more commits to reduce bounds checking:

test test::push_ascii_1bit_bench ... 
Bench BitSeqVec::from_ascii
Len     100 => 3.672 Gbp/s
Len     150 => 5.311 Gbp/s
Len     200 => 6.510 Gbp/s
Len    1000 => 15.963 Gbp/s
Len 1000000 => 16.289 Gbp/s

test test::push_ascii_2bit_bench ... 
Bench PackedSeqVec::from_ascii
Len     100 => 4.616 Gbp/s
Len     150 => 5.472 Gbp/s
Len     200 => 8.919 Gbp/s
Len    1000 => 16.533 Gbp/s
Len 1000000 => 15.528 Gbp/s

@RagnarGrootKoerkamp RagnarGrootKoerkamp merged commit 65131e5 into master Oct 1, 2025
2 checks passed
@RagnarGrootKoerkamp RagnarGrootKoerkamp deleted the neon_push_ascii_speedup branch October 1, 2025 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants