aboutsummaryrefslogtreecommitdiff
path: root/bench/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'bench/Main.hs')
-rw-r--r--bench/Main.hs15
1 files changed, 14 insertions, 1 deletions
diff --git a/bench/Main.hs b/bench/Main.hs
index 1174a3a..cccc686 100644
--- a/bench/Main.hs
+++ b/bench/Main.hs
@@ -11,8 +11,10 @@ import System.Environment (getArgs)
import System.Mem (performGC)
import qualified Numeric.AD as AD
+import qualified Numeric.AD.Double as AD.Double
import qualified Numeric.ADDual as ADD
+import qualified Numeric.ADDual.Array.Internal as ADDA
import Numeric.ADDual.Examples
@@ -29,6 +31,10 @@ mainCriterion = defaultMain
,benchNeural 180 -- rather stably 2 GCs
,benchNeural 500
,benchNeural 2000
+ ,benchNeuralA 100
+ ,benchNeuralA 180 -- rather stably 2 GCs
+ ,benchNeuralA 500
+ ,benchNeuralA 2000
]
where
benchNeural :: Int -> Benchmark
@@ -36,7 +42,14 @@ mainCriterion = defaultMain
env (pure (makeNeuralInput n)) $ \input ->
bgroup ("neural-" ++ show n)
[bench "dual" $ nf (\inp -> ADD.gradient' fneural inp 1.0) input
- ,bench "ad" $ nf (\inp -> AD.grad fneural inp) input]
+ ,bench "ad" $ nf (\inp -> AD.grad fneural inp) input
+ ,bench "ad.Double" $ nf (\inp -> AD.Double.grad fneural inp) input]
+
+ benchNeuralA :: Int -> Benchmark
+ benchNeuralA n =
+ env (pure (makeNeuralInput_A n)) $ \input ->
+ bgroup ("neuralA-" ++ show n)
+ [bench "dual" $ nf (\inp -> ADDA.gradient' fneural_A inp 1.0) input]
mainNeuralGraph :: IO ()
mainNeuralGraph = do