From 8ab3e4a3de76305ef700f628ee9046b1c26355ed Mon Sep 17 00:00:00 2001 From: Tom Smeding Date: Thu, 23 May 2024 09:21:15 +0200 Subject: Bench Num against NumElt --- bench/Main.hs | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/bench/Main.hs b/bench/Main.hs index c1fc150..c4d2879 100644 --- a/bench/Main.hs +++ b/bench/Main.hs @@ -6,11 +6,26 @@ import qualified Numeric.LinearAlgebra as LA import Test.Tasty.Bench import Data.Array.Nested +import Data.Array.Nested.Internal (mliftPrim2, arithPromoteRanked2) main :: IO () main = defaultMain [bgroup "Num" + [bench "sum(+) Double [1e6]" $ + let n = 1_000_000 + in nf (\(a, b) -> runScalar (rsumOuter1 (arithPromoteRanked2 (mliftPrim2 (+)) a b))) + (riota @Double n, riota n) + ,bench "sum(*) Double [1e6]" $ + let n = 1_000_000 + in nf (\(a, b) -> runScalar (rsumOuter1 (arithPromoteRanked2 (mliftPrim2 (*)) a b))) + (riota @Double n, riota n) + ,bench "sum Double [1e6]" $ + let n = 1_000_000 + in nf (\a -> runScalar (rsumOuter1 a)) + (riota @Double n) + ] + ,bgroup "NumElt" [bench "sum(+) Double [1e6]" $ let n = 1_000_000 in nf (\(a, b) -> runScalar (rsumOuter1 (a + b))) @@ -28,16 +43,16 @@ main = defaultMain [bench "sum(+) Double [1e6]" $ let n = 1_000_000 in nf (\(a, b) -> LA.sumElements (a + b)) - (LA.linspace @Double n (fromIntegral 0, fromIntegral (n - 1)) - ,LA.linspace @Double n (fromIntegral 0, fromIntegral (n - 1))) + (LA.linspace @Double n (0.0, fromIntegral (n - 1)) + ,LA.linspace @Double n (0.0, fromIntegral (n - 1))) ,bench "sum(*) Double [1e6]" $ let n = 1_000_000 in nf (\(a, b) -> LA.sumElements (a * b)) - (LA.linspace @Double n (fromIntegral 0, fromIntegral (n - 1)) - ,LA.linspace @Double n (fromIntegral 0, fromIntegral (n - 1))) + (LA.linspace @Double n (0.0, fromIntegral (n - 1)) + ,LA.linspace @Double n (0.0, fromIntegral (n - 1))) ,bench "sum Double [1e6]" $ let n = 1_000_000 in nf (\a -> LA.sumElements a) - (LA.linspace @Double n (fromIntegral 0, fromIntegral (n - 1))) + (LA.linspace @Double n (0.0, fromIntegral (n - 1))) ] ] -- cgit v1.2.3-70-g09d2