-
Notifications
You must be signed in to change notification settings - Fork 60
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: nested ad when using direct eval in function (#745)
- Loading branch information
Showing
3 changed files
with
27 additions
and
2 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
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
91e74b1
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)
3685.75
ns3656.875
ns1.01
Dense(2 => 2)/cpu/reverse/Zygote/(2, 128)
7148.5
ns7169.4
ns1.00
Dense(2 => 2)/cpu/reverse/Tracker/(2, 128)
20699
ns21440
ns0.97
Dense(2 => 2)/cpu/reverse/ReverseDiff/(2, 128)
9712.2
ns9774.2
ns0.99
Dense(2 => 2)/cpu/reverse/Flux/(2, 128)
9162.25
ns8976.8
ns1.02
Dense(2 => 2)/cpu/reverse/SimpleChains/(2, 128)
4474.75
ns4495.875
ns1.00
Dense(2 => 2)/cpu/reverse/Enzyme/(2, 128)
1154.0357142857142
ns1164.6814814814816
ns0.99
Dense(2 => 2)/cpu/forward/NamedTuple/(2, 128)
1125.087837837838
ns1121.9607843137255
ns1.00
Dense(2 => 2)/cpu/forward/ComponentArray/(2, 128)
1191.7015503875969
ns1179.7481481481482
ns1.01
Dense(2 => 2)/cpu/forward/Flux/(2, 128)
1810.909090909091
ns1782
ns1.02
Dense(2 => 2)/cpu/forward/SimpleChains/(2, 128)
180.22708039492244
ns180.18014184397163
ns1.00
Dense(20 => 20)/cpu/reverse/ReverseDiff (compiled)/(20, 128)
17383
ns17202
ns1.01
Dense(20 => 20)/cpu/reverse/Zygote/(20, 128)
16872
ns17022
ns0.99
Dense(20 => 20)/cpu/reverse/Tracker/(20, 128)
39133.5
ns37590
ns1.04
Dense(20 => 20)/cpu/reverse/ReverseDiff/(20, 128)
29375
ns29355
ns1.00
Dense(20 => 20)/cpu/reverse/Flux/(20, 128)
20198
ns19917
ns1.01
Dense(20 => 20)/cpu/reverse/SimpleChains/(20, 128)
17558
ns17322
ns1.01
Dense(20 => 20)/cpu/reverse/Enzyme/(20, 128)
4326.571428571428
ns4358.142857142857
ns0.99
Dense(20 => 20)/cpu/forward/NamedTuple/(20, 128)
3836
ns3886
ns0.99
Dense(20 => 20)/cpu/forward/ComponentArray/(20, 128)
3948.625
ns3954.875
ns1.00
Dense(20 => 20)/cpu/forward/Flux/(20, 128)
4900.714285714285
ns4926.285714285715
ns0.99
Dense(20 => 20)/cpu/forward/SimpleChains/(20, 128)
1667.1
ns1658.1
ns1.01
Conv((3, 3), 3 => 3)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 3, 128)
41632816
ns39601602.5
ns1.05
Conv((3, 3), 3 => 3)/cpu/reverse/Zygote/(64, 64, 3, 128)
57885427
ns58038779
ns1.00
Conv((3, 3), 3 => 3)/cpu/reverse/Tracker/(64, 64, 3, 128)
78862627
ns76782216
ns1.03
Conv((3, 3), 3 => 3)/cpu/reverse/ReverseDiff/(64, 64, 3, 128)
84887285
ns87946168
ns0.97
Conv((3, 3), 3 => 3)/cpu/reverse/Flux/(64, 64, 3, 128)
78953692
ns73096588.5
ns1.08
Conv((3, 3), 3 => 3)/cpu/reverse/SimpleChains/(64, 64, 3, 128)
11935490
ns12291038
ns0.97
Conv((3, 3), 3 => 3)/cpu/reverse/Enzyme/(64, 64, 3, 128)
18024088
ns17932809
ns1.01
Conv((3, 3), 3 => 3)/cpu/forward/NamedTuple/(64, 64, 3, 128)
7085466
ns7036947
ns1.01
Conv((3, 3), 3 => 3)/cpu/forward/ComponentArray/(64, 64, 3, 128)
7046918
ns6997914
ns1.01
Conv((3, 3), 3 => 3)/cpu/forward/Flux/(64, 64, 3, 128)
11692974
ns10260008
ns1.14
Conv((3, 3), 3 => 3)/cpu/forward/SimpleChains/(64, 64, 3, 128)
6448135
ns6396686
ns1.01
vgg16/cpu/reverse/Zygote/(32, 32, 3, 16)
741248602
ns745149713
ns0.99
vgg16/cpu/reverse/Zygote/(32, 32, 3, 64)
2567595466
ns2558261206
ns1.00
vgg16/cpu/reverse/Zygote/(32, 32, 3, 2)
147817513.5
ns144356291
ns1.02
vgg16/cpu/reverse/Tracker/(32, 32, 3, 16)
916051072.5
ns790487012
ns1.16
vgg16/cpu/reverse/Tracker/(32, 32, 3, 64)
3341104801
ns2945619535
ns1.13
vgg16/cpu/reverse/Tracker/(32, 32, 3, 2)
218429947.5
ns202413420.5
ns1.08
vgg16/cpu/reverse/Flux/(32, 32, 3, 16)
781576790
ns649182419
ns1.20
vgg16/cpu/reverse/Flux/(32, 32, 3, 64)
2857754077
ns2806215597.5
ns1.02
vgg16/cpu/reverse/Flux/(32, 32, 3, 2)
127855610
ns123733562
ns1.03
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 16)
173040428.5
ns173997599
ns0.99
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 64)
647207749.5
ns647829882.5
ns1.00
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 2)
45528949
ns34347535
ns1.33
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 16)
165399408.5
ns164824067
ns1.00
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 64)
644554490
ns644089958
ns1.00
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 2)
29943548
ns30272455.5
ns0.99
vgg16/cpu/forward/Flux/(32, 32, 3, 16)
213344862
ns185792984
ns1.15
vgg16/cpu/forward/Flux/(32, 32, 3, 64)
769117397.5
ns757568425
ns1.02
vgg16/cpu/forward/Flux/(32, 32, 3, 2)
36771569
ns35418144
ns1.04
Conv((3, 3), 64 => 64)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 64, 128)
1243936673.5
ns1212967132
ns1.03
Conv((3, 3), 64 => 64)/cpu/reverse/Zygote/(64, 64, 64, 128)
1888739190
ns1867896074
ns1.01
Conv((3, 3), 64 => 64)/cpu/reverse/Tracker/(64, 64, 64, 128)
2444598607
ns2380054521
ns1.03
Conv((3, 3), 64 => 64)/cpu/reverse/ReverseDiff/(64, 64, 64, 128)
2567167786
ns2478572600
ns1.04
Conv((3, 3), 64 => 64)/cpu/reverse/Flux/(64, 64, 64, 128)
1870827117
ns1781654425.5
ns1.05
Conv((3, 3), 64 => 64)/cpu/reverse/Enzyme/(64, 64, 64, 128)
566986727
ns566970305
ns1.00
Conv((3, 3), 64 => 64)/cpu/forward/NamedTuple/(64, 64, 64, 128)
329803795
ns325256461
ns1.01
Conv((3, 3), 64 => 64)/cpu/forward/ComponentArray/(64, 64, 64, 128)
327658424
ns322487937
ns1.02
Conv((3, 3), 64 => 64)/cpu/forward/Flux/(64, 64, 64, 128)
461879142.5
ns444562040
ns1.04
Conv((3, 3), 1 => 1)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 1, 128)
12019081
ns12022963.5
ns1.00
Conv((3, 3), 1 => 1)/cpu/reverse/Zygote/(64, 64, 1, 128)
17861815
ns17911867
ns1.00
Conv((3, 3), 1 => 1)/cpu/reverse/Tracker/(64, 64, 1, 128)
19225164.5
ns19149422
ns1.00
Conv((3, 3), 1 => 1)/cpu/reverse/ReverseDiff/(64, 64, 1, 128)
23898726
ns23910762
ns1.00
Conv((3, 3), 1 => 1)/cpu/reverse/Flux/(64, 64, 1, 128)
17926150.5
ns17963694
ns1.00
Conv((3, 3), 1 => 1)/cpu/reverse/SimpleChains/(64, 64, 1, 128)
1170420
ns1203966.5
ns0.97
Conv((3, 3), 1 => 1)/cpu/reverse/Enzyme/(64, 64, 1, 128)
5897461
ns5913573
ns1.00
Conv((3, 3), 1 => 1)/cpu/forward/NamedTuple/(64, 64, 1, 128)
2063880
ns2052656
ns1.01
Conv((3, 3), 1 => 1)/cpu/forward/ComponentArray/(64, 64, 1, 128)
2048965
ns2043938
ns1.00
Conv((3, 3), 1 => 1)/cpu/forward/Flux/(64, 64, 1, 128)
2087170
ns2075728
ns1.01
Conv((3, 3), 1 => 1)/cpu/forward/SimpleChains/(64, 64, 1, 128)
209221
ns212601
ns0.98
Dense(200 => 200)/cpu/reverse/ReverseDiff (compiled)/(200, 128)
295356
ns293096
ns1.01
Dense(200 => 200)/cpu/reverse/Zygote/(200, 128)
268615
ns265103
ns1.01
Dense(200 => 200)/cpu/reverse/Tracker/(200, 128)
368925
ns363096
ns1.02
Dense(200 => 200)/cpu/reverse/ReverseDiff/(200, 128)
410503
ns407228.5
ns1.01
Dense(200 => 200)/cpu/reverse/Flux/(200, 128)
275723
ns274961.5
ns1.00
Dense(200 => 200)/cpu/reverse/SimpleChains/(200, 128)
409250
ns411922
ns0.99
Dense(200 => 200)/cpu/reverse/Enzyme/(200, 128)
83457.5
ns83845
ns1.00
Dense(200 => 200)/cpu/forward/NamedTuple/(200, 128)
81958
ns81722
ns1.00
Dense(200 => 200)/cpu/forward/ComponentArray/(200, 128)
83466
ns81672
ns1.02
Dense(200 => 200)/cpu/forward/Flux/(200, 128)
87272
ns86912
ns1.00
Dense(200 => 200)/cpu/forward/SimpleChains/(200, 128)
104607
ns104544
ns1.00
Conv((3, 3), 16 => 16)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 16, 128)
201257753
ns189224051
ns1.06
Conv((3, 3), 16 => 16)/cpu/reverse/Zygote/(64, 64, 16, 128)
327080609
ns326445067
ns1.00
Conv((3, 3), 16 => 16)/cpu/reverse/Tracker/(64, 64, 16, 128)
425910289.5
ns393391322
ns1.08
Conv((3, 3), 16 => 16)/cpu/reverse/ReverseDiff/(64, 64, 16, 128)
475827775.5
ns458551247
ns1.04
Conv((3, 3), 16 => 16)/cpu/reverse/Flux/(64, 64, 16, 128)
387637862
ns370604679
ns1.05
Conv((3, 3), 16 => 16)/cpu/reverse/SimpleChains/(64, 64, 16, 128)
337223270
ns351721620
ns0.96
Conv((3, 3), 16 => 16)/cpu/reverse/Enzyme/(64, 64, 16, 128)
101307461.5
ns100845783.5
ns1.00
Conv((3, 3), 16 => 16)/cpu/forward/NamedTuple/(64, 64, 16, 128)
43845028.5
ns43799088
ns1.00
Conv((3, 3), 16 => 16)/cpu/forward/ComponentArray/(64, 64, 16, 128)
43893493
ns43801954
ns1.00
Conv((3, 3), 16 => 16)/cpu/forward/Flux/(64, 64, 16, 128)
56749581
ns59997614
ns0.95
Conv((3, 3), 16 => 16)/cpu/forward/SimpleChains/(64, 64, 16, 128)
29066458
ns29600942
ns0.98
Dense(2000 => 2000)/cpu/reverse/ReverseDiff (compiled)/(2000, 128)
19174288
ns19020152
ns1.01
Dense(2000 => 2000)/cpu/reverse/Zygote/(2000, 128)
19690891
ns19737206
ns1.00
Dense(2000 => 2000)/cpu/reverse/Tracker/(2000, 128)
23502746
ns23831711
ns0.99
Dense(2000 => 2000)/cpu/reverse/ReverseDiff/(2000, 128)
24277302
ns24363296
ns1.00
Dense(2000 => 2000)/cpu/reverse/Flux/(2000, 128)
19749481
ns19887751
ns0.99
Dense(2000 => 2000)/cpu/reverse/Enzyme/(2000, 128)
6575644
ns6645866
ns0.99
Dense(2000 => 2000)/cpu/forward/NamedTuple/(2000, 128)
6558677
ns6603096
ns0.99
Dense(2000 => 2000)/cpu/forward/ComponentArray/(2000, 128)
6573677.5
ns6599702
ns1.00
Dense(2000 => 2000)/cpu/forward/Flux/(2000, 128)
6685988
ns6597575
ns1.01
This comment was automatically generated by workflow using github-action-benchmark.