-
Notifications
You must be signed in to change notification settings - Fork 59
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: don't reuse pullback for safety
- Loading branch information
Showing
2 changed files
with
18 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
d99d823
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Benchmark Results
Dense(2 => 2)/cpu/reverse/ReverseDiff (compiled)/(2, 128)
3650.625
ns3669.375
ns0.99
Dense(2 => 2)/cpu/reverse/Zygote/(2, 128)
7099.833333333333
ns7200
ns0.99
Dense(2 => 2)/cpu/reverse/Tracker/(2, 128)
20969
ns21054.5
ns1.00
Dense(2 => 2)/cpu/reverse/ReverseDiff/(2, 128)
9688
ns9781.3
ns0.99
Dense(2 => 2)/cpu/reverse/Flux/(2, 128)
8941.75
ns8908.6
ns1.00
Dense(2 => 2)/cpu/reverse/SimpleChains/(2, 128)
4464.625
ns4449.5
ns1.00
Dense(2 => 2)/cpu/reverse/Enzyme/(2, 128)
1153.062937062937
ns1157.9930555555557
ns1.00
Dense(2 => 2)/cpu/forward/NamedTuple/(2, 128)
1104.0858895705521
ns1171.8985507246377
ns0.94
Dense(2 => 2)/cpu/forward/ComponentArray/(2, 128)
1188.625
ns1185.8125
ns1.00
Dense(2 => 2)/cpu/forward/Flux/(2, 128)
1766.051724137931
ns1791.6440677966102
ns0.99
Dense(2 => 2)/cpu/forward/SimpleChains/(2, 128)
178.99435825105783
ns180.02920723226703
ns0.99
Dense(20 => 20)/cpu/reverse/ReverseDiff (compiled)/(20, 128)
17262
ns17283
ns1.00
Dense(20 => 20)/cpu/reverse/Zygote/(20, 128)
16691
ns16841
ns0.99
Dense(20 => 20)/cpu/reverse/Tracker/(20, 128)
36799
ns37390
ns0.98
Dense(20 => 20)/cpu/reverse/ReverseDiff/(20, 128)
29359.5
ns28994
ns1.01
Dense(20 => 20)/cpu/reverse/Flux/(20, 128)
19826
ns20027
ns0.99
Dense(20 => 20)/cpu/reverse/SimpleChains/(20, 128)
17141.5
ns17182
ns1.00
Dense(20 => 20)/cpu/reverse/Enzyme/(20, 128)
4335.285714285715
ns4328
ns1.00
Dense(20 => 20)/cpu/forward/NamedTuple/(20, 128)
3860.9375
ns3870.875
ns1.00
Dense(20 => 20)/cpu/forward/ComponentArray/(20, 128)
3921
ns3954.875
ns0.99
Dense(20 => 20)/cpu/forward/Flux/(20, 128)
4937.714285714285
ns4847.642857142857
ns1.02
Dense(20 => 20)/cpu/forward/SimpleChains/(20, 128)
1662.1
ns1658.1
ns1.00
Conv((3, 3), 3 => 3)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 3, 128)
38380312
ns40009085
ns0.96
Conv((3, 3), 3 => 3)/cpu/reverse/Zygote/(64, 64, 3, 128)
58080861
ns58044866
ns1.00
Conv((3, 3), 3 => 3)/cpu/reverse/Tracker/(64, 64, 3, 128)
75706671
ns81652371
ns0.93
Conv((3, 3), 3 => 3)/cpu/reverse/ReverseDiff/(64, 64, 3, 128)
88430576
ns84691568
ns1.04
Conv((3, 3), 3 => 3)/cpu/reverse/Flux/(64, 64, 3, 128)
72678861
ns75567907
ns0.96
Conv((3, 3), 3 => 3)/cpu/reverse/SimpleChains/(64, 64, 3, 128)
11629181
ns11702113
ns0.99
Conv((3, 3), 3 => 3)/cpu/reverse/Enzyme/(64, 64, 3, 128)
7074423
ns6962047.5
ns1.02
Conv((3, 3), 3 => 3)/cpu/forward/NamedTuple/(64, 64, 3, 128)
7237640
ns7131554
ns1.01
Conv((3, 3), 3 => 3)/cpu/forward/ComponentArray/(64, 64, 3, 128)
7031304
ns7068401
ns0.99
Conv((3, 3), 3 => 3)/cpu/forward/Flux/(64, 64, 3, 128)
9924675.5
ns12275161.5
ns0.81
Conv((3, 3), 3 => 3)/cpu/forward/SimpleChains/(64, 64, 3, 128)
6376916
ns6382810.5
ns1.00
vgg16/cpu/reverse/Zygote/(32, 32, 3, 16)
685503650
ns714086754
ns0.96
vgg16/cpu/reverse/Zygote/(32, 32, 3, 64)
2532175381
ns2579434858
ns0.98
vgg16/cpu/reverse/Zygote/(32, 32, 3, 2)
137312502
ns148383143
ns0.93
vgg16/cpu/reverse/Tracker/(32, 32, 3, 16)
791018541
ns891741497
ns0.89
vgg16/cpu/reverse/Tracker/(32, 32, 3, 64)
3118945691
ns3088439700
ns1.01
vgg16/cpu/reverse/Tracker/(32, 32, 3, 2)
187532696
ns212058426
ns0.88
vgg16/cpu/reverse/Flux/(32, 32, 3, 16)
653534251
ns653749242
ns1.00
vgg16/cpu/reverse/Flux/(32, 32, 3, 64)
2584662949
ns2642538349
ns0.98
vgg16/cpu/reverse/Flux/(32, 32, 3, 2)
124578751.5
ns128699402
ns0.97
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 16)
173451500
ns175013829.5
ns0.99
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 64)
669889358.5
ns654368735
ns1.02
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 2)
45443081
ns45671588
ns0.99
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 16)
164233714
ns165691299
ns0.99
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 64)
641495324
ns644989507
ns0.99
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 2)
29662692.5
ns45474454
ns0.65
vgg16/cpu/forward/Flux/(32, 32, 3, 16)
209510938
ns227248905
ns0.92
vgg16/cpu/forward/Flux/(32, 32, 3, 64)
732300671.5
ns775116259
ns0.94
vgg16/cpu/forward/Flux/(32, 32, 3, 2)
35133655
ns40575003.5
ns0.87
Conv((3, 3), 64 => 64)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 64, 128)
1229955419
ns1266387049.5
ns0.97
Conv((3, 3), 64 => 64)/cpu/reverse/Zygote/(64, 64, 64, 128)
1870868488
ns1873245890
ns1.00
Conv((3, 3), 64 => 64)/cpu/reverse/Tracker/(64, 64, 64, 128)
2357631843
ns2337050962
ns1.01
Conv((3, 3), 64 => 64)/cpu/reverse/ReverseDiff/(64, 64, 64, 128)
2548939820
ns2598176961
ns0.98
Conv((3, 3), 64 => 64)/cpu/reverse/Flux/(64, 64, 64, 128)
1854903249
ns1906864622.5
ns0.97
Conv((3, 3), 64 => 64)/cpu/reverse/Enzyme/(64, 64, 64, 128)
324822924.5
ns323660356.5
ns1.00
Conv((3, 3), 64 => 64)/cpu/forward/NamedTuple/(64, 64, 64, 128)
321525303
ns323114250
ns1.00
Conv((3, 3), 64 => 64)/cpu/forward/ComponentArray/(64, 64, 64, 128)
318220641
ns319854782
ns0.99
Conv((3, 3), 64 => 64)/cpu/forward/Flux/(64, 64, 64, 128)
435306909
ns431236413
ns1.01
Conv((3, 3), 1 => 1)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 1, 128)
11851270
ns11856906
ns1.00
Conv((3, 3), 1 => 1)/cpu/reverse/Zygote/(64, 64, 1, 128)
17992689
ns17995791
ns1.00
Conv((3, 3), 1 => 1)/cpu/reverse/Tracker/(64, 64, 1, 128)
19131076
ns19308830
ns0.99
Conv((3, 3), 1 => 1)/cpu/reverse/ReverseDiff/(64, 64, 1, 128)
23860945
ns24002610
ns0.99
Conv((3, 3), 1 => 1)/cpu/reverse/Flux/(64, 64, 1, 128)
18004156
ns18021078
ns1.00
Conv((3, 3), 1 => 1)/cpu/reverse/SimpleChains/(64, 64, 1, 128)
1149174.5
ns1168729
ns0.98
Conv((3, 3), 1 => 1)/cpu/reverse/Enzyme/(64, 64, 1, 128)
2062229
ns2067715
ns1.00
Conv((3, 3), 1 => 1)/cpu/forward/NamedTuple/(64, 64, 1, 128)
2071025
ns2082044
ns0.99
Conv((3, 3), 1 => 1)/cpu/forward/ComponentArray/(64, 64, 1, 128)
2074542
ns2083795
ns1.00
Conv((3, 3), 1 => 1)/cpu/forward/Flux/(64, 64, 1, 128)
2063622
ns2078152
ns0.99
Conv((3, 3), 1 => 1)/cpu/forward/SimpleChains/(64, 64, 1, 128)
195595
ns198179
ns0.99
Dense(200 => 200)/cpu/reverse/ReverseDiff (compiled)/(200, 128)
292706
ns294960
ns0.99
Dense(200 => 200)/cpu/reverse/Zygote/(200, 128)
263472
ns268370
ns0.98
Dense(200 => 200)/cpu/reverse/Tracker/(200, 128)
363559
ns372856
ns0.98
Dense(200 => 200)/cpu/reverse/ReverseDiff/(200, 128)
411138
ns414518.5
ns0.99
Dense(200 => 200)/cpu/reverse/Flux/(200, 128)
272924.5
ns278368
ns0.98
Dense(200 => 200)/cpu/reverse/SimpleChains/(200, 128)
405708
ns410746
ns0.99
Dense(200 => 200)/cpu/reverse/Enzyme/(200, 128)
83085
ns83776
ns0.99
Dense(200 => 200)/cpu/forward/NamedTuple/(200, 128)
80541
ns81953
ns0.98
Dense(200 => 200)/cpu/forward/ComponentArray/(200, 128)
81091
ns83195
ns0.97
Dense(200 => 200)/cpu/forward/Flux/(200, 128)
86131
ns87764
ns0.98
Dense(200 => 200)/cpu/forward/SimpleChains/(200, 128)
104796
ns104685
ns1.00
Conv((3, 3), 16 => 16)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 16, 128)
186741939
ns198244459
ns0.94
Conv((3, 3), 16 => 16)/cpu/reverse/Zygote/(64, 64, 16, 128)
327447810
ns329497937.5
ns0.99
Conv((3, 3), 16 => 16)/cpu/reverse/Tracker/(64, 64, 16, 128)
397249133
ns407311865.5
ns0.98
Conv((3, 3), 16 => 16)/cpu/reverse/ReverseDiff/(64, 64, 16, 128)
484679103
ns452728713
ns1.07
Conv((3, 3), 16 => 16)/cpu/reverse/Flux/(64, 64, 16, 128)
377393182
ns388579645
ns0.97
Conv((3, 3), 16 => 16)/cpu/reverse/SimpleChains/(64, 64, 16, 128)
321862177
ns319868232.5
ns1.01
Conv((3, 3), 16 => 16)/cpu/reverse/Enzyme/(64, 64, 16, 128)
44743313
ns44289039
ns1.01
Conv((3, 3), 16 => 16)/cpu/forward/NamedTuple/(64, 64, 16, 128)
44850549.5
ns44316868
ns1.01
Conv((3, 3), 16 => 16)/cpu/forward/ComponentArray/(64, 64, 16, 128)
43924254.5
ns43960351
ns1.00
Conv((3, 3), 16 => 16)/cpu/forward/Flux/(64, 64, 16, 128)
53418487
ns51507810
ns1.04
Conv((3, 3), 16 => 16)/cpu/forward/SimpleChains/(64, 64, 16, 128)
28061921
ns28435005
ns0.99
Dense(2000 => 2000)/cpu/reverse/ReverseDiff (compiled)/(2000, 128)
19028106.5
ns18968878
ns1.00
Dense(2000 => 2000)/cpu/reverse/Zygote/(2000, 128)
19552218
ns19614768
ns1.00
Dense(2000 => 2000)/cpu/reverse/Tracker/(2000, 128)
23488414
ns23514329
ns1.00
Dense(2000 => 2000)/cpu/reverse/ReverseDiff/(2000, 128)
24184792
ns24219437.5
ns1.00
Dense(2000 => 2000)/cpu/reverse/Flux/(2000, 128)
19687526
ns19657817
ns1.00
Dense(2000 => 2000)/cpu/reverse/Enzyme/(2000, 128)
6493300
ns6533333
ns0.99
Dense(2000 => 2000)/cpu/forward/NamedTuple/(2000, 128)
6514744.5
ns6543909
ns1.00
Dense(2000 => 2000)/cpu/forward/ComponentArray/(2000, 128)
6500552
ns6522365
ns1.00
Dense(2000 => 2000)/cpu/forward/Flux/(2000, 128)
6483934
ns6506154.5
ns1.00
This comment was automatically generated by workflow using github-action-benchmark.