Skip to content

Commit 04a3f0b

Browse files
committed
bench several funcs
1 parent b8bf9ad commit 04a3f0b

File tree

1 file changed

+17
-11
lines changed
  • linalg/activations/benches

1 file changed

+17
-11
lines changed

linalg/activations/benches/vm.rs

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,41 @@
1-
use activations::{definitions, reference};
2-
use criterion::{black_box, criterion_group, criterion_main, BenchmarkId, Criterion, BatchSize};
1+
use activations::{definitions, reference, Program};
2+
use criterion::{black_box, criterion_group, criterion_main, BatchSize, BenchmarkId, Criterion};
33

4-
pub fn criterion_benchmark(c: &mut Criterion) {
5-
let mut group = c.benchmark_group("relu");
4+
fn crit(c: &mut Criterion, name: &str, r: impl Fn(f32) -> f32, prog: &Program) {
5+
let mut group = c.benchmark_group(name);
66
for size in [1i32, 32, 256, 1024, 8192].iter() {
77
group.throughput(criterion::Throughput::Elements(*size as u64));
88
group.bench_with_input(BenchmarkId::new("Reference", size), size, |b, size| {
99
b.iter_batched(
1010
|| vec![1.0f32; *size as usize],
1111
|v| {
1212
for x in v {
13-
reference::relu(black_box(x));
13+
r(black_box(x));
1414
}
1515
},
16-
BatchSize::LargeInput
17-
)
16+
BatchSize::LargeInput,
17+
)
1818
});
19-
let d = definitions::relu();
2019
group.bench_with_input(BenchmarkId::new("VM", size), size, |b, size| {
2120
b.iter_batched(
2221
|| vec![1.0f32; *size as usize],
2322
|v| {
2423
for x in v {
25-
d.compute(black_box(x));
24+
prog.compute(black_box(x));
2625
}
2726
},
28-
BatchSize::LargeInput
29-
)
27+
BatchSize::LargeInput,
28+
)
3029
});
3130
}
3231
}
3332

33+
fn criterion_benchmark(c: &mut Criterion) {
34+
crit(c, "relu", reference::relu, &definitions::relu());
35+
crit(c, "hardswish", reference::hardswish, &definitions::hardswish());
36+
crit(c, "exp2f", reference::exp2f, &definitions::exp2f());
37+
crit(c, "sigmoid", reference::sigmoid, &definitions::sigmoid());
38+
}
39+
3440
criterion_group!(benches, criterion_benchmark);
3541
criterion_main!(benches);

0 commit comments

Comments
 (0)