Skip to content

Commit 917facf

Browse files
committed
Add MulHash bench
1 parent b7ede94 commit 917facf

1 file changed

Lines changed: 35 additions & 2 deletions

File tree

src/test.rs

Lines changed: 35 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,8 @@ fn seeded() {
162162

163163
#[test]
164164
#[ignore = "This is a benchmark, not a test"]
165-
fn hash_kmers_bench() {
166-
eprintln!("\nBench SeqHash::hash_kmers_simd");
165+
fn nthash_kmers_bench() {
166+
eprintln!("\nBench NtHash::hash_kmers_simd");
167167

168168
for k in [1, 31] {
169169
eprintln!("\nk = {k}");
@@ -192,3 +192,36 @@ fn hash_kmers_bench() {
192192
}
193193
}
194194
}
195+
196+
#[test]
197+
#[ignore = "This is a benchmark, not a test"]
198+
fn mulhash_kmers_bench() {
199+
eprintln!("\nBench MulHash::hash_kmers_simd");
200+
201+
for k in [1, 31] {
202+
eprintln!("\nk = {k}");
203+
204+
let hasher = MulHasher::<false>::new(k);
205+
206+
for len in [100, 150, 200, 1000, 1_000_000] {
207+
// 1Gbp input.
208+
let rep = 1_000_000_000 / len;
209+
let seq = PackedSeqVec::random(len);
210+
211+
let start = std::time::Instant::now();
212+
for _ in 0..rep {
213+
let PaddedIt { it, .. } = hasher.hash_kmers_simd(seq.as_slice(), k);
214+
it.for_each(
215+
#[inline(always)]
216+
|y| {
217+
core::hint::black_box(&y);
218+
},
219+
);
220+
}
221+
eprintln!(
222+
"Len {len:>7} => {:.03} Gbp/s",
223+
start.elapsed().as_secs_f64().recip()
224+
);
225+
}
226+
}
227+
}

0 commit comments

Comments
 (0)