diff options
Diffstat (limited to 'bench/Main.hs')
-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 |