Skip to content

Commit f13c63e

Browse files
committed
TEST: Add iteration and sum (fold) benchmarks for row/col matrices
This is special for arrays of shape 1 x n or n x 1; add iterator and iterator sum (fold) benchmarks.
1 parent 380be98 commit f13c63e

File tree

1 file changed

+72
-0
lines changed

1 file changed

+72
-0
lines changed

benches/iter.rs

+72
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,78 @@ fn iter_filter_sum_2d_stride_f32(bench: &mut Bencher)
8787
bench.iter(|| b.iter().filter(|&&x| x < 75.).sum::<f32>());
8888
}
8989

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+
90162
#[bench]
91163
fn iter_rev_step_by_contiguous(bench: &mut Bencher)
92164
{

0 commit comments

Comments
 (0)