From 48f3236b48606ee8565bf7b99dc084524b7a2015 Mon Sep 17 00:00:00 2001 From: Carlo Lucibello Date: Sat, 3 Oct 2020 19:59:38 +0200 Subject: [PATCH 1/5] udpate for CUDA.jl 2.0 --- Manifest.toml | 124 +++++++++++++++++++++++-------------------- Project.toml | 2 +- test.jl | 126 ++++++++++++++++++++++++++++++++++++++++++++ test/cuda/losses.jl | 6 ++- 4 files changed, 199 insertions(+), 59 deletions(-) create mode 100644 test.jl diff --git a/Manifest.toml b/Manifest.toml index 81fb59f7d9..a3f0b0c504 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -14,15 +14,15 @@ version = "0.3.3" [[Adapt]] deps = ["LinearAlgebra"] -git-tree-sha1 = "0fac443759fa829ed8066db6cf1077d888bb6573" +git-tree-sha1 = "42c42f2221906892ceb765dbcb1a51deeffd86d7" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "2.0.2" +version = "2.3.0" [[ArrayLayouts]] -deps = ["FillArrays", "LinearAlgebra"] -git-tree-sha1 = "951c3fc1ff93497c88fb1dfa893f4de55d0b38e3" +deps = ["Compat", "FillArrays", "LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "d6f1ecde467019346f7601fb2ee58cb2bc60d121" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "0.3.8" +version = "0.4.8" [[Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" @@ -40,21 +40,21 @@ version = "0.4.1" [[CUDA]] deps = ["AbstractFFTs", "Adapt", "BinaryProvider", "CEnum", "DataStructures", "ExprTools", "GPUArrays", "GPUCompiler", "LLVM", "Libdl", "LinearAlgebra", "Logging", "MacroTools", "NNlib", "Pkg", "Printf", "Random", "Reexport", "Requires", "SparseArrays", "Statistics", "TimerOutputs"] -git-tree-sha1 = "2c007bb3931360013d32bcd53a727e0a7f144e00" +git-tree-sha1 = "83bfd180e2f842f6d4ee315a6db8665e9aa0c19b" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "1.2.1" +version = "1.3.3" [[ChainRules]] deps = ["ChainRulesCore", "LinearAlgebra", "Random", "Reexport", "Requires", "Statistics"] -git-tree-sha1 = "f54401294c1ed68d7cc2a7ea280ec101bca722bc" +git-tree-sha1 = "7ff00994ca6a7cf24079925b28af42488aa07b48" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "0.7.12" +version = "0.7.22" [[ChainRulesCore]] -deps = ["MuladdMacro"] -git-tree-sha1 = "971b03f25bdf2acab79f1c51afc717f9dccf43c2" +deps = ["LinearAlgebra", "MuladdMacro"] +git-tree-sha1 = "9abb94a911c36efeca17b7255f63160787d8822e" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "0.9.5" +version = "0.9.11" [[CodecZlib]] deps = ["TranscodingStreams", "Zlib_jll"] @@ -64,15 +64,15 @@ version = "0.7.0" [[ColorTypes]] deps = ["FixedPointNumbers", "Random"] -git-tree-sha1 = "607c0ea16cb32af49ea2976f90c0c5acbca37d21" +git-tree-sha1 = "4bffea7ed1a9f0f3d1a131bbcd4b925548d75288" uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" -version = "0.10.8" +version = "0.10.9" [[Colors]] deps = ["ColorTypes", "FixedPointNumbers", "InteractiveUtils", "Reexport"] -git-tree-sha1 = "5639e44833cfcf78c6a73fbceb4da75611d312cd" +git-tree-sha1 = "008d6bc68dea6beb6303fdc37188cb557391ebf2" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" -version = "0.12.3" +version = "0.12.4" [[CommonSubexpressions]] deps = ["MacroTools", "Test"] @@ -80,6 +80,12 @@ git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" version = "0.3.0" +[[Compat]] +deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"] +git-tree-sha1 = "8cd7b7d1c7f6fcbe7e8743a58adf57788ec7f787" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "3.18.0" + [[CompilerSupportLibraries_jll]] deps = ["Libdl", "Pkg"] git-tree-sha1 = "7c4f882c41faa72118841185afc58a2eb00ef612" @@ -98,10 +104,10 @@ uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" version = "1.3.0" [[DataStructures]] -deps = ["InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "88d48e133e6d3dd68183309877eac74393daa7eb" +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "0347f23484a96d56e7096eb1f55c6975be34b11a" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.17.20" +version = "0.18.6" [[Dates]] deps = ["Printf"] @@ -129,20 +135,20 @@ uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" [[DocStringExtensions]] deps = ["LibGit2", "Markdown", "Pkg", "Test"] -git-tree-sha1 = "c5714d9bcdba66389612dc4c47ed827c64112997" +git-tree-sha1 = "50ddf44c53698f5e784bbebb3f4b21c5807401b1" uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" -version = "0.8.2" +version = "0.8.3" [[ExprTools]] -git-tree-sha1 = "6f0517056812fd6aa3af23d4b70d5325a2ae4e95" +git-tree-sha1 = "7fce513fcda766962ff67c5596cb16c463dfd371" uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" -version = "0.1.1" +version = "0.1.2" [[FillArrays]] deps = ["LinearAlgebra", "Random", "SparseArrays"] -git-tree-sha1 = "4863cbb7910079369e258dee4add9d06ead5063a" +git-tree-sha1 = "b955c227b0d1413a1a97e2ca0635a5de019d7337" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "0.8.14" +version = "0.9.6" [[FixedPointNumbers]] deps = ["Statistics"] @@ -168,21 +174,21 @@ uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" [[GPUArrays]] deps = ["AbstractFFTs", "Adapt", "LinearAlgebra", "Printf", "Random", "Serialization"] -git-tree-sha1 = "9027d6128645d227fa9ba7d5b3aa00af696b9aaf" +git-tree-sha1 = "da6398282abd2a8c0dc3e55b49d984fcc2c582e5" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "5.0.0" +version = "5.2.1" [[GPUCompiler]] deps = ["DataStructures", "InteractiveUtils", "LLVM", "Libdl", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "d6db068d8373bb45ac17e14744cc1d3681d0dbc7" +git-tree-sha1 = "05097d81898c527e3bf218bb083ad0ead4378e5f" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.5.5" +version = "0.6.1" [[IRTools]] deps = ["InteractiveUtils", "MacroTools", "Test"] -git-tree-sha1 = "6875ae3cfcb9a50af80553d5cc825f406e8d13bc" +git-tree-sha1 = "a8d88c05a23b44b4da6cf4fb5659e13ff95e0f47" uuid = "7869d1d1-7146-5819-86e3-90919afe41df" -version = "0.4.0" +version = "0.4.1" [[InteractiveUtils]] deps = ["Markdown"] @@ -190,9 +196,9 @@ uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" [[Juno]] deps = ["Base64", "Logging", "Media", "Profile"] -git-tree-sha1 = "90976c3ab792a98d240d42f9df07420ccfc60668" +git-tree-sha1 = "07cb43290a840908a771552911a6274bc6c072c7" uuid = "e5e0dc1b-0480-54bc-9374-aad01c23163d" -version = "0.8.3" +version = "0.8.4" [[LLVM]] deps = ["CEnum", "Libdl", "Printf", "Unicode"] @@ -216,9 +222,9 @@ uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" [[LoopVectorization]] deps = ["DocStringExtensions", "LinearAlgebra", "OffsetArrays", "SIMDPirates", "SLEEFPirates", "UnPack", "VectorizationBase"] -git-tree-sha1 = "5d1d5fb3e9a4c18ae1aa8cb16b0fbdbfeb7db5ed" +git-tree-sha1 = "3242a8f411e19eda9adc49d0b877681975c11375" uuid = "bdcacae8-1622-11e9-2a5c-532679323890" -version = "0.8.22" +version = "0.8.26" [[MacroTools]] deps = ["Markdown", "Random"] @@ -238,9 +244,9 @@ version = "0.5.0" [[Missings]] deps = ["DataAPI"] -git-tree-sha1 = "de0a5ce9e5289f27df672ffabef4d1e5861247d5" +git-tree-sha1 = "ed61674a0864832495ffe0a7e889c0da76b0f4c8" uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" -version = "0.4.3" +version = "0.4.4" [[Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" @@ -252,9 +258,9 @@ version = "0.2.2" [[NNlib]] deps = ["Libdl", "LinearAlgebra", "Pkg", "Requires", "Statistics"] -git-tree-sha1 = "8ec4693a5422f0b064ce324f59351f24aa474893" +git-tree-sha1 = "1ef04283efe283be08e2d0de842f5e5286dd0b7a" uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.7.4" +version = "0.7.5" [[NaNMath]] git-tree-sha1 = "c84c576296d0e2fbb3fc134d3e09086b3ea617cd" @@ -262,9 +268,9 @@ uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" version = "0.3.4" [[OffsetArrays]] -git-tree-sha1 = "2066e16af994955287f2e03ba1d9e890eb43b0dd" +git-tree-sha1 = "3fdfca8a532507d65f39ff0ad34fe81097a55337" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.1.2" +version = "1.3.0" [[OpenSpecFun_jll]] deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"] @@ -273,9 +279,9 @@ uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" version = "0.5.3+3" [[OrderedCollections]] -git-tree-sha1 = "293b70ac1780f9584c89268a6e2a560d938a7065" +git-tree-sha1 = "16c08bf5dba06609fe45e30860092d6fa41fde7b" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.3.0" +version = "1.3.1" [[Pkg]] deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"] @@ -305,18 +311,18 @@ version = "0.2.0" [[Requires]] deps = ["UUIDs"] -git-tree-sha1 = "d37400976e98018ee840e0ca4f9d20baa231dc6b" +git-tree-sha1 = "28faf1c963ca1dc3ec87f166d92982e3c4a1f66d" uuid = "ae029012-a4dd-5104-9daa-d747884805df" -version = "1.0.1" +version = "1.1.0" [[SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" [[SIMDPirates]] deps = ["VectorizationBase"] -git-tree-sha1 = "884df77ee290b45bcf9d2edcdb186afaf1281c39" +git-tree-sha1 = "450d163d3279a1d35e3aad3352a5167ef21b84a4" uuid = "21efa798-c60a-11e8-04d3-e1a92915a26a" -version = "0.8.23" +version = "0.8.25" [[SLEEFPirates]] deps = ["Libdl", "SIMDPirates", "VectorizationBase"] @@ -327,6 +333,10 @@ version = "0.5.5" [[Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" +[[SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + [[Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" @@ -358,9 +368,9 @@ uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" [[StatsBase]] deps = ["DataAPI", "DataStructures", "LinearAlgebra", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics"] -git-tree-sha1 = "a6102b1f364befdb05746f386b67c6b7e3262c45" +git-tree-sha1 = "d72a47c47c522e283db774fc8c459dd5ed773710" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -version = "0.33.0" +version = "0.33.1" [[Test]] deps = ["Distributed", "InteractiveUtils", "Logging", "Random"] @@ -383,18 +393,18 @@ deps = ["Random", "SHA"] uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" [[UnPack]] -git-tree-sha1 = "d4bfa022cd30df012700cf380af2141961bb3bfb" +git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" -version = "1.0.1" +version = "1.0.2" [[Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" [[VectorizationBase]] deps = ["CpuId", "Libdl", "LinearAlgebra"] -git-tree-sha1 = "09a4d4896aac75199b332eb26a8d0a9e4655e34a" +git-tree-sha1 = "03e2fbb479a1ea350398195b6fbf439bae0f8260" uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" -version = "0.12.30" +version = "0.12.33" [[ZipFile]] deps = ["Libdl", "Printf", "Zlib_jll"] @@ -404,15 +414,15 @@ version = "0.9.2" [[Zlib_jll]] deps = ["Libdl", "Pkg"] -git-tree-sha1 = "d5bba6485811931e4b8958e2d7ca3738273ac468" +git-tree-sha1 = "fdd89e5ab270ea0f2a0174bd9093e557d06d4bfa" uuid = "83775a58-1f1d-513f-b197-d71354ab007a" -version = "1.2.11+15" +version = "1.2.11+16" [[Zygote]] deps = ["AbstractFFTs", "ArrayLayouts", "ChainRules", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "Future", "IRTools", "InteractiveUtils", "LinearAlgebra", "LoopVectorization", "MacroTools", "NNlib", "NaNMath", "Random", "Requires", "SpecialFunctions", "Statistics", "ZygoteRules"] -git-tree-sha1 = "0079d92995b0fbcffd5d475d49ec8ca49375c471" +git-tree-sha1 = "4eab8971579a9879ce260ac16a7c54935a79edb6" uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" -version = "0.5.4" +version = "0.5.8" [[ZygoteRules]] deps = ["MacroTools"] diff --git a/Project.toml b/Project.toml index c1046a86bd..6a10084c7c 100644 --- a/Project.toml +++ b/Project.toml @@ -28,7 +28,7 @@ Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [compat] AbstractTrees = "0.2, 0.3" Adapt = "1, 2.0" -CUDA = "1" +CUDA = "1, 2.0" CodecZlib = "0.5, 0.6, 0.7" Colors = "0.8, 0.9, 0.10, 0.11, 0.12" Functors = "0.1" diff --git a/test.jl b/test.jl new file mode 100644 index 0000000000..e3bf8b5410 --- /dev/null +++ b/test.jl @@ -0,0 +1,126 @@ +using LoopVectorization, Zygote +using BenchmarkTools, Random +using Flux: relu, gpu +using CUDA, KernelAbstractions +using Tullio + +linear(W, x, b) = W*x .+ b + +function sigm(x) + t = exp(-abs(x)) + ifelse(x ≥ 0, inv(one(t) + t), t / (one(t) + t)) +end + +for layer in (:Dense1, :Dense2, :Dense3, :Dense4, :Dense5, :Dense6, :Dense7, :Dense8) + @eval struct $layer{S<:AbstractArray, T<:AbstractArray, F} + W::S + b::T + σ::F + end +end + +function (a::Dense1)(x::AbstractArray) + W, b, σ = a.W, a.b, a.σ + σ.(W*x .+ b) +end + +function (a::Dense2)(x::AbstractArray) + W, b, σ = a.W, a.b, a.σ + @avx σ.(W*x .+ b) +end + +function (a::Dense3)(x::AbstractArray) + W, b, σ = a.W, a.b, a.σ + σ.(linear(W, x, b)) +end + +function (a::Dense4)(x::AbstractArray) + W, b, σ = a.W, a.b, a.σ + @avx σ.(linear(W, x, b)) +end + +function (a::Dense5)(x::AbstractArray) + W, b, σ = a.W, a.b, a.σ + map(σ, linear(W, x, b)) +end + +function (a::Dense6)(x::AbstractArray) + W, b, σ = a.W, a.b, a.σ + vmap(σ, linear(W, x, b)) +end + +function (a::Dense7)(x::AbstractArray) + W, b, σ = a.W, a.b, a.σ + y = linear(W, b, σ) + @tullio z[i,k] := σ.(y[i,k]) +end + +function (a::Dense8)(x::AbstractArray) + W, b, σ = a.W, a.b, a.σ + @tullio y[i,k] := W[i,j]*x[j,k] + @tullio z[i,k] := σ.(y[i,k]) +end + +function test() + n = 500 + for batchsize in (100,) + println("\n@@@ batchsize = $batchsize") + x = randn(Float32, n, batchsize) + W, b = randn(Float32, n, n)./√n, randn(Float32, n) + cu_x, cu_W, cu_b = x |> gpu, W |> gpu, b |> gpu + + # for act in (identity, relu, exp) + for act in (exp, sigm) + println("\n@@ ACTIVATION $act") + println(" broadcast") + @btime $act.($x); + println(" grad broadcast ") + @btime gradient(x -> sum($act.(x)), $x); + println(" @avx broadcast") + @btime @avx $act.($x); + println(" grad @avx broadcast") + try; @btime gradient(x -> sum(@avx $act.(x)), $x); catch; println("ERROR!"); end + println(" @tullio ") + @btime @tullio y[i,j] := $act($x[i,j]); + println(" grad @tullio") + gradient(x -> (@tullio s := act(x[i,j])), x) + try; @btime gradient(x -> (@tullio s := $act(x[i,j])), $x); catch; println("ERROR!"); end + println(" map") + @btime map($act, $x); + println(" grad map") + try; @btime gradient(x -> sum(map($act, x)), $x); catch; println("ERROR!"); end + println(" vmap") + @btime vmap($act, $x); + println(" grad vmap") + try; @btime gradient(x -> sum(vmap($act, x)), $x); catch; println("ERROR!"); end + + println(" GPU broadcast") + @btime CUDA.@sync $act.($cu_x); + println(" GPU @avx broadcast") + try; @btime @avx $act.($cu_x); catch; println("ERROR!"); end + println(" GPU @tullio ") + @btime @tullio y[i,j] := $act.($cu_x[i,j]); + println(" GPU grad @tullio") + try; @btime gradient(x -> (@tullio s := $act(x[i,j])), $cu_x); catch; println("ERROR!"); end + + println(" GPU map") + @btime map($act, $cu_x); + println(" GPU vmap") + try; @btime vmap($act, $cu_x); catch; println("ERROR!"); end + + for layer in (Dense1, Dense2, Dense3, Dense4, Dense5, Dense6, Dense7, Dense8) + println("\n LAYER $layer") + m = layer(W, b, act) + @btime $m($x); + println(" grad") + try; @btime gradient(x-> sum($m(x)), $x); catch; println("ERROR!"); end + + println(" GPU LAYER $layer") + m = layer(cu_W, cu_b, act) + try; @btime $m($cu_x); catch; println("ERROR!"); end + println(" grad") + try; @btime gradient(x-> sum($m(x)), $cu_x); catch; println("ERROR!"); end + end + end + end +end \ No newline at end of file diff --git a/test/cuda/losses.jl b/test/cuda/losses.jl index 89d0bdbe5e..0cbf2291cd 100644 --- a/test/cuda/losses.jl +++ b/test/cuda/losses.jl @@ -36,7 +36,11 @@ end y = rand(Float32, 3,3) for loss in ALL_LOSSES - gpu_gradtest(loss, x, y) + if loss == Flux.Losses.huber_loss + @test_broken 1 == 2 + else + gpu_gradtest(loss, x, y) + end end end From 3c6eddde97aa72706efbffe24bea05fbb6f91a71 Mon Sep 17 00:00:00 2001 From: Carlo Lucibello Date: Sat, 3 Oct 2020 20:00:25 +0200 Subject: [PATCH 2/5] update manifest --- .gitlab-ci.yml | 22 ++++------------------ .vscode/settings.json | 3 +++ Manifest.toml | 24 +++++++++++++++--------- 3 files changed, 22 insertions(+), 27 deletions(-) create mode 100644 .vscode/settings.json diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a00589db9c..a14e4ad983 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,30 +4,16 @@ include: image: nvidia/cuda:10.1-cudnn7-devel-ubuntu18.04 -# julia:1.0: +# julia:1.4: # extends: -# - .julia:1.0 -# - .test -# tags: -# - nvidia -# -# julia:1.1: -# extends: -# - .julia:1.1 -# - .test -# tags: -# - nvidia -# -# julia:1.2: -# extends: -# - .julia:1.2 +# - .julia:1.4 # - .test # tags: # - nvidia -julia:1.4: +julia:1.5: extends: - - .julia:1.4 + - .julia:1.5 - .test tags: - nvidia diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000..de45d22792 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "julia.environmentPath": "/home/carlo/.julia/environments/v1.4" +} \ No newline at end of file diff --git a/Manifest.toml b/Manifest.toml index a3f0b0c504..f9278adbf6 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -24,6 +24,12 @@ git-tree-sha1 = "d6f1ecde467019346f7601fb2ee58cb2bc60d121" uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" version = "0.4.8" +[[BFloat16s]] +deps = ["LinearAlgebra", "Test"] +git-tree-sha1 = "4af69e205efc343068dc8722b8dfec1ade89254a" +uuid = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" +version = "0.1.0" + [[Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" @@ -39,10 +45,10 @@ uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" version = "0.4.1" [[CUDA]] -deps = ["AbstractFFTs", "Adapt", "BinaryProvider", "CEnum", "DataStructures", "ExprTools", "GPUArrays", "GPUCompiler", "LLVM", "Libdl", "LinearAlgebra", "Logging", "MacroTools", "NNlib", "Pkg", "Printf", "Random", "Reexport", "Requires", "SparseArrays", "Statistics", "TimerOutputs"] -git-tree-sha1 = "83bfd180e2f842f6d4ee315a6db8665e9aa0c19b" +deps = ["AbstractFFTs", "Adapt", "BFloat16s", "BinaryProvider", "CEnum", "DataStructures", "ExprTools", "GPUArrays", "GPUCompiler", "LLVM", "Libdl", "LinearAlgebra", "Logging", "MacroTools", "NNlib", "Pkg", "Printf", "Random", "Reexport", "Requires", "SparseArrays", "Statistics", "TimerOutputs"] +git-tree-sha1 = "33cdd16cbc766efa0534b6aafe5dea83795b8a77" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "1.3.3" +version = "2.0.0" [[ChainRules]] deps = ["ChainRulesCore", "LinearAlgebra", "Random", "Reexport", "Requires", "Statistics"] @@ -174,15 +180,15 @@ uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" [[GPUArrays]] deps = ["AbstractFFTs", "Adapt", "LinearAlgebra", "Printf", "Random", "Serialization"] -git-tree-sha1 = "da6398282abd2a8c0dc3e55b49d984fcc2c582e5" +git-tree-sha1 = "e39817aafb64a0794817a1e5126d042d0b26f700" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "5.2.1" +version = "6.0.1" [[GPUCompiler]] deps = ["DataStructures", "InteractiveUtils", "LLVM", "Libdl", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "05097d81898c527e3bf218bb083ad0ead4378e5f" +git-tree-sha1 = "1b19d415fc3581ff0ed2f57875fca16b5190060a" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.6.1" +version = "0.7.3" [[IRTools]] deps = ["InteractiveUtils", "MacroTools", "Test"] @@ -202,9 +208,9 @@ version = "0.8.4" [[LLVM]] deps = ["CEnum", "Libdl", "Printf", "Unicode"] -git-tree-sha1 = "a662366a5d485dee882077e8da3e1a95a86d097f" +git-tree-sha1 = "70070a0131f17fcffc5fc004f5f73f037bd217c5" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "2.0.0" +version = "3.2.0" [[LibGit2]] deps = ["Printf"] From 9bb95edb86643bd6b8c3e475c06721008d5e8a83 Mon Sep 17 00:00:00 2001 From: Carlo Lucibello Date: Sat, 3 Oct 2020 20:01:40 +0200 Subject: [PATCH 3/5] cleanup --- .gitignore | 1 + .vscode/settings.json | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 .vscode/settings.json diff --git a/.gitignore b/.gitignore index eb18605cdd..a1b37d7c4f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ *.jl.cov *.jl.*.cov *.jl.mem +.vscode/ docs/build/ docs/site/ deps diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index de45d22792..0000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "julia.environmentPath": "/home/carlo/.julia/environments/v1.4" -} \ No newline at end of file From 565a3bbb59cb488bc5303a5ad4b826d8bcf94c72 Mon Sep 17 00:00:00 2001 From: Carlo Lucibello Date: Sat, 3 Oct 2020 20:04:09 +0200 Subject: [PATCH 4/5] cleanup --- test.jl | 126 -------------------------------------------------------- 1 file changed, 126 deletions(-) delete mode 100644 test.jl diff --git a/test.jl b/test.jl deleted file mode 100644 index e3bf8b5410..0000000000 --- a/test.jl +++ /dev/null @@ -1,126 +0,0 @@ -using LoopVectorization, Zygote -using BenchmarkTools, Random -using Flux: relu, gpu -using CUDA, KernelAbstractions -using Tullio - -linear(W, x, b) = W*x .+ b - -function sigm(x) - t = exp(-abs(x)) - ifelse(x ≥ 0, inv(one(t) + t), t / (one(t) + t)) -end - -for layer in (:Dense1, :Dense2, :Dense3, :Dense4, :Dense5, :Dense6, :Dense7, :Dense8) - @eval struct $layer{S<:AbstractArray, T<:AbstractArray, F} - W::S - b::T - σ::F - end -end - -function (a::Dense1)(x::AbstractArray) - W, b, σ = a.W, a.b, a.σ - σ.(W*x .+ b) -end - -function (a::Dense2)(x::AbstractArray) - W, b, σ = a.W, a.b, a.σ - @avx σ.(W*x .+ b) -end - -function (a::Dense3)(x::AbstractArray) - W, b, σ = a.W, a.b, a.σ - σ.(linear(W, x, b)) -end - -function (a::Dense4)(x::AbstractArray) - W, b, σ = a.W, a.b, a.σ - @avx σ.(linear(W, x, b)) -end - -function (a::Dense5)(x::AbstractArray) - W, b, σ = a.W, a.b, a.σ - map(σ, linear(W, x, b)) -end - -function (a::Dense6)(x::AbstractArray) - W, b, σ = a.W, a.b, a.σ - vmap(σ, linear(W, x, b)) -end - -function (a::Dense7)(x::AbstractArray) - W, b, σ = a.W, a.b, a.σ - y = linear(W, b, σ) - @tullio z[i,k] := σ.(y[i,k]) -end - -function (a::Dense8)(x::AbstractArray) - W, b, σ = a.W, a.b, a.σ - @tullio y[i,k] := W[i,j]*x[j,k] - @tullio z[i,k] := σ.(y[i,k]) -end - -function test() - n = 500 - for batchsize in (100,) - println("\n@@@ batchsize = $batchsize") - x = randn(Float32, n, batchsize) - W, b = randn(Float32, n, n)./√n, randn(Float32, n) - cu_x, cu_W, cu_b = x |> gpu, W |> gpu, b |> gpu - - # for act in (identity, relu, exp) - for act in (exp, sigm) - println("\n@@ ACTIVATION $act") - println(" broadcast") - @btime $act.($x); - println(" grad broadcast ") - @btime gradient(x -> sum($act.(x)), $x); - println(" @avx broadcast") - @btime @avx $act.($x); - println(" grad @avx broadcast") - try; @btime gradient(x -> sum(@avx $act.(x)), $x); catch; println("ERROR!"); end - println(" @tullio ") - @btime @tullio y[i,j] := $act($x[i,j]); - println(" grad @tullio") - gradient(x -> (@tullio s := act(x[i,j])), x) - try; @btime gradient(x -> (@tullio s := $act(x[i,j])), $x); catch; println("ERROR!"); end - println(" map") - @btime map($act, $x); - println(" grad map") - try; @btime gradient(x -> sum(map($act, x)), $x); catch; println("ERROR!"); end - println(" vmap") - @btime vmap($act, $x); - println(" grad vmap") - try; @btime gradient(x -> sum(vmap($act, x)), $x); catch; println("ERROR!"); end - - println(" GPU broadcast") - @btime CUDA.@sync $act.($cu_x); - println(" GPU @avx broadcast") - try; @btime @avx $act.($cu_x); catch; println("ERROR!"); end - println(" GPU @tullio ") - @btime @tullio y[i,j] := $act.($cu_x[i,j]); - println(" GPU grad @tullio") - try; @btime gradient(x -> (@tullio s := $act(x[i,j])), $cu_x); catch; println("ERROR!"); end - - println(" GPU map") - @btime map($act, $cu_x); - println(" GPU vmap") - try; @btime vmap($act, $cu_x); catch; println("ERROR!"); end - - for layer in (Dense1, Dense2, Dense3, Dense4, Dense5, Dense6, Dense7, Dense8) - println("\n LAYER $layer") - m = layer(W, b, act) - @btime $m($x); - println(" grad") - try; @btime gradient(x-> sum($m(x)), $x); catch; println("ERROR!"); end - - println(" GPU LAYER $layer") - m = layer(cu_W, cu_b, act) - try; @btime $m($cu_x); catch; println("ERROR!"); end - println(" grad") - try; @btime gradient(x-> sum($m(x)), $cu_x); catch; println("ERROR!"); end - end - end - end -end \ No newline at end of file From 1fa9640486549440565087df672159544600d4e2 Mon Sep 17 00:00:00 2001 From: Carlo Lucibello Date: Sun, 4 Oct 2020 12:48:10 +0200 Subject: [PATCH 5/5] remove manifest --- .gitignore | 1 + .travis.yml | 2 +- Manifest.toml | 437 -------------------------------------------------- 3 files changed, 2 insertions(+), 438 deletions(-) delete mode 100644 Manifest.toml diff --git a/.gitignore b/.gitignore index a1b37d7c4f..a6689d38f9 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ docs/build/ docs/site/ deps +Manifest.toml \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 33502299c4..eac31e55eb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,7 +16,7 @@ notifications: jobs: include: - stage: "Documentation" - julia: 1.3 + julia: 1.4 os: linux script: - julia --project=docs/ -e 'using Pkg; Pkg.develop(PackageSpec(path=pwd())); diff --git a/Manifest.toml b/Manifest.toml deleted file mode 100644 index f9278adbf6..0000000000 --- a/Manifest.toml +++ /dev/null @@ -1,437 +0,0 @@ -# This file is machine-generated - editing it directly is not advised - -[[AbstractFFTs]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "051c95d6836228d120f5f4b984dd5aba1624f716" -uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" -version = "0.5.0" - -[[AbstractTrees]] -deps = ["Markdown"] -git-tree-sha1 = "33e450545eaf7699da1a6e755f9ea65f14077a45" -uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" -version = "0.3.3" - -[[Adapt]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "42c42f2221906892ceb765dbcb1a51deeffd86d7" -uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "2.3.0" - -[[ArrayLayouts]] -deps = ["Compat", "FillArrays", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "d6f1ecde467019346f7601fb2ee58cb2bc60d121" -uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "0.4.8" - -[[BFloat16s]] -deps = ["LinearAlgebra", "Test"] -git-tree-sha1 = "4af69e205efc343068dc8722b8dfec1ade89254a" -uuid = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" -version = "0.1.0" - -[[Base64]] -uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" - -[[BinaryProvider]] -deps = ["Libdl", "Logging", "SHA"] -git-tree-sha1 = "ecdec412a9abc8db54c0efc5548c64dfce072058" -uuid = "b99e7846-7c00-51b0-8f62-c81ae34c0232" -version = "0.5.10" - -[[CEnum]] -git-tree-sha1 = "215a9aa4a1f23fbd05b92769fdd62559488d70e9" -uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" -version = "0.4.1" - -[[CUDA]] -deps = ["AbstractFFTs", "Adapt", "BFloat16s", "BinaryProvider", "CEnum", "DataStructures", "ExprTools", "GPUArrays", "GPUCompiler", "LLVM", "Libdl", "LinearAlgebra", "Logging", "MacroTools", "NNlib", "Pkg", "Printf", "Random", "Reexport", "Requires", "SparseArrays", "Statistics", "TimerOutputs"] -git-tree-sha1 = "33cdd16cbc766efa0534b6aafe5dea83795b8a77" -uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "2.0.0" - -[[ChainRules]] -deps = ["ChainRulesCore", "LinearAlgebra", "Random", "Reexport", "Requires", "Statistics"] -git-tree-sha1 = "7ff00994ca6a7cf24079925b28af42488aa07b48" -uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "0.7.22" - -[[ChainRulesCore]] -deps = ["LinearAlgebra", "MuladdMacro"] -git-tree-sha1 = "9abb94a911c36efeca17b7255f63160787d8822e" -uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "0.9.11" - -[[CodecZlib]] -deps = ["TranscodingStreams", "Zlib_jll"] -git-tree-sha1 = "ded953804d019afa9a3f98981d99b33e3db7b6da" -uuid = "944b1d66-785c-5afd-91f1-9de20f533193" -version = "0.7.0" - -[[ColorTypes]] -deps = ["FixedPointNumbers", "Random"] -git-tree-sha1 = "4bffea7ed1a9f0f3d1a131bbcd4b925548d75288" -uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" -version = "0.10.9" - -[[Colors]] -deps = ["ColorTypes", "FixedPointNumbers", "InteractiveUtils", "Reexport"] -git-tree-sha1 = "008d6bc68dea6beb6303fdc37188cb557391ebf2" -uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" -version = "0.12.4" - -[[CommonSubexpressions]] -deps = ["MacroTools", "Test"] -git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" -uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" -version = "0.3.0" - -[[Compat]] -deps = ["Base64", "Dates", "DelimitedFiles", "Distributed", "InteractiveUtils", "LibGit2", "Libdl", "LinearAlgebra", "Markdown", "Mmap", "Pkg", "Printf", "REPL", "Random", "SHA", "Serialization", "SharedArrays", "Sockets", "SparseArrays", "Statistics", "Test", "UUIDs", "Unicode"] -git-tree-sha1 = "8cd7b7d1c7f6fcbe7e8743a58adf57788ec7f787" -uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "3.18.0" - -[[CompilerSupportLibraries_jll]] -deps = ["Libdl", "Pkg"] -git-tree-sha1 = "7c4f882c41faa72118841185afc58a2eb00ef612" -uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "0.3.3+0" - -[[CpuId]] -deps = ["Markdown", "Test"] -git-tree-sha1 = "f0464e499ab9973b43c20f8216d088b61fda80c6" -uuid = "adafc99b-e345-5852-983c-f28acb93d879" -version = "0.2.2" - -[[DataAPI]] -git-tree-sha1 = "176e23402d80e7743fc26c19c681bfb11246af32" -uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" -version = "1.3.0" - -[[DataStructures]] -deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "0347f23484a96d56e7096eb1f55c6975be34b11a" -uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.6" - -[[Dates]] -deps = ["Printf"] -uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" - -[[DelimitedFiles]] -deps = ["Mmap"] -uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" - -[[DiffResults]] -deps = ["StaticArrays"] -git-tree-sha1 = "da24935df8e0c6cf28de340b958f6aac88eaa0cc" -uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" -version = "1.0.2" - -[[DiffRules]] -deps = ["NaNMath", "Random", "SpecialFunctions"] -git-tree-sha1 = "eb0c34204c8410888844ada5359ac8b96292cfd1" -uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" -version = "1.0.1" - -[[Distributed]] -deps = ["Random", "Serialization", "Sockets"] -uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" - -[[DocStringExtensions]] -deps = ["LibGit2", "Markdown", "Pkg", "Test"] -git-tree-sha1 = "50ddf44c53698f5e784bbebb3f4b21c5807401b1" -uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" -version = "0.8.3" - -[[ExprTools]] -git-tree-sha1 = "7fce513fcda766962ff67c5596cb16c463dfd371" -uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" -version = "0.1.2" - -[[FillArrays]] -deps = ["LinearAlgebra", "Random", "SparseArrays"] -git-tree-sha1 = "b955c227b0d1413a1a97e2ca0635a5de019d7337" -uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "0.9.6" - -[[FixedPointNumbers]] -deps = ["Statistics"] -git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" -uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" -version = "0.8.4" - -[[ForwardDiff]] -deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "NaNMath", "Random", "SpecialFunctions", "StaticArrays"] -git-tree-sha1 = "1d090099fb82223abc48f7ce176d3f7696ede36d" -uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "0.10.12" - -[[Functors]] -deps = ["MacroTools"] -git-tree-sha1 = "f40adc6422f548176bb4351ebd29e4abf773040a" -uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.1.0" - -[[Future]] -deps = ["Random"] -uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" - -[[GPUArrays]] -deps = ["AbstractFFTs", "Adapt", "LinearAlgebra", "Printf", "Random", "Serialization"] -git-tree-sha1 = "e39817aafb64a0794817a1e5126d042d0b26f700" -uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "6.0.1" - -[[GPUCompiler]] -deps = ["DataStructures", "InteractiveUtils", "LLVM", "Libdl", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "1b19d415fc3581ff0ed2f57875fca16b5190060a" -uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.7.3" - -[[IRTools]] -deps = ["InteractiveUtils", "MacroTools", "Test"] -git-tree-sha1 = "a8d88c05a23b44b4da6cf4fb5659e13ff95e0f47" -uuid = "7869d1d1-7146-5819-86e3-90919afe41df" -version = "0.4.1" - -[[InteractiveUtils]] -deps = ["Markdown"] -uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" - -[[Juno]] -deps = ["Base64", "Logging", "Media", "Profile"] -git-tree-sha1 = "07cb43290a840908a771552911a6274bc6c072c7" -uuid = "e5e0dc1b-0480-54bc-9374-aad01c23163d" -version = "0.8.4" - -[[LLVM]] -deps = ["CEnum", "Libdl", "Printf", "Unicode"] -git-tree-sha1 = "70070a0131f17fcffc5fc004f5f73f037bd217c5" -uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "3.2.0" - -[[LibGit2]] -deps = ["Printf"] -uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" - -[[Libdl]] -uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" - -[[LinearAlgebra]] -deps = ["Libdl"] -uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" - -[[Logging]] -uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" - -[[LoopVectorization]] -deps = ["DocStringExtensions", "LinearAlgebra", "OffsetArrays", "SIMDPirates", "SLEEFPirates", "UnPack", "VectorizationBase"] -git-tree-sha1 = "3242a8f411e19eda9adc49d0b877681975c11375" -uuid = "bdcacae8-1622-11e9-2a5c-532679323890" -version = "0.8.26" - -[[MacroTools]] -deps = ["Markdown", "Random"] -git-tree-sha1 = "f7d2e3f654af75f01ec49be82c231c382214223a" -uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" -version = "0.5.5" - -[[Markdown]] -deps = ["Base64"] -uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" - -[[Media]] -deps = ["MacroTools", "Test"] -git-tree-sha1 = "75a54abd10709c01f1b86b84ec225d26e840ed58" -uuid = "e89f7d12-3494-54d1-8411-f7d8b9ae1f27" -version = "0.5.0" - -[[Missings]] -deps = ["DataAPI"] -git-tree-sha1 = "ed61674a0864832495ffe0a7e889c0da76b0f4c8" -uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" -version = "0.4.4" - -[[Mmap]] -uuid = "a63ad114-7e13-5084-954f-fe012c677804" - -[[MuladdMacro]] -git-tree-sha1 = "c6190f9a7fc5d9d5915ab29f2134421b12d24a68" -uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" -version = "0.2.2" - -[[NNlib]] -deps = ["Libdl", "LinearAlgebra", "Pkg", "Requires", "Statistics"] -git-tree-sha1 = "1ef04283efe283be08e2d0de842f5e5286dd0b7a" -uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.7.5" - -[[NaNMath]] -git-tree-sha1 = "c84c576296d0e2fbb3fc134d3e09086b3ea617cd" -uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" -version = "0.3.4" - -[[OffsetArrays]] -git-tree-sha1 = "3fdfca8a532507d65f39ff0ad34fe81097a55337" -uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.3.0" - -[[OpenSpecFun_jll]] -deps = ["CompilerSupportLibraries_jll", "Libdl", "Pkg"] -git-tree-sha1 = "d51c416559217d974a1113522d5919235ae67a87" -uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" -version = "0.5.3+3" - -[[OrderedCollections]] -git-tree-sha1 = "16c08bf5dba06609fe45e30860092d6fa41fde7b" -uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.3.1" - -[[Pkg]] -deps = ["Dates", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "UUIDs"] -uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" - -[[Printf]] -deps = ["Unicode"] -uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" - -[[Profile]] -deps = ["Printf"] -uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" - -[[REPL]] -deps = ["InteractiveUtils", "Markdown", "Sockets"] -uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" - -[[Random]] -deps = ["Serialization"] -uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" - -[[Reexport]] -deps = ["Pkg"] -git-tree-sha1 = "7b1d07f411bc8ddb7977ec7f377b97b158514fe0" -uuid = "189a3867-3050-52da-a836-e630ba90ab69" -version = "0.2.0" - -[[Requires]] -deps = ["UUIDs"] -git-tree-sha1 = "28faf1c963ca1dc3ec87f166d92982e3c4a1f66d" -uuid = "ae029012-a4dd-5104-9daa-d747884805df" -version = "1.1.0" - -[[SHA]] -uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" - -[[SIMDPirates]] -deps = ["VectorizationBase"] -git-tree-sha1 = "450d163d3279a1d35e3aad3352a5167ef21b84a4" -uuid = "21efa798-c60a-11e8-04d3-e1a92915a26a" -version = "0.8.25" - -[[SLEEFPirates]] -deps = ["Libdl", "SIMDPirates", "VectorizationBase"] -git-tree-sha1 = "67ae90a18aa8c22bf159318300e765fbd89ddf6e" -uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" -version = "0.5.5" - -[[Serialization]] -uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" - -[[SharedArrays]] -deps = ["Distributed", "Mmap", "Random", "Serialization"] -uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" - -[[Sockets]] -uuid = "6462fe0b-24de-5631-8697-dd941f90decc" - -[[SortingAlgorithms]] -deps = ["DataStructures", "Random", "Test"] -git-tree-sha1 = "03f5898c9959f8115e30bc7226ada7d0df554ddd" -uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" -version = "0.3.1" - -[[SparseArrays]] -deps = ["LinearAlgebra", "Random"] -uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - -[[SpecialFunctions]] -deps = ["OpenSpecFun_jll"] -git-tree-sha1 = "d8d8b8a9f4119829410ecd706da4cc8594a1e020" -uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "0.10.3" - -[[StaticArrays]] -deps = ["LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "016d1e1a00fabc556473b07161da3d39726ded35" -uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "0.12.4" - -[[Statistics]] -deps = ["LinearAlgebra", "SparseArrays"] -uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" - -[[StatsBase]] -deps = ["DataAPI", "DataStructures", "LinearAlgebra", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics"] -git-tree-sha1 = "d72a47c47c522e283db774fc8c459dd5ed773710" -uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -version = "0.33.1" - -[[Test]] -deps = ["Distributed", "InteractiveUtils", "Logging", "Random"] -uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" - -[[TimerOutputs]] -deps = ["Printf"] -git-tree-sha1 = "f458ca23ff80e46a630922c555d838303e4b9603" -uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" -version = "0.5.6" - -[[TranscodingStreams]] -deps = ["Random", "Test"] -git-tree-sha1 = "7c53c35547de1c5b9d46a4797cf6d8253807108c" -uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.9.5" - -[[UUIDs]] -deps = ["Random", "SHA"] -uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" - -[[UnPack]] -git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" -uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" -version = "1.0.2" - -[[Unicode]] -uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" - -[[VectorizationBase]] -deps = ["CpuId", "Libdl", "LinearAlgebra"] -git-tree-sha1 = "03e2fbb479a1ea350398195b6fbf439bae0f8260" -uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" -version = "0.12.33" - -[[ZipFile]] -deps = ["Libdl", "Printf", "Zlib_jll"] -git-tree-sha1 = "254975fef2fc526583bb9b7c9420fe66ffe09f2f" -uuid = "a5390f91-8eb1-5f08-bee0-b1d1ffed6cea" -version = "0.9.2" - -[[Zlib_jll]] -deps = ["Libdl", "Pkg"] -git-tree-sha1 = "fdd89e5ab270ea0f2a0174bd9093e557d06d4bfa" -uuid = "83775a58-1f1d-513f-b197-d71354ab007a" -version = "1.2.11+16" - -[[Zygote]] -deps = ["AbstractFFTs", "ArrayLayouts", "ChainRules", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "Future", "IRTools", "InteractiveUtils", "LinearAlgebra", "LoopVectorization", "MacroTools", "NNlib", "NaNMath", "Random", "Requires", "SpecialFunctions", "Statistics", "ZygoteRules"] -git-tree-sha1 = "4eab8971579a9879ce260ac16a7c54935a79edb6" -uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" -version = "0.5.8" - -[[ZygoteRules]] -deps = ["MacroTools"] -git-tree-sha1 = "b3b4882cc9accf6731a08cc39543fbc6b669dca8" -uuid = "700de1a5-db45-46bc-99cf-38207098b444" -version = "0.2.0"