File tree Expand file tree Collapse file tree 1 file changed +70
-0
lines changed Expand file tree Collapse file tree 1 file changed +70
-0
lines changed Original file line number Diff line number Diff line change @@ -74,6 +74,76 @@ fn iter_filter_sum_2d_stride_f32(bench: &mut Bencher) {
7474 bench. iter ( || b. iter ( ) . filter ( |& & x| x < 75. ) . sum :: < f32 > ( ) ) ;
7575}
7676
77+ #[ bench]
78+ fn iter_sum_2d_row_matrix ( bench : & mut Bencher ) {
79+ let a = Array :: from_iter ( 0i32 ..64 * 64 ) ;
80+ let v = a. view ( ) . insert_axis ( Axis ( 1 ) ) ;
81+ bench. iter ( || {
82+ let mut s = 0 ;
83+ for & elt in v. iter ( ) {
84+ s += elt;
85+ }
86+ s
87+ } ) ;
88+ }
89+
90+ #[ bench]
91+ fn iter_sum_2d_row_matrix_for_strided ( bench : & mut Bencher ) {
92+ let a = Array :: from_iter ( 0i32 ..64 * 64 ) . slice_move ( s ! [ ..; 2 ] ) ;
93+ let v = a. view ( ) . insert_axis ( Axis ( 1 ) ) ;
94+ bench. iter ( || {
95+ let mut s = 0 ;
96+ for & elt in v. iter ( ) {
97+ s += elt;
98+ }
99+ s
100+ } ) ;
101+ }
102+
103+ #[ bench]
104+ fn iter_sum_2d_row_matrix_sum_strided ( bench : & mut Bencher ) {
105+ let a = Array :: from_iter ( 0i32 ..64 * 64 ) . slice_move ( s ! [ ..; 2 ] ) ;
106+ let v = a. view ( ) . insert_axis ( Axis ( 1 ) ) ;
107+ bench. iter ( || {
108+ v. iter ( ) . sum :: < i32 > ( )
109+ } ) ;
110+ }
111+
112+ #[ bench]
113+ fn iter_sum_2d_col_matrix ( bench : & mut Bencher ) {
114+ let a = Array :: from_iter ( 0i32 ..64 * 64 ) ;
115+ let v = a. view ( ) . insert_axis ( Axis ( 0 ) ) ;
116+ bench. iter ( || {
117+ let mut s = 0 ;
118+ for & elt in v. iter ( ) {
119+ s += elt;
120+ }
121+ s
122+ } ) ;
123+ }
124+
125+ #[ bench]
126+ fn iter_sum_2d_col_matrix_for_strided ( bench : & mut Bencher ) {
127+ let a = Array :: from_iter ( 0i32 ..64 * 64 ) . slice_move ( s ! [ ..; 2 ] ) ;
128+ let v = a. view ( ) . insert_axis ( Axis ( 0 ) ) ;
129+ bench. iter ( || {
130+ let mut s = 0 ;
131+ for & elt in v. iter ( ) {
132+ s += elt;
133+ }
134+ s
135+ } ) ;
136+ }
137+
138+ #[ bench]
139+ fn iter_sum_2d_col_matrix_sum_strided ( bench : & mut Bencher ) {
140+ let a = Array :: from_iter ( 0i32 ..64 * 64 ) . slice_move ( s ! [ ..; 2 ] ) ;
141+ let v = a. view ( ) . insert_axis ( Axis ( 0 ) ) ;
142+ bench. iter ( || {
143+ v. iter ( ) . sum :: < i32 > ( )
144+ } ) ;
145+ }
146+
77147#[ bench]
78148fn iter_rev_step_by_contiguous ( bench : & mut Bencher ) {
79149 let a = Array :: linspace ( 0. , 1. , 512 ) ;
You can’t perform that action at this time.
0 commit comments