Skip to content

Commit b2f3182

Browse files
committed
shape: Add benchmarks for .to_shape (to view)
1 parent 1d00ef1 commit b2f3182

File tree

1 file changed

+106
-0
lines changed

1 file changed

+106
-0
lines changed

benches/to_shape.rs

+106
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
#![feature(test)]
2+
3+
extern crate test;
4+
use test::Bencher;
5+
6+
use ndarray::prelude::*;
7+
use ndarray::Order;
8+
9+
#[bench]
10+
fn to_shape2_1(bench: &mut Bencher) {
11+
let a = Array::<f32, _>::zeros((4, 5));
12+
let view = a.view();
13+
bench.iter(|| {
14+
view.to_shape(4 * 5).unwrap()
15+
});
16+
}
17+
18+
#[bench]
19+
fn to_shape2_2_same(bench: &mut Bencher) {
20+
let a = Array::<f32, _>::zeros((4, 5));
21+
let view = a.view();
22+
bench.iter(|| {
23+
view.to_shape((4, 5)).unwrap()
24+
});
25+
}
26+
27+
#[bench]
28+
fn to_shape2_2_flip(bench: &mut Bencher) {
29+
let a = Array::<f32, _>::zeros((4, 5));
30+
let view = a.view();
31+
bench.iter(|| {
32+
view.to_shape((5, 4)).unwrap()
33+
});
34+
}
35+
36+
#[bench]
37+
fn to_shape2_3(bench: &mut Bencher) {
38+
let a = Array::<f32, _>::zeros((4, 5));
39+
let view = a.view();
40+
bench.iter(|| {
41+
view.to_shape((2, 5, 2)).unwrap()
42+
});
43+
}
44+
45+
#[bench]
46+
fn to_shape3_1(bench: &mut Bencher) {
47+
let a = Array::<f32, _>::zeros((3, 4, 5));
48+
let view = a.view();
49+
bench.iter(|| {
50+
view.to_shape(3 * 4 * 5).unwrap()
51+
});
52+
}
53+
54+
#[bench]
55+
fn to_shape3_2_order(bench: &mut Bencher) {
56+
let a = Array::<f32, _>::zeros((3, 4, 5));
57+
let view = a.view();
58+
bench.iter(|| {
59+
view.to_shape((12, 5)).unwrap()
60+
});
61+
}
62+
63+
#[bench]
64+
fn to_shape3_2_outoforder(bench: &mut Bencher) {
65+
let a = Array::<f32, _>::zeros((3, 4, 5));
66+
let view = a.view();
67+
bench.iter(|| {
68+
view.to_shape((4, 15)).unwrap()
69+
});
70+
}
71+
72+
#[bench]
73+
fn to_shape3_3c(bench: &mut Bencher) {
74+
let a = Array::<f32, _>::zeros((3, 4, 5));
75+
let view = a.view();
76+
bench.iter(|| {
77+
view.to_shape((3, 4, 5)).unwrap()
78+
});
79+
}
80+
81+
#[bench]
82+
fn to_shape3_3f(bench: &mut Bencher) {
83+
let a = Array::<f32, _>::zeros((3, 4, 5).f());
84+
let view = a.view();
85+
bench.iter(|| {
86+
view.to_shape(((3, 4, 5), Order::F)).unwrap()
87+
});
88+
}
89+
90+
#[bench]
91+
fn to_shape3_4c(bench: &mut Bencher) {
92+
let a = Array::<f32, _>::zeros((3, 4, 5));
93+
let view = a.view();
94+
bench.iter(|| {
95+
view.to_shape(((2, 3, 2, 5), Order::C)).unwrap()
96+
});
97+
}
98+
99+
#[bench]
100+
fn to_shape3_4f(bench: &mut Bencher) {
101+
let a = Array::<f32, _>::zeros((3, 4, 5).f());
102+
let view = a.view();
103+
bench.iter(|| {
104+
view.to_shape(((2, 3, 2, 5), Order::F)).unwrap()
105+
});
106+
}

0 commit comments

Comments
 (0)