-
Notifications
You must be signed in to change notification settings - Fork 58
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Simply show
implementations and make them round-trippable
#732
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #732 +/- ##
==========================================
+ Coverage 93.50% 96.96% +3.46%
==========================================
Files 53 53
Lines 2710 2703 -7
==========================================
+ Hits 2534 2621 +87
+ Misses 176 82 -94 ☔ View full report in Codecov by Sentry. |
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
Benchmark suite | Current: be0789a | Previous: 201bcb4 | Ratio |
---|---|---|---|
Dense(2 => 2)/cpu/reverse/ReverseDiff (compiled)/(2, 128) |
3678.25 ns |
3650.5 ns |
1.01 |
Dense(2 => 2)/cpu/reverse/Zygote/(2, 128) |
7163.4 ns |
7147.4 ns |
1.00 |
Dense(2 => 2)/cpu/reverse/Tracker/(2, 128) |
20900 ns |
20859 ns |
1.00 |
Dense(2 => 2)/cpu/reverse/ReverseDiff/(2, 128) |
9896.6 ns |
9686 ns |
1.02 |
Dense(2 => 2)/cpu/reverse/Flux/(2, 128) |
9073 ns |
8918.6 ns |
1.02 |
Dense(2 => 2)/cpu/reverse/SimpleChains/(2, 128) |
4459.625 ns |
4490.875 ns |
0.99 |
Dense(2 => 2)/cpu/reverse/Enzyme/(2, 128) |
1160.5357142857142 ns |
1158.7122302158273 ns |
1.00 |
Dense(2 => 2)/cpu/forward/NamedTuple/(2, 128) |
1127.5098684210525 ns |
1102.9430379746836 ns |
1.02 |
Dense(2 => 2)/cpu/forward/ComponentArray/(2, 128) |
1187.8062015503876 ns |
1185.8778625954199 ns |
1.00 |
Dense(2 => 2)/cpu/forward/Flux/(2, 128) |
1807.7045454545455 ns |
1774.673076923077 ns |
1.02 |
Dense(2 => 2)/cpu/forward/SimpleChains/(2, 128) |
187.53641456582633 ns |
180.36530324400564 ns |
1.04 |
Dense(20 => 20)/cpu/reverse/ReverseDiff (compiled)/(20, 128) |
17252 ns |
17382 ns |
0.99 |
Dense(20 => 20)/cpu/reverse/Zygote/(20, 128) |
17022 ns |
16822 ns |
1.01 |
Dense(20 => 20)/cpu/reverse/Tracker/(20, 128) |
39018.5 ns |
38993 ns |
1.00 |
Dense(20 => 20)/cpu/reverse/ReverseDiff/(20, 128) |
29225 ns |
29124.5 ns |
1.00 |
Dense(20 => 20)/cpu/reverse/Flux/(20, 128) |
21521 ns |
19917 ns |
1.08 |
Dense(20 => 20)/cpu/reverse/SimpleChains/(20, 128) |
17964 ns |
17302 ns |
1.04 |
Dense(20 => 20)/cpu/reverse/Enzyme/(20, 128) |
4321 ns |
4309.571428571428 ns |
1.00 |
Dense(20 => 20)/cpu/forward/NamedTuple/(20, 128) |
3877.25 ns |
3871 ns |
1.00 |
Dense(20 => 20)/cpu/forward/ComponentArray/(20, 128) |
3948.625 ns |
3921 ns |
1.01 |
Dense(20 => 20)/cpu/forward/Flux/(20, 128) |
4896.285714285715 ns |
4910.571428571428 ns |
1.00 |
Dense(20 => 20)/cpu/forward/SimpleChains/(20, 128) |
1678.1 ns |
1665.1 ns |
1.01 |
Conv((3, 3), 3 => 3)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 3, 128) |
49951939.5 ns |
47338691 ns |
1.06 |
Conv((3, 3), 3 => 3)/cpu/reverse/Zygote/(64, 64, 3, 128) |
57583577 ns |
57480412.5 ns |
1.00 |
Conv((3, 3), 3 => 3)/cpu/reverse/Tracker/(64, 64, 3, 128) |
111810731 ns |
97654644 ns |
1.14 |
Conv((3, 3), 3 => 3)/cpu/reverse/ReverseDiff/(64, 64, 3, 128) |
106912699 ns |
103075718 ns |
1.04 |
Conv((3, 3), 3 => 3)/cpu/reverse/Flux/(64, 64, 3, 128) |
79250217 ns |
107736609.5 ns |
0.74 |
Conv((3, 3), 3 => 3)/cpu/reverse/SimpleChains/(64, 64, 3, 128) |
11999695.5 ns |
11991081 ns |
1.00 |
Conv((3, 3), 3 => 3)/cpu/reverse/Enzyme/(64, 64, 3, 128) |
17900841.5 ns |
17673126 ns |
1.01 |
Conv((3, 3), 3 => 3)/cpu/forward/NamedTuple/(64, 64, 3, 128) |
7024803.5 ns |
6987664.5 ns |
1.01 |
Conv((3, 3), 3 => 3)/cpu/forward/ComponentArray/(64, 64, 3, 128) |
6992818 ns |
6942149 ns |
1.01 |
Conv((3, 3), 3 => 3)/cpu/forward/Flux/(64, 64, 3, 128) |
18390225 ns |
18407953 ns |
1.00 |
Conv((3, 3), 3 => 3)/cpu/forward/SimpleChains/(64, 64, 3, 128) |
6395289 ns |
6390084 ns |
1.00 |
vgg16/cpu/reverse/Zygote/(32, 32, 3, 16) |
743568242 ns |
736390019 ns |
1.01 |
vgg16/cpu/reverse/Zygote/(32, 32, 3, 64) |
2544218411 ns |
2556232776 ns |
1.00 |
vgg16/cpu/reverse/Zygote/(32, 32, 3, 2) |
148701766 ns |
138860759 ns |
1.07 |
vgg16/cpu/reverse/Tracker/(32, 32, 3, 16) |
934092292 ns |
912518521.5 ns |
1.02 |
vgg16/cpu/reverse/Tracker/(32, 32, 3, 64) |
3093842125 ns |
3428397846 ns |
0.90 |
vgg16/cpu/reverse/Tracker/(32, 32, 3, 2) |
241855773.5 ns |
224148545.5 ns |
1.08 |
vgg16/cpu/reverse/Flux/(32, 32, 3, 16) |
741501229 ns |
823473223 ns |
0.90 |
vgg16/cpu/reverse/Flux/(32, 32, 3, 64) |
2839856661 ns |
2885894804 ns |
0.98 |
vgg16/cpu/reverse/Flux/(32, 32, 3, 2) |
133620530.5 ns |
134372913 ns |
0.99 |
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 16) |
174325867.5 ns |
173583355 ns |
1.00 |
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 64) |
645070040 ns |
646634685.5 ns |
1.00 |
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 2) |
34942654 ns |
45528041.5 ns |
0.77 |
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 16) |
164557313 ns |
177533604.5 ns |
0.93 |
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 64) |
631864075 ns |
641394326 ns |
0.99 |
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 2) |
30377881 ns |
30391531 ns |
1.00 |
vgg16/cpu/forward/Flux/(32, 32, 3, 16) |
228101085 ns |
214503540.5 ns |
1.06 |
vgg16/cpu/forward/Flux/(32, 32, 3, 64) |
821064376 ns |
834317970 ns |
0.98 |
vgg16/cpu/forward/Flux/(32, 32, 3, 2) |
37649999 ns |
40455986 ns |
0.93 |
Conv((3, 3), 64 => 64)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 64, 128) |
1242598936 ns |
1297428518.5 ns |
0.96 |
Conv((3, 3), 64 => 64)/cpu/reverse/Zygote/(64, 64, 64, 128) |
1878179474 ns |
1868119375 ns |
1.01 |
Conv((3, 3), 64 => 64)/cpu/reverse/Tracker/(64, 64, 64, 128) |
2487245906 ns |
2546633861 ns |
0.98 |
Conv((3, 3), 64 => 64)/cpu/reverse/ReverseDiff/(64, 64, 64, 128) |
2622715854 ns |
2710790492 ns |
0.97 |
Conv((3, 3), 64 => 64)/cpu/reverse/Flux/(64, 64, 64, 128) |
1874913441.5 ns |
1943175994.5 ns |
0.96 |
Conv((3, 3), 64 => 64)/cpu/reverse/Enzyme/(64, 64, 64, 128) |
560256314 ns |
563832707 ns |
0.99 |
Conv((3, 3), 64 => 64)/cpu/forward/NamedTuple/(64, 64, 64, 128) |
320759164 ns |
320454436 ns |
1.00 |
Conv((3, 3), 64 => 64)/cpu/forward/ComponentArray/(64, 64, 64, 128) |
320217364 ns |
320358731 ns |
1.00 |
Conv((3, 3), 64 => 64)/cpu/forward/Flux/(64, 64, 64, 128) |
371692956.5 ns |
425257696 ns |
0.87 |
Conv((3, 3), 1 => 1)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 1, 128) |
11748330 ns |
11931980.5 ns |
0.98 |
Conv((3, 3), 1 => 1)/cpu/reverse/Zygote/(64, 64, 1, 128) |
17856926 ns |
17784808 ns |
1.00 |
Conv((3, 3), 1 => 1)/cpu/reverse/Tracker/(64, 64, 1, 128) |
19023639.5 ns |
19142318 ns |
0.99 |
Conv((3, 3), 1 => 1)/cpu/reverse/ReverseDiff/(64, 64, 1, 128) |
23828287 ns |
23824772 ns |
1.00 |
Conv((3, 3), 1 => 1)/cpu/reverse/Flux/(64, 64, 1, 128) |
17919800.5 ns |
17879555 ns |
1.00 |
Conv((3, 3), 1 => 1)/cpu/reverse/SimpleChains/(64, 64, 1, 128) |
1168245.5 ns |
1155146.5 ns |
1.01 |
Conv((3, 3), 1 => 1)/cpu/reverse/Enzyme/(64, 64, 1, 128) |
5860466 ns |
5810938 ns |
1.01 |
Conv((3, 3), 1 => 1)/cpu/forward/NamedTuple/(64, 64, 1, 128) |
2055423 ns |
2041686 ns |
1.01 |
Conv((3, 3), 1 => 1)/cpu/forward/ComponentArray/(64, 64, 1, 128) |
2037659 ns |
2027835 ns |
1.00 |
Conv((3, 3), 1 => 1)/cpu/forward/Flux/(64, 64, 1, 128) |
2075799 ns |
2070705 ns |
1.00 |
Conv((3, 3), 1 => 1)/cpu/forward/SimpleChains/(64, 64, 1, 128) |
198863 ns |
200253.5 ns |
0.99 |
Dense(200 => 200)/cpu/reverse/ReverseDiff (compiled)/(200, 128) |
293009 ns |
292977 ns |
1.00 |
Dense(200 => 200)/cpu/reverse/Zygote/(200, 128) |
266358.5 ns |
266878 ns |
1.00 |
Dense(200 => 200)/cpu/reverse/Tracker/(200, 128) |
367089 ns |
368157 ns |
1.00 |
Dense(200 => 200)/cpu/reverse/ReverseDiff/(200, 128) |
410439 ns |
410711.5 ns |
1.00 |
Dense(200 => 200)/cpu/reverse/Flux/(200, 128) |
275085 ns |
275168.5 ns |
1.00 |
Dense(200 => 200)/cpu/reverse/SimpleChains/(200, 128) |
407945 ns |
408492 ns |
1.00 |
Dense(200 => 200)/cpu/reverse/Enzyme/(200, 128) |
83547 ns |
83546 ns |
1.00 |
Dense(200 => 200)/cpu/forward/NamedTuple/(200, 128) |
81673.5 ns |
81662 ns |
1.00 |
Dense(200 => 200)/cpu/forward/ComponentArray/(200, 128) |
82003 ns |
82484 ns |
0.99 |
Dense(200 => 200)/cpu/forward/Flux/(200, 128) |
86753 ns |
86782 ns |
1.00 |
Dense(200 => 200)/cpu/forward/SimpleChains/(200, 128) |
104516 ns |
104606 ns |
1.00 |
Conv((3, 3), 16 => 16)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 16, 128) |
205899798 ns |
208421898 ns |
0.99 |
Conv((3, 3), 16 => 16)/cpu/reverse/Zygote/(64, 64, 16, 128) |
324447007.5 ns |
328357299 ns |
0.99 |
Conv((3, 3), 16 => 16)/cpu/reverse/Tracker/(64, 64, 16, 128) |
430307245 ns |
438087101 ns |
0.98 |
Conv((3, 3), 16 => 16)/cpu/reverse/ReverseDiff/(64, 64, 16, 128) |
491376043 ns |
482028613 ns |
1.02 |
Conv((3, 3), 16 => 16)/cpu/reverse/Flux/(64, 64, 16, 128) |
430672679 ns |
420466128.5 ns |
1.02 |
Conv((3, 3), 16 => 16)/cpu/reverse/SimpleChains/(64, 64, 16, 128) |
331235688.5 ns |
331561664 ns |
1.00 |
Conv((3, 3), 16 => 16)/cpu/reverse/Enzyme/(64, 64, 16, 128) |
102753540.5 ns |
101008421.5 ns |
1.02 |
Conv((3, 3), 16 => 16)/cpu/forward/NamedTuple/(64, 64, 16, 128) |
44276074 ns |
44201764 ns |
1.00 |
Conv((3, 3), 16 => 16)/cpu/forward/ComponentArray/(64, 64, 16, 128) |
43963100.5 ns |
43850924 ns |
1.00 |
Conv((3, 3), 16 => 16)/cpu/forward/Flux/(64, 64, 16, 128) |
58204111.5 ns |
70267104.5 ns |
0.83 |
Conv((3, 3), 16 => 16)/cpu/forward/SimpleChains/(64, 64, 16, 128) |
28721486 ns |
28451329 ns |
1.01 |
Dense(2000 => 2000)/cpu/reverse/ReverseDiff (compiled)/(2000, 128) |
19374408 ns |
19220147 ns |
1.01 |
Dense(2000 => 2000)/cpu/reverse/Zygote/(2000, 128) |
19537624 ns |
19563388 ns |
1.00 |
Dense(2000 => 2000)/cpu/reverse/Tracker/(2000, 128) |
23376266 ns |
23424325 ns |
1.00 |
Dense(2000 => 2000)/cpu/reverse/ReverseDiff/(2000, 128) |
24206588 ns |
24284320.5 ns |
1.00 |
Dense(2000 => 2000)/cpu/reverse/Flux/(2000, 128) |
19635880 ns |
19678588 ns |
1.00 |
Dense(2000 => 2000)/cpu/reverse/Enzyme/(2000, 128) |
6508811 ns |
6539787 ns |
1.00 |
Dense(2000 => 2000)/cpu/forward/NamedTuple/(2000, 128) |
6526214 ns |
6544056 ns |
1.00 |
Dense(2000 => 2000)/cpu/forward/ComponentArray/(2000, 128) |
6501532.5 ns |
6516054 ns |
1.00 |
Dense(2000 => 2000)/cpu/forward/Flux/(2000, 128) |
6498952.5 ns |
6507146.5 ns |
1.00 |
This comment was automatically generated by workflow using github-action-benchmark.
72f5a69
to
5e4c8eb
Compare
Also Fixes #730