@@ -31,13 +31,13 @@ bgroup1000 = envProd 1000 $ \args -> bgroup "1000" $ benchProdShort args
31
31
32
32
bgroup1e4 = envProd 1e4 $ \ args -> bgroup " 1e4" $ benchProdShort args
33
33
34
- bgroup1e5 = envProd 1e5 $ \ args -> bgroup " 1e5" $ benchProdShort args
34
+ bgroup1e5 = envProd 1e5 $ \ args -> bgroup " 1e5" $ benchProdShortest args
35
35
36
- bgroup1e6 = envProd 1e6 $ \ args -> bgroup " 1e6" $ benchProdShort args
36
+ bgroup1e6 = envProd 1e6 $ \ args -> bgroup " 1e6" $ benchProdShortest args
37
37
38
- bgroup1e7 = envProd 1e7 $ \ args -> bgroup " 1e7" $ benchProdShort args
38
+ bgroup1e7 = envProd 1e7 $ \ args -> bgroup " 1e7" $ benchProdShortest args
39
39
40
- bgroup5e7 = envProd 5e7 $ \ args -> bgroup " 5e7" $ benchProdShort args
40
+ bgroup5e7 = envProd 5e7 $ \ args -> bgroup " 5e7" $ benchProdShortest args
41
41
-- 5e7 == 5 * 10^7 == 0.5 * 10^8 == 0.5e8
42
42
43
43
envProd :: r ~ Double
@@ -76,15 +76,15 @@ benchProd ~(snat, list, l, lt, t) = case snat of
76
76
SNat ->
77
77
[ bench " cgrad s MapAccum" $ nf (crevSMapAccum snat) t
78
78
, bench " grad s MapAccum" $ nf (revSMapAccum snat) t
79
- , bench " cgrad scalar MapAccum" $ nf (crevScalarMapAccum snat) t
80
- , bench " grad scalar MapAccum" $ nf (revScalarMapAccum snat) t
81
- , bench " cgrad scalar list" $ nf crevScalarList list
82
- , bench " grad scalar list" $ nf revScalarList list
83
- , bench " cgrad scalar L" $ nf (crevScalarL snat) l
84
- , bench " grad scalar L" $ nf (revScalarL snat) l
85
- , bench " cgrad scalar R" $ nf (crevScalarR snat) l
86
- , bench " grad scalar R" $ nf (revScalarR snat) l
87
- , bench " cgrad scalar NotShared" $ nf (crevScalarNotShared snat) l
79
+ , bench " cgrad k MapAccum" $ nf (crevScalarMapAccum snat) t
80
+ , bench " grad k MapAccum" $ nf (revScalarMapAccum snat) t
81
+ , bench " cgrad k list" $ nf crevScalarList list
82
+ , bench " grad k list" $ nf revScalarList list
83
+ , bench " cgrad k L" $ nf (crevScalarL snat) l
84
+ , bench " grad k L" $ nf (revScalarL snat) l
85
+ , bench " cgrad k R" $ nf (crevScalarR snat) l
86
+ , bench " grad k R" $ nf (revScalarR snat) l
87
+ , bench " cgrad k NotShared" $ nf (crevScalarNotShared snat) l
88
88
, bench " cgrad s L" $ nf (crevSL snat) lt
89
89
, bench " grad s L" $ nf (revSL snat) lt
90
90
, bench " cgrad s R" $ nf (crevSR snat) lt
@@ -104,15 +104,43 @@ benchProdShort ~(snat, list, l, lt, t) = case snat of
104
104
SNat ->
105
105
-- [ bench "cgrad s MapAccum" $ nf (crevSMapAccum snat) t
106
106
-- , bench "grad s MapAccum" $ nf (revSMapAccum snat) t
107
- [ bench " cgrad scalar MapAccum" $ nf (crevScalarMapAccum snat) t
108
- , bench " grad scalar MapAccum" $ nf (revScalarMapAccum snat) t
109
- -- , bench "cgrad scalar list" $ nf crevScalarList list
110
- -- , bench "grad scalar list" $ nf revScalarList list
111
- , bench " cgrad scalar L" $ nf (crevScalarL snat) l
112
- -- , bench "grad scalar L" $ nf (revScalarL snat) l
113
- , bench " cgrad scalar R" $ nf (crevScalarR snat) l
114
- -- , bench "grad scalar R" $ nf (revScalarR snat) l
115
- , bench " cgrad scalar NotShared" $ nf (crevScalarNotShared snat) l
107
+ [ bench " cgrad k MapAccum" $ nf (crevScalarMapAccum snat) t
108
+ , bench " grad k MapAccum" $ nf (revScalarMapAccum snat) t
109
+ -- , bench "cgrad k list" $ nf crevScalarList list
110
+ -- , bench "grad k list" $ nf revScalarList list
111
+ , bench " cgrad k L" $ nf (crevScalarL snat) l
112
+ , bench " grad k L" $ nf (revScalarL snat) l
113
+ -- , bench "cgrad k R" $ nf (crevScalarR snat) l
114
+ -- , bench "grad k R" $ nf (revScalarR snat) l
115
+ , bench " cgrad k NotShared" $ nf (crevScalarNotShared snat) l
116
+ -- , bench "cgrad s L" $ nf (crevSL snat) lt
117
+ -- , bench "grad s L" $ nf (revSL snat) lt
118
+ -- , bench "cgrad s R" $ nf (crevSR snat) lt
119
+ -- , bench "grad s R" $ nf (revSR snat) lt
120
+ -- , bench "cgrad s NotShared" $ nf (crevSNotShared snat) lt
121
+ ]
122
+
123
+ benchProdShortest
124
+ :: r ~ Double
125
+ => ( SNat n
126
+ , [Concrete (TKScalar r )]
127
+ , ListR n (Concrete (TKScalar r ))
128
+ , ListR n (Concrete (TKS '[] r ))
129
+ , Concrete (TKS '[n ] r ) )
130
+ -> [Benchmark ]
131
+ benchProdShortest ~ (snat, list, l, lt, t) = case snat of
132
+ SNat ->
133
+ -- [ bench "cgrad s MapAccum" $ nf (crevSMapAccum snat) t
134
+ -- , bench "grad s MapAccum" $ nf (revSMapAccum snat) t
135
+ [ bench " cgrad k MapAccum" $ nf (crevScalarMapAccum snat) t
136
+ , bench " grad k MapAccum" $ nf (revScalarMapAccum snat) t
137
+ -- , bench "cgrad k list" $ nf crevScalarList list
138
+ -- , bench "grad k list" $ nf revScalarList list
139
+ , bench " cgrad k L" $ nf (crevScalarL snat) l
140
+ -- , bench "grad k L" $ nf (revScalarL snat) l
141
+ -- , bench "cgrad k R" $ nf (crevScalarR snat) l
142
+ -- , bench "grad k R" $ nf (revScalarR snat) l
143
+ , bench " cgrad k NotShared" $ nf (crevScalarNotShared snat) l
116
144
-- , bench "cgrad s L" $ nf (crevSL snat) lt
117
145
-- , bench "grad s L" $ nf (revSL snat) lt
118
146
-- , bench "cgrad s R" $ nf (crevSR snat) lt
0 commit comments