Skip to content
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

feat: easy mechanism to set preferences #798

Merged
merged 2 commits into from
Jul 28, 2024
Merged

feat: easy mechanism to set preferences #798

merged 2 commits into from
Jul 28, 2024

Conversation

avik-pal
Copy link
Member

fixes #683

Copy link
Contributor

@github-actions github-actions bot left a 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: 99db0f4 Previous: f3159bd Ratio
Dense(2 => 2)/cpu/reverse/ReverseDiff (compiled)/(2, 128) 3663.125 ns 4340.625 ns 0.84
Dense(2 => 2)/cpu/reverse/Zygote/(2, 128) 7414.583333333333 ns 8991.833333333334 ns 0.82
Dense(2 => 2)/cpu/reverse/Tracker/(2, 128) 21219 ns 25788 ns 0.82
Dense(2 => 2)/cpu/reverse/ReverseDiff/(2, 128) 9866.4 ns 12129.333333333334 ns 0.81
Dense(2 => 2)/cpu/reverse/Flux/(2, 128) 9279.75 ns 10748.1 ns 0.86
Dense(2 => 2)/cpu/reverse/SimpleChains/(2, 128) 4527.125 ns 4954.25 ns 0.91
Dense(2 => 2)/cpu/reverse/Enzyme/(2, 128) 4695 ns 5425.125 ns 0.87
Dense(2 => 2)/cpu/forward/NamedTuple/(2, 128) 1112.7820512820513 ns 1359.1832061068703 ns 0.82
Dense(2 => 2)/cpu/forward/ComponentArray/(2, 128) 1197.078125 ns 1401.2664233576643 ns 0.85
Dense(2 => 2)/cpu/forward/Flux/(2, 128) 1818.6041666666667 ns 2176.5833333333335 ns 0.84
Dense(2 => 2)/cpu/forward/SimpleChains/(2, 128) 180.18207282913164 ns 179.46778711484595 ns 1.00
Dense(20 => 20)/cpu/reverse/ReverseDiff (compiled)/(20, 128) 17232 ns 21761 ns 0.79
Dense(20 => 20)/cpu/reverse/Zygote/(20, 128) 16931 ns 20408 ns 0.83
Dense(20 => 20)/cpu/reverse/Tracker/(20, 128) 37259 ns 42780 ns 0.87
Dense(20 => 20)/cpu/reverse/ReverseDiff/(20, 128) 28172 ns 32301 ns 0.87
Dense(20 => 20)/cpu/reverse/Flux/(20, 128) 20198 ns 22652 ns 0.89
Dense(20 => 20)/cpu/reverse/SimpleChains/(20, 128) 17854 ns 18654 ns 0.96
Dense(20 => 20)/cpu/reverse/Enzyme/(20, 128) 25438 ns 28283 ns 0.90
Dense(20 => 20)/cpu/forward/NamedTuple/(20, 128) 3835.875 ns 4363.8125 ns 0.88
Dense(20 => 20)/cpu/forward/ComponentArray/(20, 128) 3918.625 ns 4459.5 ns 0.88
Dense(20 => 20)/cpu/forward/Flux/(20, 128) 4823.285714285715 ns 5581.928571428572 ns 0.86
Dense(20 => 20)/cpu/forward/SimpleChains/(20, 128) 1659.1 ns 1850.5 ns 0.90
Conv((3, 3), 3 => 3)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 3, 128) 39143808 ns 45154820.5 ns 0.87
Conv((3, 3), 3 => 3)/cpu/reverse/Zygote/(64, 64, 3, 128) 58621282 ns 62378075.5 ns 0.94
Conv((3, 3), 3 => 3)/cpu/reverse/Tracker/(64, 64, 3, 128) 77683497.5 ns 82237576.5 ns 0.94
Conv((3, 3), 3 => 3)/cpu/reverse/ReverseDiff/(64, 64, 3, 128) 90256571.5 ns 92405677.5 ns 0.98
Conv((3, 3), 3 => 3)/cpu/reverse/Flux/(64, 64, 3, 128) 72881555 ns 78467695 ns 0.93
Conv((3, 3), 3 => 3)/cpu/reverse/SimpleChains/(64, 64, 3, 128) 11671152 ns 11963195.5 ns 0.98
Conv((3, 3), 3 => 3)/cpu/reverse/Enzyme/(64, 64, 3, 128) 87283794 ns 91650799 ns 0.95
Conv((3, 3), 3 => 3)/cpu/forward/NamedTuple/(64, 64, 3, 128) 7656318 ns 7710446.5 ns 0.99
Conv((3, 3), 3 => 3)/cpu/forward/ComponentArray/(64, 64, 3, 128) 7608095 ns 7584631 ns 1.00
Conv((3, 3), 3 => 3)/cpu/forward/Flux/(64, 64, 3, 128) 10498056 ns 12087804.5 ns 0.87
Conv((3, 3), 3 => 3)/cpu/forward/SimpleChains/(64, 64, 3, 128) 6381409 ns 6389570.5 ns 1.00
vgg16/cpu/reverse/Zygote/(32, 32, 3, 16) 689376640.5 ns 691470864.5 ns 1.00
vgg16/cpu/reverse/Zygote/(32, 32, 3, 64) 2604456477 ns 2612057812 ns 1.00
vgg16/cpu/reverse/Zygote/(32, 32, 3, 2) 133680880 ns 151710246 ns 0.88
vgg16/cpu/reverse/Tracker/(32, 32, 3, 16) 843437441 ns 847276341 ns 1.00
vgg16/cpu/reverse/Tracker/(32, 32, 3, 64) 2776058929 ns 2998224779 ns 0.93
vgg16/cpu/reverse/Tracker/(32, 32, 3, 2) 223554447 ns 231162547 ns 0.97
vgg16/cpu/reverse/Flux/(32, 32, 3, 16) 657378251.5 ns 712811787.5 ns 0.92
vgg16/cpu/reverse/Flux/(32, 32, 3, 64) 2650275317 ns 2949177680 ns 0.90
vgg16/cpu/reverse/Flux/(32, 32, 3, 2) 121357785 ns 139771741 ns 0.87
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 16) 174699990 ns 175403229 ns 1.00
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 64) 652299166.5 ns 643986392.5 ns 1.01
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 2) 34426692 ns 45299778 ns 0.76
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 16) 164194785 ns 165572824 ns 0.99
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 64) 641436603 ns 648012066 ns 0.99
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 2) 34326033 ns 35881786 ns 0.96
vgg16/cpu/forward/Flux/(32, 32, 3, 16) 186038851.5 ns 228284686 ns 0.81
vgg16/cpu/forward/Flux/(32, 32, 3, 64) 776724632.5 ns 824337722 ns 0.94
vgg16/cpu/forward/Flux/(32, 32, 3, 2) 37584623 ns 36049946 ns 1.04
Conv((3, 3), 64 => 64)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 64, 128) 1190194164.5 ns 1305860557.5 ns 0.91
Conv((3, 3), 64 => 64)/cpu/reverse/Zygote/(64, 64, 64, 128) 1876354989 ns 1872497449 ns 1.00
Conv((3, 3), 64 => 64)/cpu/reverse/Tracker/(64, 64, 64, 128) 2283996935 ns 2342556041 ns 0.98
Conv((3, 3), 64 => 64)/cpu/reverse/ReverseDiff/(64, 64, 64, 128) 2513176764 ns 2488038610 ns 1.01
Conv((3, 3), 64 => 64)/cpu/reverse/Flux/(64, 64, 64, 128) 1898362128 ns 1951631856 ns 0.97
Conv((3, 3), 64 => 64)/cpu/reverse/Enzyme/(64, 64, 64, 128) 2072506660 ns 2087636119 ns 0.99
Conv((3, 3), 64 => 64)/cpu/forward/NamedTuple/(64, 64, 64, 128) 332662860 ns 338033674 ns 0.98
Conv((3, 3), 64 => 64)/cpu/forward/ComponentArray/(64, 64, 64, 128) 329416590 ns 332696625 ns 0.99
Conv((3, 3), 64 => 64)/cpu/forward/Flux/(64, 64, 64, 128) 351697325 ns 359960422 ns 0.98
Conv((3, 3), 1 => 1)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 1, 128) 11864293 ns 11686611 ns 1.02
Conv((3, 3), 1 => 1)/cpu/reverse/Zygote/(64, 64, 1, 128) 18110858 ns 17986098.5 ns 1.01
Conv((3, 3), 1 => 1)/cpu/reverse/Tracker/(64, 64, 1, 128) 19212198 ns 19052140 ns 1.01
Conv((3, 3), 1 => 1)/cpu/reverse/ReverseDiff/(64, 64, 1, 128) 23868599 ns 23778464 ns 1.00
Conv((3, 3), 1 => 1)/cpu/reverse/Flux/(64, 64, 1, 128) 17909908.5 ns 17775034.5 ns 1.01
Conv((3, 3), 1 => 1)/cpu/reverse/SimpleChains/(64, 64, 1, 128) 1160228.5 ns 1157462 ns 1.00
Conv((3, 3), 1 => 1)/cpu/reverse/Enzyme/(64, 64, 1, 128) 23047791.5 ns 22924969.5 ns 1.01
Conv((3, 3), 1 => 1)/cpu/forward/NamedTuple/(64, 64, 1, 128) 2273990 ns 2406465 ns 0.94
Conv((3, 3), 1 => 1)/cpu/forward/ComponentArray/(64, 64, 1, 128) 2206685 ns 2242648.5 ns 0.98
Conv((3, 3), 1 => 1)/cpu/forward/Flux/(64, 64, 1, 128) 2067004.5 ns 2065648 ns 1.00
Conv((3, 3), 1 => 1)/cpu/forward/SimpleChains/(64, 64, 1, 128) 198290 ns 197910 ns 1.00
Dense(200 => 200)/cpu/reverse/ReverseDiff (compiled)/(200, 128) 291213.5 ns 290874 ns 1.00
Dense(200 => 200)/cpu/reverse/Zygote/(200, 128) 265600 ns 264424 ns 1.00
Dense(200 => 200)/cpu/reverse/Tracker/(200, 128) 363823.5 ns 364661 ns 1.00
Dense(200 => 200)/cpu/reverse/ReverseDiff/(200, 128) 406167 ns 405888 ns 1.00
Dense(200 => 200)/cpu/reverse/Flux/(200, 128) 274021 ns 272550 ns 1.01
Dense(200 => 200)/cpu/reverse/SimpleChains/(200, 128) 415585 ns 408042 ns 1.02
Dense(200 => 200)/cpu/reverse/Enzyme/(200, 128) 394275 ns 394657 ns 1.00
Dense(200 => 200)/cpu/forward/NamedTuple/(200, 128) 81261 ns 80941 ns 1.00
Dense(200 => 200)/cpu/forward/ComponentArray/(200, 128) 82584 ns 81403 ns 1.01
Dense(200 => 200)/cpu/forward/Flux/(200, 128) 86602 ns 86461 ns 1.00
Dense(200 => 200)/cpu/forward/SimpleChains/(200, 128) 104655 ns 104525 ns 1.00
Conv((3, 3), 16 => 16)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 16, 128) 189193866 ns 206243721 ns 0.92
Conv((3, 3), 16 => 16)/cpu/reverse/Zygote/(64, 64, 16, 128) 331275477.5 ns 327524051.5 ns 1.01
Conv((3, 3), 16 => 16)/cpu/reverse/Tracker/(64, 64, 16, 128) 359381850.5 ns 410738774 ns 0.87
Conv((3, 3), 16 => 16)/cpu/reverse/ReverseDiff/(64, 64, 16, 128) 481860292 ns 439152524.5 ns 1.10
Conv((3, 3), 16 => 16)/cpu/reverse/Flux/(64, 64, 16, 128) 376712548 ns 382717413 ns 0.98
Conv((3, 3), 16 => 16)/cpu/reverse/SimpleChains/(64, 64, 16, 128) 343794214 ns 325870578.5 ns 1.06
Conv((3, 3), 16 => 16)/cpu/reverse/Enzyme/(64, 64, 16, 128) 428991460 ns 455578258 ns 0.94
Conv((3, 3), 16 => 16)/cpu/forward/NamedTuple/(64, 64, 16, 128) 47520483 ns 47303828.5 ns 1.00
Conv((3, 3), 16 => 16)/cpu/forward/ComponentArray/(64, 64, 16, 128) 46909595 ns 46793042.5 ns 1.00
Conv((3, 3), 16 => 16)/cpu/forward/Flux/(64, 64, 16, 128) 53682209.5 ns 57476949 ns 0.93
Conv((3, 3), 16 => 16)/cpu/forward/SimpleChains/(64, 64, 16, 128) 28060003 ns 27955898 ns 1.00
Dense(2000 => 2000)/cpu/reverse/ReverseDiff (compiled)/(2000, 128) 18797204 ns 18906265 ns 0.99
Dense(2000 => 2000)/cpu/reverse/Zygote/(2000, 128) 19579816 ns 19556819 ns 1.00
Dense(2000 => 2000)/cpu/reverse/Tracker/(2000, 128) 23235480 ns 23268022 ns 1.00
Dense(2000 => 2000)/cpu/reverse/ReverseDiff/(2000, 128) 24132265 ns 24118160 ns 1.00
Dense(2000 => 2000)/cpu/reverse/Flux/(2000, 128) 19607801 ns 19557901 ns 1.00
Dense(2000 => 2000)/cpu/reverse/Enzyme/(2000, 128) 20881537.5 ns 20840171 ns 1.00
Dense(2000 => 2000)/cpu/forward/NamedTuple/(2000, 128) 6532475 ns 6539910.5 ns 1.00
Dense(2000 => 2000)/cpu/forward/ComponentArray/(2000, 128) 6499150.5 ns 6488719 ns 1.00
Dense(2000 => 2000)/cpu/forward/Flux/(2000, 128) 6513351 ns 6511897 ns 1.00

This comment was automatically generated by workflow using github-action-benchmark.

@avik-pal avik-pal merged commit 8eb392a into main Jul 28, 2024
19 of 22 checks passed
@avik-pal avik-pal deleted the ap/dd branch July 28, 2024 05:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add type-stability checks via DispatchDoctor.jl
1 participant