diff --git a/lightmotif/benches/encode.rs b/lightmotif/benches/encode.rs index 147b048ed3cd5d8dc902f19a45cd01215a8b06f9..d1f4b1ae222b18a0e41a0327b4d7ab0fae2203e5 100644 --- a/lightmotif/benches/encode.rs +++ b/lightmotif/benches/encode.rs @@ -23,34 +23,34 @@ mod dna { } #[bench] - fn bench_generic(bencher: &mut test::Bencher) { + fn generic(bencher: &mut test::Bencher) { let pli = Pipeline::generic(); bench(bencher, &pli); } #[bench] - fn bench_dispatch(bencher: &mut test::Bencher) { + fn dispatch(bencher: &mut test::Bencher) { let pli = Pipeline::dispatch(); bench(bencher, &pli); } #[cfg(target_feature = "sse2")] #[bench] - fn bench_sse2(bencher: &mut test::Bencher) { + fn sse2(bencher: &mut test::Bencher) { let pli = Pipeline::sse2().unwrap(); bench(bencher, &pli); } #[cfg(target_feature = "avx2")] #[bench] - fn bench_avx2(bencher: &mut test::Bencher) { + fn avx2(bencher: &mut test::Bencher) { let pli = Pipeline::avx2().unwrap(); bench(bencher, &pli); } #[cfg(target_feature = "neon")] #[bench] - fn bench_neon(bencher: &mut test::Bencher) { + fn neon(bencher: &mut test::Bencher) { let pli = Pipeline::neon().unwrap(); bench(bencher, &pli); } @@ -72,34 +72,34 @@ mod protein { } #[bench] - fn bench_generic(bencher: &mut test::Bencher) { + fn generic(bencher: &mut test::Bencher) { let pli = Pipeline::generic(); bench(bencher, &pli); } #[bench] - fn bench_dispatch(bencher: &mut test::Bencher) { + fn dispatch(bencher: &mut test::Bencher) { let pli = Pipeline::dispatch(); bench(bencher, &pli); } #[cfg(target_feature = "sse2")] #[bench] - fn bench_sse2(bencher: &mut test::Bencher) { + fn sse2(bencher: &mut test::Bencher) { let pli = Pipeline::sse2().unwrap(); bench(bencher, &pli); } #[cfg(target_feature = "avx2")] #[bench] - fn bench_avx2(bencher: &mut test::Bencher) { + fn avx2(bencher: &mut test::Bencher) { let pli = Pipeline::avx2().unwrap(); bench(bencher, &pli); } #[cfg(target_feature = "neon")] #[bench] - fn bench_neon(bencher: &mut test::Bencher) { + fn neon(bencher: &mut test::Bencher) { let pli = Pipeline::neon().unwrap(); bench(bencher, &pli); } diff --git a/lightmotif/benches/score.rs b/lightmotif/benches/score.rs index a1fee2613019ea1cfa49734104493f4ff83a8b86..4f0044005e2a3aa9d170ca364680482f237213ff 100644 --- a/lightmotif/benches/score.rs +++ b/lightmotif/benches/score.rs @@ -46,41 +46,41 @@ mod dna { } #[bench] - fn bench_generic(bencher: &mut test::Bencher) { + fn generic(bencher: &mut test::Bencher) { let pli = Pipeline::generic(); bench::<U32, _>(bencher, &pli); } #[bench] - fn bench_dispatch(bencher: &mut test::Bencher) { + fn dispatch(bencher: &mut test::Bencher) { let pli = Pipeline::dispatch(); bench(bencher, &pli); } #[cfg(target_feature = "sse2")] #[bench] - fn bench_sse2(bencher: &mut test::Bencher) { + fn sse2(bencher: &mut test::Bencher) { let pli = Pipeline::sse2().unwrap(); bench::<U16, _>(bencher, &pli); } #[cfg(target_feature = "sse2")] #[bench] - fn bench_sse2_32(bencher: &mut test::Bencher) { + fn sse2_32(bencher: &mut test::Bencher) { let pli = Pipeline::sse2().unwrap(); bench::<U32, _>(bencher, &pli); } #[cfg(target_feature = "avx2")] #[bench] - fn bench_avx2(bencher: &mut test::Bencher) { + fn avx2(bencher: &mut test::Bencher) { let pli = Pipeline::avx2().unwrap(); bench(bencher, &pli); } #[cfg(target_feature = "neon")] #[bench] - fn bench_neon(bencher: &mut test::Bencher) { + fn neon(bencher: &mut test::Bencher) { let pli = Pipeline::neon().unwrap(); bench::<U16, _>(bencher, &pli); } @@ -112,41 +112,41 @@ mod dna { } #[bench] - fn bench_generic(bencher: &mut test::Bencher) { + fn generic(bencher: &mut test::Bencher) { let pli = Pipeline::generic(); bench::<U32, _>(bencher, &pli); } #[bench] - fn bench_dispatch(bencher: &mut test::Bencher) { + fn dispatch(bencher: &mut test::Bencher) { let pli = Pipeline::dispatch(); bench(bencher, &pli); } #[cfg(target_feature = "sse2")] #[bench] - fn bench_sse2(bencher: &mut test::Bencher) { + fn sse2(bencher: &mut test::Bencher) { let pli = Pipeline::sse2().unwrap(); bench::<U16, _>(bencher, &pli); } #[cfg(target_feature = "sse2")] #[bench] - fn bench_sse2_32(bencher: &mut test::Bencher) { + fn sse2_32(bencher: &mut test::Bencher) { let pli = Pipeline::sse2().unwrap(); bench::<U32, _>(bencher, &pli); } #[cfg(target_feature = "avx2")] #[bench] - fn bench_avx2(bencher: &mut test::Bencher) { + fn avx2(bencher: &mut test::Bencher) { let pli = Pipeline::avx2().unwrap(); bench(bencher, &pli); } #[cfg(target_feature = "neon")] #[bench] - fn bench_neon(bencher: &mut test::Bencher) { + fn neon(bencher: &mut test::Bencher) { let pli = Pipeline::neon().unwrap(); bench::<U16, _>(bencher, &pli); } @@ -160,68 +160,75 @@ mod protein { const SEQUENCE: &str = include_str!("abyB1.txt"); - fn bench<C: StrictlyPositive, P: Score<f32, Protein, C>>(bencher: &mut test::Bencher, pli: &P) { - let encoded = EncodedSequence::<Protein>::encode(SEQUENCE).unwrap(); - let mut striped = Pipeline::generic().stripe(encoded); - - let cm = CountMatrix::<Protein>::from_sequences([ - EncodedSequence::encode("SFKELGFDSLTAVELRNRLAAAT").unwrap(), - EncodedSequence::encode("AFKELGFDSLAAIQLRNRLLADV").unwrap(), - EncodedSequence::encode("PSRRLGFDSLTAVELRNQLAAST").unwrap(), - EncodedSequence::encode("AFREIGFDSLTAVELRNRLGAAA").unwrap(), - EncodedSequence::encode("SLMEEGLDSLAAVELGGTLQRDT").unwrap(), - EncodedSequence::encode("GFFDLGMDSLMAVELRRRIEQGV").unwrap(), - ]) - .unwrap(); - let pbm = cm.to_freq(0.1); - let pssm = pbm.to_scoring(None); - - striped.configure(&pssm); - let mut scores = StripedScores::empty(); - scores.resize(striped.matrix().rows(), striped.len()); - bencher.bytes = SEQUENCE.len() as u64; - bencher.iter(|| { - test::black_box(pli.score_into(&pssm, &striped, &mut scores)); - }); - } + mod f32 { + use super::*; - #[bench] - fn bench_generic(bencher: &mut test::Bencher) { - let pli = Pipeline::generic(); - bench::<U32, _>(bencher, &pli); - } + fn bench<C: StrictlyPositive, P: Score<f32, Protein, C>>( + bencher: &mut test::Bencher, + pli: &P, + ) { + let encoded = EncodedSequence::<Protein>::encode(SEQUENCE).unwrap(); + let mut striped = Pipeline::generic().stripe(encoded); - #[bench] - fn bench_dispatch(bencher: &mut test::Bencher) { - let pli = Pipeline::dispatch(); - bench(bencher, &pli); - } + let cm = CountMatrix::<Protein>::from_sequences([ + EncodedSequence::encode("SFKELGFDSLTAVELRNRLAAAT").unwrap(), + EncodedSequence::encode("AFKELGFDSLAAIQLRNRLLADV").unwrap(), + EncodedSequence::encode("PSRRLGFDSLTAVELRNQLAAST").unwrap(), + EncodedSequence::encode("AFREIGFDSLTAVELRNRLGAAA").unwrap(), + EncodedSequence::encode("SLMEEGLDSLAAVELGGTLQRDT").unwrap(), + EncodedSequence::encode("GFFDLGMDSLMAVELRRRIEQGV").unwrap(), + ]) + .unwrap(); + let pbm = cm.to_freq(0.1); + let pssm = pbm.to_scoring(None); - #[cfg(target_feature = "sse2")] - #[bench] - fn bench_sse2(bencher: &mut test::Bencher) { - let pli = Pipeline::sse2().unwrap(); - bench::<U16, _>(bencher, &pli); - } + striped.configure(&pssm); + let mut scores = StripedScores::empty(); + scores.resize(striped.matrix().rows(), striped.len()); + bencher.bytes = SEQUENCE.len() as u64; + bencher.iter(|| { + test::black_box(pli.score_into(&pssm, &striped, &mut scores)); + }); + } - #[cfg(target_feature = "sse2")] - #[bench] - fn bench_sse2_32(bencher: &mut test::Bencher) { - let pli = Pipeline::sse2().unwrap(); - bench::<U32, _>(bencher, &pli); - } + #[bench] + fn generic(bencher: &mut test::Bencher) { + let pli = Pipeline::generic(); + bench::<U32, _>(bencher, &pli); + } - #[cfg(target_feature = "avx2")] - #[bench] - fn bench_avx2(bencher: &mut test::Bencher) { - let pli = Pipeline::avx2().unwrap(); - bench(bencher, &pli); - } + #[bench] + fn dispatch(bencher: &mut test::Bencher) { + let pli = Pipeline::dispatch(); + bench(bencher, &pli); + } + + #[cfg(target_feature = "sse2")] + #[bench] + fn sse2(bencher: &mut test::Bencher) { + let pli = Pipeline::sse2().unwrap(); + bench::<U16, _>(bencher, &pli); + } + + #[cfg(target_feature = "sse2")] + #[bench] + fn sse2_32(bencher: &mut test::Bencher) { + let pli = Pipeline::sse2().unwrap(); + bench::<U32, _>(bencher, &pli); + } - #[cfg(target_feature = "neon")] - #[bench] - fn bench_neon(bencher: &mut test::Bencher) { - let pli = Pipeline::neon().unwrap(); - bench::<U16, _>(bencher, &pli); + #[cfg(target_feature = "avx2")] + #[bench] + fn avx2(bencher: &mut test::Bencher) { + let pli = Pipeline::avx2().unwrap(); + bench(bencher, &pli); + } + + #[cfg(target_feature = "neon")] + #[bench] + fn neon(bencher: &mut test::Bencher) { + let pli = Pipeline::neon().unwrap(); + bench::<U16, _>(bencher, &pli); + } } } diff --git a/lightmotif/benches/stripe.rs b/lightmotif/benches/stripe.rs index 61c055c28f051886de0ff1bd682a4db1cc6e0697..3ab0a218787100a35d2ebab08ebe964fea15ae69 100644 --- a/lightmotif/benches/stripe.rs +++ b/lightmotif/benches/stripe.rs @@ -28,34 +28,34 @@ mod dna { } #[bench] - fn bench_generic(bencher: &mut test::Bencher) { + fn generic(bencher: &mut test::Bencher) { let pli = Pipeline::generic(); bench(bencher, &pli); } #[bench] - fn bench_dispatch(bencher: &mut test::Bencher) { + fn dispatch(bencher: &mut test::Bencher) { let pli = Pipeline::dispatch(); bench(bencher, &pli); } // #[cfg(target_feature = "sse2")] // #[bench] - // fn bench_sse2(bencher: &mut test::Bencher) { + // fn sse2(bencher: &mut test::Bencher) { // let pli = Pipeline::sse2().unwrap(); // bench(bencher, &pli); // } #[cfg(target_feature = "avx2")] #[bench] - fn bench_avx2(bencher: &mut test::Bencher) { + fn avx2(bencher: &mut test::Bencher) { let pli = Pipeline::avx2().unwrap(); bench(bencher, &pli); } // #[cfg(target_feature = "neon")] // #[bench] - // fn bench_neon(bencher: &mut test::Bencher) { + // fn neon(bencher: &mut test::Bencher) { // let pli = Pipeline::neon().unwrap(); // bench(bencher, &pli); // } @@ -80,34 +80,34 @@ mod protein { } #[bench] - fn bench_generic(bencher: &mut test::Bencher) { + fn generic(bencher: &mut test::Bencher) { let pli = Pipeline::generic(); bench(bencher, &pli); } #[bench] - fn bench_dispatch(bencher: &mut test::Bencher) { + fn dispatch(bencher: &mut test::Bencher) { let pli = Pipeline::dispatch(); bench(bencher, &pli); } // #[cfg(target_feature = "sse2")] // #[bench] - // fn bench_sse2(bencher: &mut test::Bencher) { + // fn sse2(bencher: &mut test::Bencher) { // let pli = Pipeline::sse2().unwrap(); // bench(bencher, &pli); // } #[cfg(target_feature = "avx2")] #[bench] - fn bench_avx2(bencher: &mut test::Bencher) { + fn avx2(bencher: &mut test::Bencher) { let pli = Pipeline::avx2().unwrap(); bench(bencher, &pli); } // #[cfg(target_feature = "neon")] // #[bench] - // fn bench_neon(bencher: &mut test::Bencher) { + // fn neon(bencher: &mut test::Bencher) { // let pli = Pipeline::neon().unwrap(); // bench(bencher, &pli); // } diff --git a/lightmotif/benches/threshold.rs b/lightmotif/benches/threshold.rs index 1e530e2648450ed216538119820f0dfd2ae793cd..923c84b59cfdd25f3b6b83a0fa317f211cfa83b0 100644 --- a/lightmotif/benches/threshold.rs +++ b/lightmotif/benches/threshold.rs @@ -47,41 +47,41 @@ mod f32 { } #[bench] - fn bench_generic(bencher: &mut test::Bencher) { + fn generic(bencher: &mut test::Bencher) { let pli = Pipeline::generic(); bench::<U32, _>(bencher, &pli); } #[bench] - fn bench_dispatch(bencher: &mut test::Bencher) { + fn dispatch(bencher: &mut test::Bencher) { let pli = Pipeline::dispatch(); bench(bencher, &pli); } #[cfg(target_feature = "sse2")] #[bench] - fn bench_sse2(bencher: &mut test::Bencher) { + fn sse2(bencher: &mut test::Bencher) { let pli = Pipeline::sse2().unwrap(); bench::<U16, _>(bencher, &pli); } #[cfg(target_feature = "sse2")] #[bench] - fn bench_sse2_32(bencher: &mut test::Bencher) { + fn sse2_32(bencher: &mut test::Bencher) { let pli = Pipeline::sse2().unwrap(); bench::<U32, _>(bencher, &pli); } #[cfg(target_feature = "avx2")] #[bench] - fn bench_avx2(bencher: &mut test::Bencher) { + fn avx2(bencher: &mut test::Bencher) { let pli = Pipeline::avx2().unwrap(); bench(bencher, &pli); } #[cfg(target_feature = "neon")] #[bench] - fn bench_neon(bencher: &mut test::Bencher) { + fn neon(bencher: &mut test::Bencher) { let pli = Pipeline::neon().unwrap(); bench::<U16, _>(bencher, &pli); } @@ -128,41 +128,41 @@ mod u8 { } #[bench] - fn bench_generic(bencher: &mut test::Bencher) { + fn generic(bencher: &mut test::Bencher) { let pli = Pipeline::generic(); bench::<U32, _>(bencher, &pli); } #[bench] - fn bench_dispatch(bencher: &mut test::Bencher) { + fn dispatch(bencher: &mut test::Bencher) { let pli = Pipeline::dispatch(); bench(bencher, &pli); } #[cfg(target_feature = "sse2")] #[bench] - fn bench_sse2(bencher: &mut test::Bencher) { + fn sse2(bencher: &mut test::Bencher) { let pli = Pipeline::sse2().unwrap(); bench::<U16, _>(bencher, &pli); } #[cfg(target_feature = "sse2")] #[bench] - fn bench_sse2_32(bencher: &mut test::Bencher) { + fn sse2_32(bencher: &mut test::Bencher) { let pli = Pipeline::sse2().unwrap(); bench::<U32, _>(bencher, &pli); } #[cfg(target_feature = "avx2")] #[bench] - fn bench_avx2(bencher: &mut test::Bencher) { + fn avx2(bencher: &mut test::Bencher) { let pli = Pipeline::avx2().unwrap(); bench(bencher, &pli); } #[cfg(target_feature = "neon")] #[bench] - fn bench_neon(bencher: &mut test::Bencher) { + fn neon(bencher: &mut test::Bencher) { let pli = Pipeline::neon().unwrap(); bench::<U16, _>(bencher, &pli); }