@@ -893,6 +893,7 @@ fn iter_ambiguity() {
893893fn read_kmer_bench ( ) {
894894 eprintln ! ( "\n Bench PackedSeq::read_kmer" ) ;
895895 for len in [ 100 , 150 , 200 , 1000 , 1_000_000 ] {
896+ let len = black_box ( len) ;
896897 let x = vec ! [ b'A' ; len] ;
897898 let packed = PackedSeqVec :: from_ascii ( & x) ;
898899 let mut out = vec ! [ ] ;
@@ -926,6 +927,7 @@ fn push_ascii_1bit_bench() {
926927 let mut packed = BitSeqVec :: default ( ) ;
927928
928929 for len in [ 100 , 150 , 200 , 1000 , 1_000_000 ] {
930+ let len = black_box ( len) ;
929931 // 1Gbp input.
930932 let rep = 1_000_000_000 / len;
931933 let mut ascii = AsciiSeqVec :: random ( len) ;
@@ -954,6 +956,7 @@ fn push_ascii_2bit_bench() {
954956 let mut packed = PackedSeqVec :: default ( ) ;
955957
956958 for len in [ 100 , 150 , 200 , 1000 , 1_000_000 ] {
959+ let len = black_box ( len) ;
957960 // 1Gbp input.
958961 let rep = 1_000_000_000 / len;
959962 let mut ascii = AsciiSeqVec :: random ( len) ;
@@ -980,6 +983,7 @@ fn push_ascii_2bit_bench() {
980983fn par_iter_bp_bench ( ) {
981984 eprintln ! ( "\n Bench PackedSeq::par_iter_bp" ) ;
982985 for len in [ 100 , 150 , 200 , 1000 , 1_000_000 ] {
986+ let len = black_box ( len) ;
983987 // 1Gbp input.
984988 let rep = 1_000_000_000 / len;
985989 let seq = PackedSeqVec :: random ( len) ;
@@ -1008,6 +1012,7 @@ fn par_iter_bp_buf_bench() {
10081012 let mut buf = [ S :: ZERO ; 8 ] ;
10091013
10101014 for len in [ 100 , 150 , 200 , 1000 , 1_000_000 ] {
1015+ let len = black_box ( len) ;
10111016 // 1Gbp input.
10121017 let rep = 1_000_000_000 / len;
10131018 let seq = PackedSeqVec :: random ( len) ;
@@ -1032,25 +1037,25 @@ fn par_iter_bp_buf_bench() {
10321037#[ ignore = "This is a benchmark, not a test" ]
10331038fn par_iter_bp_delayed_bench ( ) {
10341039 eprintln ! ( "\n Bench PackedSeq::par_iter_bp_delayed" ) ;
1040+ let delay = black_box ( Delay ( 27 ) ) ;
1041+ let mut sum = S :: ZERO ;
10351042 for len in [ 100 , 150 , 200 , 1000 , 1_000_000 ] {
1043+ let len = black_box ( len) ;
10361044 // 1Gbp input.
10371045 let rep = 1_000_000_000 / len;
10381046 let seq = PackedSeqVec :: random ( len) ;
10391047
10401048 let start = std:: time:: Instant :: now ( ) ;
10411049 for _ in 0 ..rep {
1042- let PaddedIt { it, .. } = seq. as_slice ( ) . par_iter_bp_delayed ( 1 , Delay ( 27 ) ) ;
1043- let mut sum = S :: ZERO ;
1044- for x in it {
1045- sum += x. 0 + x. 1 ;
1046- }
1047- black_box ( sum) ;
1050+ let PaddedIt { it, .. } = seq. as_slice ( ) . par_iter_bp_delayed ( 1 , delay) ;
1051+ it. for_each ( |x| sum += x. 0 + x. 1 ) ;
10481052 }
10491053 eprintln ! (
10501054 "Len {len:>7} => {:.03} Gbp/s" ,
10511055 start. elapsed( ) . as_secs_f64( ) . recip( )
10521056 ) ;
10531057 }
1058+ black_box ( & sum) ;
10541059}
10551060
10561061#[ test]
@@ -1060,17 +1065,21 @@ fn par_iter_bp_delayed_buf_bench() {
10601065
10611066 let mut buf = vec ! [ ] ;
10621067
1068+ let delay = black_box ( Delay ( 27 ) ) ;
10631069 for len in [ 100 , 150 , 200 , 1000 , 1_000_000 ] {
1070+ let len = black_box ( len) ;
10641071 // 1Gbp input.
10651072 let rep = 1_000_000_000 / len;
10661073 let seq = PackedSeqVec :: random ( len) ;
10671074
10681075 let start = std:: time:: Instant :: now ( ) ;
10691076 for _ in 0 ..rep {
1070- let PaddedIt { it, .. } =
1071- seq. as_slice ( )
1072- . par_iter_bp_delayed_with_factor_and_buf ( 1 , Delay ( 27 ) , 1 , & mut buf) ;
1073- black_box ( it. map ( |( x, y) | x + y) . sum :: < u32x8 > ( ) ) ;
1077+ let PaddedIt { it, .. } = seq
1078+ . as_slice ( )
1079+ . par_iter_bp_delayed_with_factor_and_buf ( 1 , delay, 1 , & mut buf) ;
1080+ let mut sum = S :: ZERO ;
1081+ it. for_each ( |x| sum += x. 0 + x. 1 ) ;
1082+ black_box ( sum) ;
10741083 }
10751084 eprintln ! (
10761085 "Len {len:>7} => {:.03} Gbp/s" ,
@@ -1084,23 +1093,24 @@ fn par_iter_bp_delayed_buf_bench() {
10841093fn par_iter_kmer_ambiguity_bench ( ) {
10851094 eprintln ! ( "\n Bench PackedSeq::par_iter_kmer_ambiguity" ) ;
10861095 let k = 31 ;
1096+ let mut sum = S :: ZERO ;
10871097 for len in [ 100 , 150 , 200 , 1000 , 1_000_000 ] {
1098+ let len = black_box ( len) ;
10881099 // 1Gbp input.
10891100 let rep = 1_000_000_000 / len;
10901101 let seq = BitSeqVec :: random ( len, 0.01 ) ;
10911102
10921103 let start = std:: time:: Instant :: now ( ) ;
10931104 for _ in 0 ..rep {
10941105 let PaddedIt { it, .. } = seq. as_slice ( ) . par_iter_kmer_ambiguity ( k, k - 1 , 0 ) ;
1095- let mut sum = S :: ZERO ;
10961106 for x in it {
10971107 sum += x;
10981108 }
1099- black_box ( & sum) ;
11001109 }
11011110 eprintln ! (
11021111 "Len {len:>7} => {:.03} Gbp/s" ,
11031112 start. elapsed( ) . as_secs_f64( ) . recip( )
11041113 ) ;
11051114 }
1115+ black_box ( & sum) ;
11061116}
0 commit comments