From c6ac2b69e15ff09622ac2bbc40ede8331866a559 Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Mon, 10 Jun 2024 16:22:11 +0200 Subject: Manual vectorisation of dot product for floating points --- bench/Main.hs | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'bench') diff --git a/bench/Main.hs b/bench/Main.hs index eb3c6d7..cc4e11f 100644 --- a/bench/Main.hs +++ b/bench/Main.hs @@ -65,6 +65,14 @@ main = defaultMain let n = 1_000_000 in nf (\a -> runScalar (rsumOuter1 a)) (riota @Double n) + ,bench "dotprod Float [1e6]" $ + let n = 1_000_000 + in nf (\(a, b) -> rdot a b) + (riota @Float n, riota @Float n) + ,bench "dotprod Float [1e6] stride 1; -1" $ + let n = 1_000_000 + in nf (\(a, b) -> rdot a b) + (riota @Float n, rrev1 (riota @Float n)) ,bench "dotprod Double [1e6]" $ let n = 1_000_000 in nf (\(a, b) -> rdot a b) @@ -103,6 +111,11 @@ main = defaultMain let n = 1_000_000 in nf (\a -> LA.sumElements a) (LA.linspace @Double n (0.0, fromIntegral (n - 1))) + ,bench "dotprod Float [1e6]" $ + let n = 1_000_000 + in nf (\(a, b) -> a LA.<.> b) + (LA.linspace @Double n (0.0, fromIntegral (n - 1)) + ,LA.linspace @Double n (fromIntegral (n - 1), 0.0)) ,bench "dotprod Double [1e6]" $ let n = 1_000_000 in nf (\(a, b) -> a LA.<.> b) -- cgit v1.2.3-70-g09d2