Skip to content

Commit 87d03ca

Browse files
committed
Add multiply-add benchmark
zip_mut_with doesn't do bad in comparison with axpy
1 parent 1e6614b commit 87d03ca

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed

benches/bench1.rs

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -369,6 +369,41 @@ fn add_2d_f32_blas(bench: &mut test::Bencher)
369369
});
370370
}
371371

372+
#[bench]
373+
fn muladd_2d_f32_regular(bench: &mut test::Bencher)
374+
{
375+
use rblas::Axpy;
376+
use rblas::attribute::Transpose;
377+
use ndarray::blas::AsBlas;
378+
let mut a = OwnedArray::<f32, _>::zeros((64, 64));
379+
let b = OwnedArray::<f32, _>::zeros((64, 64));
380+
let scalar = 3.1415926535;
381+
let len = a.len();
382+
let mut av = a.view_mut().into_shape(len).unwrap();
383+
let bv = b.view().into_shape(len).unwrap();
384+
bench.iter(|| {
385+
av.zip_mut_with(&bv, |a, &b| *a += scalar * b);
386+
});
387+
}
388+
389+
#[cfg(feature = "rblas")]
390+
#[bench]
391+
fn muladd_2d_f32_blas(bench: &mut test::Bencher)
392+
{
393+
use rblas::Axpy;
394+
use rblas::attribute::Transpose;
395+
use ndarray::blas::AsBlas;
396+
let mut a = OwnedArray::<f32, _>::zeros((64, 64));
397+
let b = OwnedArray::<f32, _>::zeros((64, 64));
398+
let scalar = 3.1415926535;
399+
let len = a.len();
400+
let mut av = a.view_mut().into_shape(len).unwrap();
401+
let bv = b.view().into_shape(len).unwrap();
402+
bench.iter(|| {
403+
f32::axpy(&scalar, &bv.bv(), &mut av.bvm());
404+
});
405+
}
406+
372407

373408
#[bench]
374409
fn assign_scalar_2d_large(bench: &mut test::Bencher)

0 commit comments

Comments
 (0)