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

Training ConvMixer on CIFAR10 in 10mins #700

Merged
merged 2 commits into from
Jun 15, 2024
Merged

Training ConvMixer on CIFAR10 in 10mins #700

merged 2 commits into from
Jun 15, 2024

Conversation

avik-pal
Copy link
Member

No description provided.

@avik-pal avik-pal merged commit 2b7364c into main Jun 15, 2024
60 of 67 checks passed
@avik-pal avik-pal deleted the ap/convmixer branch June 15, 2024 04:34
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: 5d37fd2 Previous: 4546dff Ratio
Dense(2 => 2)/cpu/reverse/ReverseDiff (compiled)/(2, 128) 3670.625 ns 3694.4375 ns 0.99
Dense(2 => 2)/cpu/reverse/Zygote/(2, 128) 7246 ns 7302 ns 0.99
Dense(2 => 2)/cpu/reverse/Tracker/(2, 128) 20939 ns 20969 ns 1.00
Dense(2 => 2)/cpu/reverse/ReverseDiff/(2, 128) 9908.6 ns 9762.4 ns 1.01
Dense(2 => 2)/cpu/reverse/Flux/(2, 128) 9147.2 ns 8938.5 ns 1.02
Dense(2 => 2)/cpu/reverse/SimpleChains/(2, 128) 4499.75 ns 4477.125 ns 1.01
Dense(2 => 2)/cpu/reverse/Enzyme/(2, 128) 1164.531914893617 ns 1163.123188405797 ns 1.00
Dense(2 => 2)/cpu/forward/NamedTuple/(2, 128) 1178.136 ns 1169.9626865671642 ns 1.01
Dense(2 => 2)/cpu/forward/ComponentArray/(2, 128) 1194.203125 ns 1186.2105263157894 ns 1.01
Dense(2 => 2)/cpu/forward/Flux/(2, 128) 1832.081081081081 ns 1780.4745762711864 ns 1.03
Dense(2 => 2)/cpu/forward/SimpleChains/(2, 128) 180.296918767507 ns 180.46544428772918 ns 1.00
Dense(20 => 20)/cpu/reverse/ReverseDiff (compiled)/(20, 128) 17302 ns 17383 ns 1.00
Dense(20 => 20)/cpu/reverse/Zygote/(20, 128) 16886.5 ns 16871 ns 1.00
Dense(20 => 20)/cpu/reverse/Tracker/(20, 128) 39234 ns 38512.5 ns 1.02
Dense(20 => 20)/cpu/reverse/ReverseDiff/(20, 128) 29545 ns 29065 ns 1.02
Dense(20 => 20)/cpu/reverse/Flux/(20, 128) 20188 ns 19957 ns 1.01
Dense(20 => 20)/cpu/reverse/SimpleChains/(20, 128) 17293 ns 17172 ns 1.01
Dense(20 => 20)/cpu/reverse/Enzyme/(20, 128) 4336.714285714285 ns 4299.571428571428 ns 1.01
Dense(20 => 20)/cpu/forward/NamedTuple/(20, 128) 3888.625 ns 3832.25 ns 1.01
Dense(20 => 20)/cpu/forward/ComponentArray/(20, 128) 3972.5 ns 3942.4375 ns 1.01
Dense(20 => 20)/cpu/forward/Flux/(20, 128) 4953.571428571428 ns 4890.571428571428 ns 1.01
Dense(20 => 20)/cpu/forward/SimpleChains/(20, 128) 1662.1 ns 1658.1 ns 1.00
Conv((3, 3), 3 => 3)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 3, 128) 47110417 ns 37871298 ns 1.24
Conv((3, 3), 3 => 3)/cpu/reverse/Zygote/(64, 64, 3, 128) 57561360 ns 57993797.5 ns 0.99
Conv((3, 3), 3 => 3)/cpu/reverse/Tracker/(64, 64, 3, 128) 104652919 ns 75696479 ns 1.38
Conv((3, 3), 3 => 3)/cpu/reverse/ReverseDiff/(64, 64, 3, 128) 102055773 ns 88439559 ns 1.15
Conv((3, 3), 3 => 3)/cpu/reverse/Flux/(64, 64, 3, 128) 78339240 ns 72504315 ns 1.08
Conv((3, 3), 3 => 3)/cpu/reverse/SimpleChains/(64, 64, 3, 128) 11670389.5 ns 11659862 ns 1.00
Conv((3, 3), 3 => 3)/cpu/reverse/Enzyme/(64, 64, 3, 128) 17875918 ns 17791306.5 ns 1.00
Conv((3, 3), 3 => 3)/cpu/forward/NamedTuple/(64, 64, 3, 128) 7009895 ns 7012551.5 ns 1.00
Conv((3, 3), 3 => 3)/cpu/forward/ComponentArray/(64, 64, 3, 128) 6963204.5 ns 6978402 ns 1.00
Conv((3, 3), 3 => 3)/cpu/forward/Flux/(64, 64, 3, 128) 12054137 ns 9884066 ns 1.22
Conv((3, 3), 3 => 3)/cpu/forward/SimpleChains/(64, 64, 3, 128) 6395311 ns 6420084 ns 1.00
vgg16/cpu/reverse/Zygote/(32, 32, 3, 16) 741105630 ns 720580510 ns 1.03
vgg16/cpu/reverse/Zygote/(32, 32, 3, 64) 2554531149 ns 2544518699 ns 1.00
vgg16/cpu/reverse/Zygote/(32, 32, 3, 2) 132765027 ns 131471680.5 ns 1.01
vgg16/cpu/reverse/Tracker/(32, 32, 3, 16) 983153578 ns 827504177.5 ns 1.19
vgg16/cpu/reverse/Tracker/(32, 32, 3, 64) 3661447212 ns 2877856462 ns 1.27
vgg16/cpu/reverse/Tracker/(32, 32, 3, 2) 234165683.5 ns 208920985 ns 1.12
vgg16/cpu/reverse/Flux/(32, 32, 3, 16) 691264666 ns 666912899 ns 1.04
vgg16/cpu/reverse/Flux/(32, 32, 3, 64) 2854144903 ns 2604108753 ns 1.10
vgg16/cpu/reverse/Flux/(32, 32, 3, 2) 140344627 ns 125539572 ns 1.12
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 16) 172210841.5 ns 173253795.5 ns 0.99
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 64) 644386605.5 ns 644090212 ns 1.00
vgg16/cpu/forward/NamedTuple/(32, 32, 3, 2) 34379724.5 ns 34417633.5 ns 1.00
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 16) 164162392.5 ns 164488742 ns 1.00
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 64) 638627730 ns 636830354.5 ns 1.00
vgg16/cpu/forward/ComponentArray/(32, 32, 3, 2) 39279470 ns 30021599.5 ns 1.31
vgg16/cpu/forward/Flux/(32, 32, 3, 16) 227950872 ns 185182748.5 ns 1.23
vgg16/cpu/forward/Flux/(32, 32, 3, 64) 827029874 ns 707737108 ns 1.17
vgg16/cpu/forward/Flux/(32, 32, 3, 2) 40113931 ns 35345087 ns 1.13
Conv((3, 3), 64 => 64)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 64, 128) 1216828028.5 ns 1235268341.5 ns 0.99
Conv((3, 3), 64 => 64)/cpu/reverse/Zygote/(64, 64, 64, 128) 1854357962.5 ns 1869523217 ns 0.99
Conv((3, 3), 64 => 64)/cpu/reverse/Tracker/(64, 64, 64, 128) 2407799632 ns 2369346229 ns 1.02
Conv((3, 3), 64 => 64)/cpu/reverse/ReverseDiff/(64, 64, 64, 128) 2516120303 ns 2415735363 ns 1.04
Conv((3, 3), 64 => 64)/cpu/reverse/Flux/(64, 64, 64, 128) 1931256026.5 ns 1900669767.5 ns 1.02
Conv((3, 3), 64 => 64)/cpu/reverse/Enzyme/(64, 64, 64, 128) 563267837 ns 556681689 ns 1.01
Conv((3, 3), 64 => 64)/cpu/forward/NamedTuple/(64, 64, 64, 128) 316509077 ns 322985590 ns 0.98
Conv((3, 3), 64 => 64)/cpu/forward/ComponentArray/(64, 64, 64, 128) 316268046 ns 321921384 ns 0.98
Conv((3, 3), 64 => 64)/cpu/forward/Flux/(64, 64, 64, 128) 363102445.5 ns 455578108.5 ns 0.80
Conv((3, 3), 1 => 1)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 1, 128) 11987287 ns 11713373 ns 1.02
Conv((3, 3), 1 => 1)/cpu/reverse/Zygote/(64, 64, 1, 128) 17733192 ns 17999835.5 ns 0.99
Conv((3, 3), 1 => 1)/cpu/reverse/Tracker/(64, 64, 1, 128) 19029113 ns 19238194.5 ns 0.99
Conv((3, 3), 1 => 1)/cpu/reverse/ReverseDiff/(64, 64, 1, 128) 23810535 ns 23824428 ns 1.00
Conv((3, 3), 1 => 1)/cpu/reverse/Flux/(64, 64, 1, 128) 17827668 ns 18044598.5 ns 0.99
Conv((3, 3), 1 => 1)/cpu/reverse/SimpleChains/(64, 64, 1, 128) 1164075 ns 1160586 ns 1.00
Conv((3, 3), 1 => 1)/cpu/reverse/Enzyme/(64, 64, 1, 128) 5843548 ns 5781426 ns 1.01
Conv((3, 3), 1 => 1)/cpu/forward/NamedTuple/(64, 64, 1, 128) 2046947.5 ns 2043370.5 ns 1.00
Conv((3, 3), 1 => 1)/cpu/forward/ComponentArray/(64, 64, 1, 128) 2028943 ns 2035502 ns 1.00
Conv((3, 3), 1 => 1)/cpu/forward/Flux/(64, 64, 1, 128) 2066608.5 ns 2062472 ns 1.00
Conv((3, 3), 1 => 1)/cpu/forward/SimpleChains/(64, 64, 1, 128) 202780 ns 200231 ns 1.01
Dense(200 => 200)/cpu/reverse/ReverseDiff (compiled)/(200, 128) 293781 ns 290792 ns 1.01
Dense(200 => 200)/cpu/reverse/Zygote/(200, 128) 267614 ns 264871 ns 1.01
Dense(200 => 200)/cpu/reverse/Tracker/(200, 128) 370935 ns 364032.5 ns 1.02
Dense(200 => 200)/cpu/reverse/ReverseDiff/(200, 128) 411732.5 ns 405856 ns 1.01
Dense(200 => 200)/cpu/reverse/Flux/(200, 128) 276188.5 ns 272737 ns 1.01
Dense(200 => 200)/cpu/reverse/SimpleChains/(200, 128) 409378 ns 408464 ns 1.00
Dense(200 => 200)/cpu/reverse/Enzyme/(200, 128) 83487 ns 82917 ns 1.01
Dense(200 => 200)/cpu/forward/NamedTuple/(200, 128) 81422 ns 81223 ns 1.00
Dense(200 => 200)/cpu/forward/ComponentArray/(200, 128) 81753 ns 81384 ns 1.00
Dense(200 => 200)/cpu/forward/Flux/(200, 128) 87263.5 ns 86564 ns 1.01
Dense(200 => 200)/cpu/forward/SimpleChains/(200, 128) 104556 ns 104377 ns 1.00
Conv((3, 3), 16 => 16)/cpu/reverse/ReverseDiff (compiled)/(64, 64, 16, 128) 211922956 ns 191176516.5 ns 1.11
Conv((3, 3), 16 => 16)/cpu/reverse/Zygote/(64, 64, 16, 128) 325525847 ns 326190816.5 ns 1.00
Conv((3, 3), 16 => 16)/cpu/reverse/Tracker/(64, 64, 16, 128) 440932006 ns 391559049 ns 1.13
Conv((3, 3), 16 => 16)/cpu/reverse/ReverseDiff/(64, 64, 16, 128) 477427133 ns 456654048 ns 1.05
Conv((3, 3), 16 => 16)/cpu/reverse/Flux/(64, 64, 16, 128) 418808602.5 ns 385369615 ns 1.09
Conv((3, 3), 16 => 16)/cpu/reverse/SimpleChains/(64, 64, 16, 128) 321991996 ns 325114206 ns 0.99
Conv((3, 3), 16 => 16)/cpu/reverse/Enzyme/(64, 64, 16, 128) 104296614 ns 100369743.5 ns 1.04
Conv((3, 3), 16 => 16)/cpu/forward/NamedTuple/(64, 64, 16, 128) 43942389.5 ns 43645102.5 ns 1.01
Conv((3, 3), 16 => 16)/cpu/forward/ComponentArray/(64, 64, 16, 128) 43669170 ns 43657050 ns 1.00
Conv((3, 3), 16 => 16)/cpu/forward/Flux/(64, 64, 16, 128) 65190820 ns 49432500 ns 1.32
Conv((3, 3), 16 => 16)/cpu/forward/SimpleChains/(64, 64, 16, 128) 27954606 ns 28029664 ns 1.00
Dense(2000 => 2000)/cpu/reverse/ReverseDiff (compiled)/(2000, 128) 18908362 ns 18792871 ns 1.01
Dense(2000 => 2000)/cpu/reverse/Zygote/(2000, 128) 19563492.5 ns 19477495 ns 1.00
Dense(2000 => 2000)/cpu/reverse/Tracker/(2000, 128) 23499781.5 ns 23235674 ns 1.01
Dense(2000 => 2000)/cpu/reverse/ReverseDiff/(2000, 128) 24208886 ns 23963657 ns 1.01
Dense(2000 => 2000)/cpu/reverse/Flux/(2000, 128) 19654422 ns 19696924 ns 1.00
Dense(2000 => 2000)/cpu/reverse/Enzyme/(2000, 128) 6527087.5 ns 6504561.5 ns 1.00
Dense(2000 => 2000)/cpu/forward/NamedTuple/(2000, 128) 6552123 ns 6491788 ns 1.01
Dense(2000 => 2000)/cpu/forward/ComponentArray/(2000, 128) 6496150 ns 6476898 ns 1.00
Dense(2000 => 2000)/cpu/forward/Flux/(2000, 128) 6501319 ns 6600817 ns 0.98

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

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.

1 participant