Skip to content

Commit 2ea01de

Browse files
committed
TEST: Layout benchmarks for the i32 kernel too
Results shows the same information we know from packing from the other implementations (the packing is all shared code and doesn't care about the element. Only element size and kernel size). running 8 tests test layout_i32_032::ccc ... bench: 6,012 ns/iter (+/- 80) test layout_i32_032::ccf ... bench: 6,010 ns/iter (+/- 68) test layout_i32_032::cfc ... bench: 6,244 ns/iter (+/- 89) test layout_i32_032::cff ... bench: 6,257 ns/iter (+/- 240) test layout_i32_032::fcc ... bench: 5,806 ns/iter (+/- 320) test layout_i32_032::fcf ... bench: 5,767 ns/iter (+/- 2,013) test layout_i32_032::ffc ... bench: 6,005 ns/iter (+/- 187) test layout_i32_032::fff ... bench: 6,031 ns/iter (+/- 187)
1 parent 1664e7c commit 2ea01de

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

benches/benchmarks.rs

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@ extern crate bencher;
1414
benchmark_main!(
1515
mat_mul_f32,
1616
mat_mul_f64,
17+
mat_mul_i32,
1718
layout_f32_032,
1819
layout_f64_032,
19-
mat_mul_i32
20+
layout_i32_032
2021
);
2122

2223
macro_rules! mat_mul {
@@ -113,20 +114,20 @@ macro_rules! gemm_layout {
113114

114115
fn base(bench: &mut Bencher, al: Layout, bl: Layout, cl: Layout)
115116
{
116-
let a = vec![0.; $m * $m];
117-
let b = vec![0.; $m * $m];
118-
let mut c = vec![0.; $m * $m];
117+
let a = vec![0 as _; $m * $m];
118+
let b = vec![0 as _; $m * $m];
119+
let mut c = vec![0 as _; $m * $m];
119120
let (rsa, csa) = al.strides($m, 1);
120121
let (rsb, csb) = bl.strides($m, 1);
121122
let (rsc, csc) = cl.strides($m, 1);
122123
bench.iter(|| {
123124
unsafe {
124125
$gemm(
125126
$m, $m, $m,
126-
1.,
127+
1 as _,
127128
a.as_ptr(), rsa, csa,
128129
b.as_ptr(), rsb, csb,
129-
0.,
130+
0 as _,
130131
c.as_mut_ptr(), rsc, csc,
131132
)
132133
}
@@ -164,6 +165,10 @@ gemm_layout!{layout_f64_032, dgemm,
164165
(m032, 32)
165166
}
166167

168+
gemm_layout!{layout_i32_032, igemm,
169+
(m032, 32)
170+
}
171+
167172

168173
use std::ops::{Add, Mul};
169174

0 commit comments

Comments
 (0)