File tree 1 file changed +72
-0
lines changed
1 file changed +72
-0
lines changed Original file line number Diff line number Diff line change @@ -87,6 +87,78 @@ fn iter_filter_sum_2d_stride_f32(bench: &mut Bencher)
87
87
bench. iter ( || b. iter ( ) . filter ( |& & x| x < 75. ) . sum :: < f32 > ( ) ) ;
88
88
}
89
89
90
+ #[ bench]
91
+ fn iter_sum_2d_row_matrix ( bench : & mut Bencher )
92
+ {
93
+ let a = Array :: from_iter ( 0i32 ..64 * 64 ) ;
94
+ let v = a. view ( ) . insert_axis ( Axis ( 1 ) ) ;
95
+ bench. iter ( || {
96
+ let mut s = 0 ;
97
+ for & elt in v. iter ( ) {
98
+ s += elt;
99
+ }
100
+ s
101
+ } ) ;
102
+ }
103
+
104
+ #[ bench]
105
+ fn iter_sum_2d_row_matrix_for_strided ( bench : & mut Bencher )
106
+ {
107
+ let a = Array :: from_iter ( 0i32 ..64 * 64 ) . slice_move ( s ! [ ..; 2 ] ) ;
108
+ let v = a. view ( ) . insert_axis ( Axis ( 1 ) ) ;
109
+ bench. iter ( || {
110
+ let mut s = 0 ;
111
+ for & elt in v. iter ( ) {
112
+ s += elt;
113
+ }
114
+ s
115
+ } ) ;
116
+ }
117
+
118
+ #[ bench]
119
+ fn iter_sum_2d_row_matrix_sum_strided ( bench : & mut Bencher )
120
+ {
121
+ let a = Array :: from_iter ( 0i32 ..64 * 64 ) . slice_move ( s ! [ ..; 2 ] ) ;
122
+ let v = a. view ( ) . insert_axis ( Axis ( 1 ) ) ;
123
+ bench. iter ( || v. iter ( ) . sum :: < i32 > ( ) ) ;
124
+ }
125
+
126
+ #[ bench]
127
+ fn iter_sum_2d_col_matrix ( bench : & mut Bencher )
128
+ {
129
+ let a = Array :: from_iter ( 0i32 ..64 * 64 ) ;
130
+ let v = a. view ( ) . insert_axis ( Axis ( 0 ) ) ;
131
+ bench. iter ( || {
132
+ let mut s = 0 ;
133
+ for & elt in v. iter ( ) {
134
+ s += elt;
135
+ }
136
+ s
137
+ } ) ;
138
+ }
139
+
140
+ #[ bench]
141
+ fn iter_sum_2d_col_matrix_for_strided ( bench : & mut Bencher )
142
+ {
143
+ let a = Array :: from_iter ( 0i32 ..64 * 64 ) . slice_move ( s ! [ ..; 2 ] ) ;
144
+ let v = a. view ( ) . insert_axis ( Axis ( 0 ) ) ;
145
+ bench. iter ( || {
146
+ let mut s = 0 ;
147
+ for & elt in v. iter ( ) {
148
+ s += elt;
149
+ }
150
+ s
151
+ } ) ;
152
+ }
153
+
154
+ #[ bench]
155
+ fn iter_sum_2d_col_matrix_sum_strided ( bench : & mut Bencher )
156
+ {
157
+ let a = Array :: from_iter ( 0i32 ..64 * 64 ) . slice_move ( s ! [ ..; 2 ] ) ;
158
+ let v = a. view ( ) . insert_axis ( Axis ( 0 ) ) ;
159
+ bench. iter ( || v. iter ( ) . sum :: < i32 > ( ) ) ;
160
+ }
161
+
90
162
#[ bench]
91
163
fn iter_rev_step_by_contiguous ( bench : & mut Bencher )
92
164
{
You can’t perform that action at this time.
0 commit comments