diff options
author | Tom Smeding <tom@tomsmeding.com> | 2025-02-24 22:10:47 +0100 |
---|---|---|
committer | Tom Smeding <tom@tomsmeding.com> | 2025-02-24 22:11:24 +0100 |
commit | 3631b758acfb2585809fdb0755e1a8e7afe3b9b7 (patch) | |
tree | cba5d6b110e3b7679d7558ad30e7454fc6716616 /bench | |
parent | cbb0dd08449cddd141145a2d2f280e3457279b47 (diff) |
ad:Numeric.AD.Double / ad-dual:Numeric.ADDual.Array.Internal
Prelude> 1.129e-3 / 41.89e-6 -- neural-100
26.951539746956314
Prelude> 34.67e-3 / 156.9e-6 -- neural-180
220.9687699171447
Prelude> 79.03e-3 / 178.6e-6 -- neural-500
442.4972004479283
Prelude> 365.3e-3 / 665.5e-6 -- neural-2000
548.9105935386928
Diffstat (limited to 'bench')
-rw-r--r-- | bench/Main.hs | 15 |
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 |