From 294da2351994001612aab08fae92680b081ce10c Mon Sep 17 00:00:00 2001 From: Avik Pal Date: Sun, 11 Aug 2024 14:03:13 -0700 Subject: [PATCH 1/3] perf: common neural network workloads benchmarks --- .../NeuralNetworks/LocalPreferences.toml | 8 + benchmarks/NeuralNetworks/Manifest.toml | 2253 +++++++++++++++++ benchmarks/NeuralNetworks/Project.toml | 16 + benchmarks/NeuralNetworks/simple_networks.jmd | 364 +++ 4 files changed, 2641 insertions(+) create mode 100644 benchmarks/NeuralNetworks/LocalPreferences.toml create mode 100644 benchmarks/NeuralNetworks/Manifest.toml create mode 100644 benchmarks/NeuralNetworks/Project.toml create mode 100644 benchmarks/NeuralNetworks/simple_networks.jmd diff --git a/benchmarks/NeuralNetworks/LocalPreferences.toml b/benchmarks/NeuralNetworks/LocalPreferences.toml new file mode 100644 index 000000000..6e6ef41f7 --- /dev/null +++ b/benchmarks/NeuralNetworks/LocalPreferences.toml @@ -0,0 +1,8 @@ +[LuxCore] +instability_check = "error" + +[LuxLib] +instability_check = "error" + +[Lux] +eltype_mismatch_handling = "error" diff --git a/benchmarks/NeuralNetworks/Manifest.toml b/benchmarks/NeuralNetworks/Manifest.toml new file mode 100644 index 000000000..932a7214b --- /dev/null +++ b/benchmarks/NeuralNetworks/Manifest.toml @@ -0,0 +1,2253 @@ +# This file is machine-generated - editing it directly is not advised + +julia_version = "1.10.4" +manifest_format = "2.0" +project_hash = "837be6258729d0ded52fe315c5680d0b1b2eea6e" + +[[deps.ADTypes]] +git-tree-sha1 = "99a6f5d0ce1c7c6afdb759daa30226f71c54f6b0" +uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" +version = "1.7.1" +weakdeps = ["ChainRulesCore", "EnzymeCore"] + + [deps.ADTypes.extensions] + ADTypesChainRulesCoreExt = "ChainRulesCore" + ADTypesEnzymeCoreExt = "EnzymeCore" + +[[deps.AbstractFFTs]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "d92ad398961a3ed262d8bf04a1a2b8340f915fef" +uuid = "621f4979-c628-5d54-868e-fcf4e3e8185c" +version = "1.5.0" +weakdeps = ["ChainRulesCore", "Test"] + + [deps.AbstractFFTs.extensions] + AbstractFFTsChainRulesCoreExt = "ChainRulesCore" + AbstractFFTsTestExt = "Test" + +[[deps.AbstractTrees]] +git-tree-sha1 = "2d9c9a55f9c93e8887ad391fbae72f8ef55e1177" +uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" +version = "0.4.5" + +[[deps.Accessors]] +deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "MacroTools", "Markdown", "Test"] +git-tree-sha1 = "f61b15be1d76846c0ce31d3fcfac5380ae53db6a" +uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" +version = "0.1.37" + + [deps.Accessors.extensions] + AccessorsAxisKeysExt = "AxisKeys" + AccessorsIntervalSetsExt = "IntervalSets" + AccessorsStaticArraysExt = "StaticArrays" + AccessorsStructArraysExt = "StructArrays" + AccessorsUnitfulExt = "Unitful" + + [deps.Accessors.weakdeps] + AxisKeys = "94b1ba4f-4ee9-5380-92f1-94cde586c3c5" + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" + Requires = "ae029012-a4dd-5104-9daa-d747884805df" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" + +[[deps.Adapt]] +deps = ["LinearAlgebra", "Requires"] +git-tree-sha1 = "6a55b747d1812e699320963ffde36f1ebdda4099" +uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" +version = "4.0.4" +weakdeps = ["StaticArrays"] + + [deps.Adapt.extensions] + AdaptStaticArraysExt = "StaticArrays" + +[[deps.AdaptivePredicates]] +git-tree-sha1 = "7d5da5dd472490d048b081ca1bda4a7821b06456" +uuid = "35492f91-a3bd-45ad-95db-fcad7dcfedb7" +version = "1.1.1" + +[[deps.AliasTables]] +deps = ["PtrArrays", "Random"] +git-tree-sha1 = "9876e1e164b144ca45e9e3198d0b689cadfed9ff" +uuid = "66dad0bd-aa9a-41b7-9441-69ab47430ed8" +version = "1.1.3" + +[[deps.Animations]] +deps = ["Colors"] +git-tree-sha1 = "e81c509d2c8e49592413bfb0bb3b08150056c79d" +uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340" +version = "0.4.1" + +[[deps.ArgCheck]] +git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" +uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" +version = "2.3.0" + +[[deps.ArgTools]] +uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" +version = "1.1.1" + +[[deps.ArrayInterface]] +deps = ["Adapt", "LinearAlgebra"] +git-tree-sha1 = "f54c23a5d304fb87110de62bace7777d59088c34" +uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" +version = "7.15.0" + + [deps.ArrayInterface.extensions] + ArrayInterfaceBandedMatricesExt = "BandedMatrices" + ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" + ArrayInterfaceCUDAExt = "CUDA" + ArrayInterfaceCUDSSExt = "CUDSS" + ArrayInterfaceChainRulesExt = "ChainRules" + ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceReverseDiffExt = "ReverseDiff" + ArrayInterfaceSparseArraysExt = "SparseArrays" + ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" + ArrayInterfaceTrackerExt = "Tracker" + + [deps.ArrayInterface.weakdeps] + BandedMatrices = "aae01518-5342-5314-be14-df237901396f" + BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.Artifacts]] +uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" + +[[deps.Atomix]] +deps = ["UnsafeAtomics"] +git-tree-sha1 = "c06a868224ecba914baa6942988e2f2aade419be" +uuid = "a9b6321e-bd34-4604-b9c9-b65b8de01458" +version = "0.1.0" + +[[deps.Automa]] +deps = ["PrecompileTools", "TranscodingStreams"] +git-tree-sha1 = "014bc22d6c400a7703c0f5dc1fdc302440cf88be" +uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" +version = "1.0.4" + +[[deps.AxisAlgorithms]] +deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] +git-tree-sha1 = "01b8ccb13d68535d73d2b0c23e39bd23155fb712" +uuid = "13072b0f-2c55-5437-9ae7-d433b7a33950" +version = "1.1.0" + +[[deps.AxisArrays]] +deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"] +git-tree-sha1 = "16351be62963a67ac4083f748fdb3cca58bfd52f" +uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" +version = "0.4.7" + +[[deps.BangBang]] +deps = ["Accessors", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires"] +git-tree-sha1 = "e2144b631226d9eeab2d746ca8880b7ccff504ae" +uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" +version = "0.4.3" + + [deps.BangBang.extensions] + BangBangChainRulesCoreExt = "ChainRulesCore" + BangBangDataFramesExt = "DataFrames" + BangBangStaticArraysExt = "StaticArrays" + BangBangStructArraysExt = "StructArrays" + BangBangTablesExt = "Tables" + BangBangTypedTablesExt = "TypedTables" + + [deps.BangBang.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" + TypedTables = "9d95f2ec-7b3d-5a63-8d20-e2491e220bb9" + +[[deps.Base64]] +uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" + +[[deps.Baselet]] +git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" +uuid = "9718e550-a3fa-408a-8086-8db961cd8217" +version = "0.1.1" + +[[deps.BenchmarkTools]] +deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] +git-tree-sha1 = "f1dff6729bc61f4d49e140da1af55dcd1ac97b2f" +uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +version = "1.5.0" + +[[deps.BitTwiddlingConvenienceFunctions]] +deps = ["Static"] +git-tree-sha1 = "f21cfd4950cb9f0587d5067e69405ad2acd27b87" +uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" +version = "0.1.6" + +[[deps.Bzip2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" +version = "1.0.8+1" + +[[deps.CEnum]] +git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" +uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" +version = "0.5.0" + +[[deps.CPUSummary]] +deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] +git-tree-sha1 = "5a97e67919535d6841172016c9530fd69494e5ec" +uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" +version = "0.2.6" + +[[deps.CRC32c]] +uuid = "8bf52ea8-c179-5cab-976a-9e18b702a9bc" + +[[deps.CRlibm_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e329286945d0cfc04456972ea732551869af1cfc" +uuid = "4e9b3aee-d8a1-5a3d-ad8b-7d824db253f0" +version = "1.0.1+0" + +[[deps.Cairo]] +deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] +git-tree-sha1 = "7b6ad8c35f4bc3bca8eb78127c8b99719506a5fb" +uuid = "159f3aea-2a34-519c-b102-8c37f9878175" +version = "1.1.0" + +[[deps.CairoMakie]] +deps = ["CRC32c", "Cairo", "Cairo_jll", "Colors", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools"] +git-tree-sha1 = "3a6f8462053d199e6c81a83c7d22a9b8314c716a" +uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +version = "0.12.6" + +[[deps.Cairo_jll]] +deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] +git-tree-sha1 = "a2f1c8c668c8e3cb4cca4e57a8efdb09067bb3fd" +uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" +version = "1.18.0+2" + +[[deps.ChainRules]] +deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] +git-tree-sha1 = "227985d885b4dbce5e18a96f9326ea1e836e5a03" +uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" +version = "1.69.0" + +[[deps.ChainRulesCore]] +deps = ["Compat", "LinearAlgebra"] +git-tree-sha1 = "71acdbf594aab5bbb2cec89b208c41b4c411e49f" +uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" +version = "1.24.0" +weakdeps = ["SparseArrays"] + + [deps.ChainRulesCore.extensions] + ChainRulesCoreSparseArraysExt = "SparseArrays" + +[[deps.CloseOpenIntervals]] +deps = ["Static", "StaticArrayInterface"] +git-tree-sha1 = "05ba0d07cd4fd8b7a39541e31a7b0254704ea581" +uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" +version = "0.1.13" + +[[deps.ColorBrewer]] +deps = ["Colors", "JSON", "Test"] +git-tree-sha1 = "61c5334f33d91e570e1d0c3eb5465835242582c4" +uuid = "a2cac450-b92f-5266-8821-25eda20663c8" +version = "0.4.0" + +[[deps.ColorSchemes]] +deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] +git-tree-sha1 = "b5278586822443594ff615963b0c09755771b3e0" +uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" +version = "3.26.0" + +[[deps.ColorTypes]] +deps = ["FixedPointNumbers", "Random"] +git-tree-sha1 = "b10d0b65641d57b8b4d5e234446582de5047050d" +uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" +version = "0.11.5" + +[[deps.ColorVectorSpace]] +deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] +git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" +version = "0.10.0" +weakdeps = ["SpecialFunctions"] + + [deps.ColorVectorSpace.extensions] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.Colors]] +deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] +git-tree-sha1 = "362a287c3aa50601b0bc359053d5c2468f0e7ce0" +uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" +version = "0.12.11" + +[[deps.CommonSubexpressions]] +deps = ["MacroTools", "Test"] +git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" +uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" +version = "0.3.0" + +[[deps.CommonWorldInvalidations]] +git-tree-sha1 = "ae52d1c52048455e85a387fbee9be553ec2b68d0" +uuid = "f70d9fcc-98c5-4d4a-abd7-e4cdeebd8ca8" +version = "1.0.0" + +[[deps.Compat]] +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "8ae8d32e09f0dcf42a36b90d4e17f5dd2e4c4215" +uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" +version = "4.16.0" +weakdeps = ["Dates", "LinearAlgebra"] + + [deps.Compat.extensions] + CompatLinearAlgebraExt = "LinearAlgebra" + +[[deps.CompilerSupportLibraries_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" +version = "1.1.1+0" + +[[deps.CompositionsBase]] +git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" +uuid = "a33af91c-f02d-484b-be07-31d278c5ca2b" +version = "0.1.2" +weakdeps = ["InverseFunctions"] + + [deps.CompositionsBase.extensions] + CompositionsBaseInverseFunctionsExt = "InverseFunctions" + +[[deps.ConcreteStructs]] +git-tree-sha1 = "f749037478283d372048690eb3b5f92a79432b34" +uuid = "2569d6c7-a4a2-43d3-a901-331e8e4be471" +version = "0.2.3" + +[[deps.ConstructionBase]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "d8a9c0b6ac2d9081bf76324b39c78ca3ce4f0c98" +uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" +version = "1.5.6" +weakdeps = ["IntervalSets", "StaticArrays"] + + [deps.ConstructionBase.extensions] + ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseStaticArraysExt = "StaticArrays" + +[[deps.ContextVariablesX]] +deps = ["Compat", "Logging", "UUIDs"] +git-tree-sha1 = "25cc3803f1030ab855e383129dcd3dc294e322cc" +uuid = "6add18c4-b38d-439d-96f6-d6bc489c04c5" +version = "0.1.3" + +[[deps.Contour]] +git-tree-sha1 = "439e35b0b36e2e5881738abc8857bd92ad6ff9a8" +uuid = "d38c429a-6771-53c6-b99e-75d170b6e991" +version = "0.6.3" + +[[deps.CpuId]] +deps = ["Markdown"] +git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" +uuid = "adafc99b-e345-5852-983c-f28acb93d879" +version = "0.3.1" + +[[deps.DataAPI]] +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" +version = "1.16.0" + +[[deps.DataStructures]] +deps = ["Compat", "InteractiveUtils", "OrderedCollections"] +git-tree-sha1 = "1d0a14036acb104d9e89698bd408f63ab58cdc82" +uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" +version = "0.18.20" + +[[deps.DataValueInterfaces]] +git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" +uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" +version = "1.0.0" + +[[deps.Dates]] +deps = ["Printf"] +uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" + +[[deps.DefineSingletons]] +git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" +uuid = "244e2a9f-e319-4986-a169-4d1fe445cd52" +version = "0.1.2" + +[[deps.DelaunayTriangulation]] +deps = ["AdaptivePredicates", "EnumX", "ExactPredicates", "Random"] +git-tree-sha1 = "b5f1c6532d2ea71e99b74231b0a3d53fba846ced" +uuid = "927a84f5-c5f4-47a5-9785-b46e178433df" +version = "1.1.3" + +[[deps.DelimitedFiles]] +deps = ["Mmap"] +git-tree-sha1 = "9e2f36d3c96a820c678f2f1f1782582fcf685bae" +uuid = "8bb1440f-4735-579b-a4ab-409b98df4dab" +version = "1.9.1" + +[[deps.DiffResults]] +deps = ["StaticArraysCore"] +git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" +uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" +version = "1.1.0" + +[[deps.DiffRules]] +deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] +git-tree-sha1 = "23163d55f885173722d1e4cf0f6110cdbaf7e272" +uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" +version = "1.15.1" + +[[deps.DispatchDoctor]] +deps = ["MacroTools", "Preferences"] +git-tree-sha1 = "c2acd1de2c4c357928f9fb6b60b402d914621378" +uuid = "8d63f2c5-f18a-4cf2-ba9d-b3f60fc568c8" +version = "0.4.14" +weakdeps = ["ChainRulesCore", "EnzymeCore"] + + [deps.DispatchDoctor.extensions] + DispatchDoctorChainRulesCoreExt = "ChainRulesCore" + DispatchDoctorEnzymeCoreExt = "EnzymeCore" + +[[deps.Distributed]] +deps = ["Random", "Serialization", "Sockets"] +uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" + +[[deps.Distributions]] +deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] +git-tree-sha1 = "0e0a1264b0942f1f3abb2b30891f2a590cc652ac" +uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" +version = "0.25.110" + + [deps.Distributions.extensions] + DistributionsChainRulesCoreExt = "ChainRulesCore" + DistributionsDensityInterfaceExt = "DensityInterface" + DistributionsTestExt = "Test" + + [deps.Distributions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + DensityInterface = "b429d917-457f-4dbc-8f4c-0cc954292b1d" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.DocStringExtensions]] +deps = ["LibGit2"] +git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +version = "0.9.3" + +[[deps.Downloads]] +deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] +uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" +version = "1.6.0" + +[[deps.EarCut_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "e3290f2d49e661fbd94046d7e3726ffcb2d41053" +uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" +version = "2.2.4+0" + +[[deps.EnumX]] +git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" +uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" +version = "1.0.4" + +[[deps.Enzyme]] +deps = ["CEnum", "EnzymeCore", "Enzyme_jll", "GPUCompiler", "LLVM", "Libdl", "LinearAlgebra", "ObjectFile", "Preferences", "Printf", "Random"] +git-tree-sha1 = "e43660bc5ee8376555a4b4b151ed5f3e9ada0075" +uuid = "7da242da-08ed-463a-9acd-ee780be4f1d9" +version = "0.12.31" + + [deps.Enzyme.extensions] + EnzymeBFloat16sExt = "BFloat16s" + EnzymeChainRulesCoreExt = "ChainRulesCore" + EnzymeLogExpFunctionsExt = "LogExpFunctions" + EnzymeSpecialFunctionsExt = "SpecialFunctions" + EnzymeStaticArraysExt = "StaticArrays" + + [deps.Enzyme.weakdeps] + BFloat16s = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" + SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" + StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" + +[[deps.EnzymeCore]] +git-tree-sha1 = "8f205a601760f4798a10f138c3940f0451d95188" +uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" +version = "0.7.8" +weakdeps = ["Adapt"] + + [deps.EnzymeCore.extensions] + AdaptExt = "Adapt" + +[[deps.Enzyme_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "97dcff677b657a7de2d9ae1d80d672ad55004c68" +uuid = "7cc45869-7501-5eee-bdea-0790c847d4ef" +version = "0.0.144+0" + +[[deps.ExactPredicates]] +deps = ["IntervalArithmetic", "Random", "StaticArrays"] +git-tree-sha1 = "b3f2ff58735b5f024c392fde763f29b057e4b025" +uuid = "429591f6-91af-11e9-00e2-59fbe8cec110" +version = "2.2.8" + +[[deps.Expat_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7" +uuid = "2e619515-83b5-522b-bb60-26c02a35a201" +version = "2.6.2+0" + +[[deps.ExprTools]] +git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" +uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" +version = "0.1.10" + +[[deps.Extents]] +git-tree-sha1 = "94997910aca72897524d2237c41eb852153b0f65" +uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" +version = "0.1.3" + +[[deps.FFMPEG_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] +git-tree-sha1 = "ab3f7e1819dba9434a3a5126510c8fda3a4e7000" +uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" +version = "6.1.1+0" + +[[deps.FFTW]] +deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] +git-tree-sha1 = "4820348781ae578893311153d69049a93d05f39d" +uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" +version = "1.8.0" + +[[deps.FFTW_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" +uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" +version = "3.3.10+0" + +[[deps.FLoops]] +deps = ["BangBang", "Compat", "FLoopsBase", "InitialValues", "JuliaVariables", "MLStyle", "Serialization", "Setfield", "Transducers"] +git-tree-sha1 = "0a2e5873e9a5f54abb06418d57a8df689336a660" +uuid = "cc61a311-1640-44b5-9fba-1b764f453329" +version = "0.2.2" + +[[deps.FLoopsBase]] +deps = ["ContextVariablesX"] +git-tree-sha1 = "656f7a6859be8673bf1f35da5670246b923964f7" +uuid = "b9860ae5-e623-471e-878b-f6a53c775ea6" +version = "0.1.1" + +[[deps.FastClosures]] +git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" +uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" +version = "0.3.2" + +[[deps.FileIO]] +deps = ["Pkg", "Requires", "UUIDs"] +git-tree-sha1 = "82d8afa92ecf4b52d78d869f038ebfb881267322" +uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" +version = "1.16.3" + +[[deps.FilePaths]] +deps = ["FilePathsBase", "MacroTools", "Reexport", "Requires"] +git-tree-sha1 = "919d9412dbf53a2e6fe74af62a73ceed0bce0629" +uuid = "8fc22ac5-c921-52a6-82fd-178b2807b824" +version = "0.8.3" + +[[deps.FilePathsBase]] +deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] +git-tree-sha1 = "9f00e42f8d99fdde64d40c8ea5d14269a2e2c1aa" +uuid = "48062228-2e41-5def-b9a4-89aafe57970f" +version = "0.9.21" + +[[deps.FileWatching]] +uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" + +[[deps.FillArrays]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "0653c0a2396a6da5bc4766c43041ef5fd3efbe57" +uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" +version = "1.11.0" +weakdeps = ["PDMats", "SparseArrays", "Statistics"] + + [deps.FillArrays.extensions] + FillArraysPDMatsExt = "PDMats" + FillArraysSparseArraysExt = "SparseArrays" + FillArraysStatisticsExt = "Statistics" + +[[deps.FixedPointNumbers]] +deps = ["Statistics"] +git-tree-sha1 = "05882d6995ae5c12bb5f36dd2ed3f61c98cbb172" +uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" +version = "0.8.5" + +[[deps.Flux]] +deps = ["Adapt", "ChainRulesCore", "Compat", "Functors", "LinearAlgebra", "MLUtils", "MacroTools", "NNlib", "OneHotArrays", "Optimisers", "Preferences", "ProgressLogging", "Random", "Reexport", "SparseArrays", "SpecialFunctions", "Statistics", "Zygote"] +git-tree-sha1 = "fbf100b4bed74c9b6fac0ebd1031e04977d35b3b" +uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" +version = "0.14.19" + + [deps.Flux.extensions] + FluxAMDGPUExt = "AMDGPU" + FluxCUDAExt = "CUDA" + FluxCUDAcuDNNExt = ["CUDA", "cuDNN"] + FluxEnzymeExt = "Enzyme" + FluxMetalExt = "Metal" + + [deps.Flux.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" + +[[deps.Fontconfig_jll]] +deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"] +git-tree-sha1 = "db16beca600632c95fc8aca29890d83788dd8b23" +uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" +version = "2.13.96+0" + +[[deps.Format]] +git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc" +uuid = "1fa38f19-a742-5d3f-a2b9-30dd87b9d5f8" +version = "1.3.7" + +[[deps.ForwardDiff]] +deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] +git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" +uuid = "f6369f11-7733-5829-9624-2563aa707210" +version = "0.10.36" +weakdeps = ["StaticArrays"] + + [deps.ForwardDiff.extensions] + ForwardDiffStaticArraysExt = "StaticArrays" + +[[deps.FreeType]] +deps = ["CEnum", "FreeType2_jll"] +git-tree-sha1 = "907369da0f8e80728ab49c1c7e09327bf0d6d999" +uuid = "b38be410-82b0-50bf-ab77-7b57e271db43" +version = "4.1.1" + +[[deps.FreeType2_jll]] +deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "5c1d8ae0efc6c2e7b1fc502cbe25def8f661b7bc" +uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" +version = "2.13.2+0" + +[[deps.FreeTypeAbstraction]] +deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] +git-tree-sha1 = "2493cdfd0740015955a8e46de4ef28f49460d8bc" +uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" +version = "0.10.3" + +[[deps.FriBidi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1ed150b39aebcc805c26b93a8d0122c940f64ce2" +uuid = "559328eb-81f9-559d-9380-de523a88c83c" +version = "1.0.14+0" + +[[deps.Functors]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "64d8e93700c7a3f28f717d265382d52fac9fa1c1" +uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" +version = "0.4.12" + +[[deps.Future]] +deps = ["Random"] +uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" + +[[deps.GPUArrays]] +deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] +git-tree-sha1 = "a74c3f1cf56a3dfcdef0605f8cdb7015926aae30" +uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" +version = "10.3.0" + +[[deps.GPUArraysCore]] +deps = ["Adapt"] +git-tree-sha1 = "ec632f177c0d990e64d955ccc1b8c04c485a0950" +uuid = "46192b85-c4d5-4398-a991-12ede77f4527" +version = "0.1.6" + +[[deps.GPUCompiler]] +deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Preferences", "Scratch", "Serialization", "TOML", "TimerOutputs", "UUIDs"] +git-tree-sha1 = "ab29216184312f99ff957b32cd63c2fe9c928b91" +uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" +version = "0.26.7" + +[[deps.GeoInterface]] +deps = ["Extents"] +git-tree-sha1 = "9fff8990361d5127b770e3454488360443019bb3" +uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" +version = "1.3.5" + +[[deps.GeometryBasics]] +deps = ["EarCut_jll", "Extents", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "b62f2b2d76cee0d61a2ef2b3118cd2a3215d3134" +uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" +version = "0.4.11" + +[[deps.Gettext_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] +git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" +uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" +version = "0.21.0+0" + +[[deps.Glib_jll]] +deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "7c82e6a6cd34e9d935e9aa4051b66c6ff3af59ba" +uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" +version = "2.80.2+0" + +[[deps.Graphics]] +deps = ["Colors", "LinearAlgebra", "NaNMath"] +git-tree-sha1 = "d61890399bc535850c4bf08e4e0d3a7ad0f21cbd" +uuid = "a2bd30eb-e257-5431-a919-1863eab51364" +version = "1.1.2" + +[[deps.Graphite2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" +version = "1.3.14+0" + +[[deps.GridLayoutBase]] +deps = ["GeometryBasics", "InteractiveUtils", "Observables"] +git-tree-sha1 = "fc713f007cff99ff9e50accba6373624ddd33588" +uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" +version = "0.11.0" + +[[deps.Grisu]] +git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" +uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" +version = "1.0.2" + +[[deps.HarfBuzz_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] +git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" +version = "2.8.1+1" + +[[deps.HostCPUFeatures]] +deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] +git-tree-sha1 = "8e070b599339d622e9a081d17230d74a5c473293" +uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" +version = "0.1.17" + +[[deps.Hwloc]] +deps = ["CEnum", "Hwloc_jll", "Printf"] +git-tree-sha1 = "6a3d80f31ff87bc94ab22a7b8ec2f263f9a6a583" +uuid = "0e44f5e4-bd66-52a0-8798-143a42290a1d" +version = "3.3.0" +weakdeps = ["AbstractTrees"] + + [deps.Hwloc.extensions] + HwlocTrees = "AbstractTrees" + +[[deps.Hwloc_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "5e19e1e4fa3e71b774ce746274364aef0234634e" +uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" +version = "2.11.1+0" + +[[deps.HypergeometricFunctions]] +deps = ["LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] +git-tree-sha1 = "7c4195be1649ae622304031ed46a2f4df989f1eb" +uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" +version = "0.3.24" + +[[deps.IRTools]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "950c3717af761bc3ff906c2e8e52bd83390b6ec2" +uuid = "7869d1d1-7146-5819-86e3-90919afe41df" +version = "0.4.14" + +[[deps.IfElse]] +git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" +uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" +version = "0.1.1" + +[[deps.ImageAxes]] +deps = ["AxisArrays", "ImageBase", "ImageCore", "Reexport", "SimpleTraits"] +git-tree-sha1 = "2e4520d67b0cef90865b3ef727594d2a58e0e1f8" +uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac" +version = "0.6.11" + +[[deps.ImageBase]] +deps = ["ImageCore", "Reexport"] +git-tree-sha1 = "eb49b82c172811fd2c86759fa0553a2221feb909" +uuid = "c817782e-172a-44cc-b673-b171935fbb9e" +version = "0.1.7" + +[[deps.ImageCore]] +deps = ["ColorVectorSpace", "Colors", "FixedPointNumbers", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "PrecompileTools", "Reexport"] +git-tree-sha1 = "b2a7eaa169c13f5bcae8131a83bc30eff8f71be0" +uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" +version = "0.10.2" + +[[deps.ImageIO]] +deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] +git-tree-sha1 = "437abb322a41d527c197fa800455f79d414f0a3c" +uuid = "82e4d734-157c-48bb-816b-45c225c6df19" +version = "0.6.8" + +[[deps.ImageMetadata]] +deps = ["AxisArrays", "ImageAxes", "ImageBase", "ImageCore"] +git-tree-sha1 = "355e2b974f2e3212a75dfb60519de21361ad3cb7" +uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49" +version = "0.9.9" + +[[deps.Imath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "0936ba688c6d201805a83da835b55c61a180db52" +uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" +version = "3.1.11+0" + +[[deps.IndirectArrays]] +git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" +uuid = "9b13fd28-a010-5f03-acff-a1bbcff69959" +version = "1.0.0" + +[[deps.Inflate]] +git-tree-sha1 = "d1b1b796e47d94588b3757fe84fbf65a5ec4a80d" +uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" +version = "0.1.5" + +[[deps.InitialValues]] +git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" +uuid = "22cec73e-a1b8-11e9-2c92-598750a2cf9c" +version = "0.3.1" + +[[deps.IntelOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "14eb2b542e748570b56446f4c50fbfb2306ebc45" +uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" +version = "2024.2.0+0" + +[[deps.InteractiveUtils]] +deps = ["Markdown"] +uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" + +[[deps.Interpolations]] +deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] +git-tree-sha1 = "88a101217d7cb38a7b481ccd50d21876e1d1b0e0" +uuid = "a98d9a8b-a2ab-59e6-89dd-64a1c18fca59" +version = "0.15.1" +weakdeps = ["Unitful"] + + [deps.Interpolations.extensions] + InterpolationsUnitfulExt = "Unitful" + +[[deps.IntervalArithmetic]] +deps = ["CRlibm_jll", "MacroTools", "RoundingEmulator"] +git-tree-sha1 = "433b0bb201cd76cb087b017e49244f10394ebe9c" +uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" +version = "0.22.14" + + [deps.IntervalArithmetic.extensions] + IntervalArithmeticDiffRulesExt = "DiffRules" + IntervalArithmeticForwardDiffExt = "ForwardDiff" + IntervalArithmeticRecipesBaseExt = "RecipesBase" + + [deps.IntervalArithmetic.weakdeps] + DiffRules = "b552c78f-8df3-52c6-915a-8e097449b14b" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" + +[[deps.IntervalSets]] +git-tree-sha1 = "dba9ddf07f77f60450fe5d2e2beb9854d9a49bd0" +uuid = "8197267c-284f-5f27-9208-e0e47529a953" +version = "0.7.10" + + [deps.IntervalSets.extensions] + IntervalSetsRandomExt = "Random" + IntervalSetsRecipesBaseExt = "RecipesBase" + IntervalSetsStatisticsExt = "Statistics" + + [deps.IntervalSets.weakdeps] + Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" + Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + +[[deps.InverseFunctions]] +git-tree-sha1 = "2787db24f4e03daf859c6509ff87764e4182f7d1" +uuid = "3587e190-3f89-42d0-90ee-14403ec27112" +version = "0.1.16" +weakdeps = ["Dates", "Test"] + + [deps.InverseFunctions.extensions] + InverseFunctionsDatesExt = "Dates" + InverseFunctionsTestExt = "Test" + +[[deps.IrrationalConstants]] +git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" +version = "0.2.2" + +[[deps.Isoband]] +deps = ["isoband_jll"] +git-tree-sha1 = "f9b6d97355599074dc867318950adaa6f9946137" +uuid = "f1662d9f-8043-43de-a69a-05efc1cc6ff4" +version = "0.1.1" + +[[deps.IterTools]] +git-tree-sha1 = "42d5f897009e7ff2cf88db414a389e5ed1bdd023" +uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" +version = "1.10.0" + +[[deps.IteratorInterfaceExtensions]] +git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" +uuid = "82899510-4779-5014-852e-03e436cf321d" +version = "1.0.0" + +[[deps.JLLWrappers]] +deps = ["Artifacts", "Preferences"] +git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" +version = "1.5.0" + +[[deps.JSON]] +deps = ["Dates", "Mmap", "Parsers", "Unicode"] +git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" +version = "0.21.4" + +[[deps.JpegTurbo]] +deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] +git-tree-sha1 = "fa6d0bcff8583bac20f1ffa708c3913ca605c611" +uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" +version = "0.1.5" + +[[deps.JpegTurbo_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "c84a835e1a09b289ffcd2271bf2a337bbdda6637" +uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" +version = "3.0.3+0" + +[[deps.JuliaVariables]] +deps = ["MLStyle", "NameResolution"] +git-tree-sha1 = "49fb3cb53362ddadb4415e9b73926d6b40709e70" +uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec" +version = "0.2.4" + +[[deps.KernelAbstractions]] +deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "0fac59881e91c7233a9b0d47f4b7d9432e534f0f" +uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" +version = "0.9.23" +weakdeps = ["EnzymeCore"] + + [deps.KernelAbstractions.extensions] + EnzymeExt = "EnzymeCore" + +[[deps.KernelDensity]] +deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] +git-tree-sha1 = "7d703202e65efa1369de1279c162b915e245eed1" +uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" +version = "0.6.9" + +[[deps.LAME_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "170b660facf5df5de098d866564877e119141cbd" +uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" +version = "3.100.2+0" + +[[deps.LLVM]] +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] +git-tree-sha1 = "2470e69781ddd70b8878491233cd09bc1bd7fc96" +uuid = "929cbde3-209d-540e-8aea-75f648917ca0" +version = "8.1.0" + + [deps.LLVM.extensions] + BFloat16sExt = "BFloat16s" + + [deps.LLVM.weakdeps] + BFloat16s = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" + +[[deps.LLVMExtra_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "597d1c758c9ae5d985ba4202386a607c675ee700" +uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" +version = "0.0.31+0" + +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e16271d212accd09d52ee0ae98956b8a05c4b626" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "17.0.6+0" + +[[deps.LZO_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "70c5da094887fd2cae843b8db33920bac4b6f07d" +uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" +version = "2.10.2+0" + +[[deps.LaTeXStrings]] +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" +version = "1.3.1" + +[[deps.LayoutPointers]] +deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "a9eaadb366f5493a5654e843864c13d8b107548c" +uuid = "10f19ff3-798f-405d-979b-55457f8fc047" +version = "0.1.17" + +[[deps.LazyArtifacts]] +deps = ["Artifacts", "Pkg"] +uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" + +[[deps.LazyModules]] +git-tree-sha1 = "a560dd966b386ac9ae60bdd3a3d3a326062d3c3e" +uuid = "8cdb02fc-e678-4876-92c5-9defec4f444e" +version = "0.3.1" + +[[deps.LibCURL]] +deps = ["LibCURL_jll", "MozillaCACerts_jll"] +uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" +version = "0.6.4" + +[[deps.LibCURL_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" +version = "8.4.0+0" + +[[deps.LibGit2]] +deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" + +[[deps.LibGit2_jll]] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" +version = "1.6.4+0" + +[[deps.LibSSH2_jll]] +deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" +version = "1.11.0+1" + +[[deps.Libdl]] +uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" + +[[deps.Libffi_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" +version = "3.2.2+1" + +[[deps.Libgcrypt_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll"] +git-tree-sha1 = "9fd170c4bbfd8b935fdc5f8b7aa33532c991a673" +uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" +version = "1.8.11+0" + +[[deps.Libgpg_error_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "fbb1f2bef882392312feb1ede3615ddc1e9b99ed" +uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" +version = "1.49.0+0" + +[[deps.Libiconv_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" +version = "1.17.0+0" + +[[deps.Libmount_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "0c4f9c4f1a50d8f35048fa0532dabbadf702f81e" +uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" +version = "2.40.1+0" + +[[deps.Libuuid_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "5ee6203157c120d79034c748a2acba45b82b8807" +uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" +version = "2.40.1+0" + +[[deps.LinearAlgebra]] +deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] +uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" + +[[deps.LogExpFunctions]] +deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] +git-tree-sha1 = "a2d09619db4e765091ee5c6ffe8872849de0feea" +uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" +version = "0.3.28" + + [deps.LogExpFunctions.extensions] + LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" + LogExpFunctionsChangesOfVariablesExt = "ChangesOfVariables" + LogExpFunctionsInverseFunctionsExt = "InverseFunctions" + + [deps.LogExpFunctions.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ChangesOfVariables = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + +[[deps.Logging]] +uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" + +[[deps.LoopVectorization]] +deps = ["ArrayInterface", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] +git-tree-sha1 = "8084c25a250e00ae427a379a5b607e7aed96a2dd" +uuid = "bdcacae8-1622-11e9-2a5c-532679323890" +version = "0.12.171" +weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] + + [deps.LoopVectorization.extensions] + ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] + SpecialFunctionsExt = "SpecialFunctions" + +[[deps.LossFunctions]] +deps = ["Markdown", "Requires", "Statistics"] +git-tree-sha1 = "df9da07efb9b05ca7ef701acec891ee8f73c99e2" +uuid = "30fc2ffe-d236-52d8-8643-a9d8f7c094a7" +version = "0.11.1" + + [deps.LossFunctions.extensions] + LossFunctionsCategoricalArraysExt = "CategoricalArrays" + + [deps.LossFunctions.weakdeps] + CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597" + +[[deps.Lux]] +deps = ["ADTypes", "Adapt", "ArgCheck", "ArrayInterface", "ChainRulesCore", "Compat", "ConcreteStructs", "ConstructionBase", "DispatchDoctor", "EnzymeCore", "FastClosures", "ForwardDiff", "Functors", "GPUArraysCore", "LinearAlgebra", "LossFunctions", "LuxCore", "LuxDeviceUtils", "LuxLib", "MLDataDevices", "MacroTools", "Markdown", "NNlib", "Optimisers", "Preferences", "Random", "Reexport", "Setfield", "Static", "Statistics", "UnrolledUtilities", "WeightInitializers"] +git-tree-sha1 = "1f3dceada0c326ca769b73b2b267007d19f3be30" +uuid = "b2108857-7c20-44ae-9111-449ecde12c47" +version = "0.5.65" + + [deps.Lux.extensions] + LuxComponentArraysExt = "ComponentArrays" + LuxDynamicExpressionsExt = "DynamicExpressions" + LuxEnzymeExt = "Enzyme" + LuxFluxExt = "Flux" + LuxMLUtilsExt = "MLUtils" + LuxMPIExt = "MPI" + LuxMPINCCLExt = ["CUDA", "MPI", "NCCL"] + LuxReverseDiffExt = ["FunctionWrappers", "ReverseDiff"] + LuxSimpleChainsExt = "SimpleChains" + LuxTrackerExt = "Tracker" + LuxZygoteExt = "Zygote" + + [deps.Lux.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" + DynamicExpressions = "a40a106e-89c9-4ca8-8020-a735e8728b6b" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" + FunctionWrappers = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" + MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + NCCL = "3fe64909-d7a1-4096-9b7d-7a0f12cf0f6b" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SimpleChains = "de6bee2f-e2f4-4ec7-b6ed-219cc6f6e9e5" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.LuxCore]] +deps = ["Compat", "DispatchDoctor", "Functors", "Random", "Setfield"] +git-tree-sha1 = "c428313de9a6347e1b9c17d70438881aecc4275d" +uuid = "bb33d45b-7691-41d6-9220-0943567d0623" +version = "0.1.24" + + [deps.LuxCore.extensions] + LuxCoreArrayInterfaceReverseDiffExt = ["ArrayInterface", "ReverseDiff"] + LuxCoreArrayInterfaceTrackerExt = ["ArrayInterface", "Tracker"] + LuxCoreChainRulesCoreExt = "ChainRulesCore" + LuxCoreEnzymeCoreExt = "EnzymeCore" + LuxCoreMLDataDevicesExt = "MLDataDevices" + + [deps.LuxCore.weakdeps] + ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + MLDataDevices = "7e8f7934-dd98-4c1a-8fe8-92b47a384d40" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.LuxDeviceUtils]] +deps = ["Adapt", "ChainRulesCore", "Functors", "LuxCore", "Preferences", "Random", "UnrolledUtilities"] +git-tree-sha1 = "494db99a113c3a5a0b637d788a65494732f4558e" +uuid = "34f89e08-e1d5-43b4-8944-0b49ac560553" +version = "0.1.27" + + [deps.LuxDeviceUtils.extensions] + LuxDeviceUtilsAMDGPUExt = "AMDGPU" + LuxDeviceUtilsCUDAExt = "CUDA" + LuxDeviceUtilsFillArraysExt = "FillArrays" + LuxDeviceUtilsGPUArraysExt = "GPUArrays" + LuxDeviceUtilsLuxCUDAExt = "LuxCUDA" + LuxDeviceUtilsMetalExt = ["GPUArrays", "Metal"] + LuxDeviceUtilsRecursiveArrayToolsExt = "RecursiveArrayTools" + LuxDeviceUtilsReverseDiffExt = "ReverseDiff" + LuxDeviceUtilsSparseArraysExt = "SparseArrays" + LuxDeviceUtilsTrackerExt = "Tracker" + LuxDeviceUtilsZygoteExt = "Zygote" + LuxDeviceUtilsoneAPIExt = ["GPUArrays", "oneAPI"] + + [deps.LuxDeviceUtils.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" + GPUArrays = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" + LuxCUDA = "d0bbae9a-e099-4d5b-a835-1c6931763bda" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + oneAPI = "8f75cd03-7ff8-4ecb-9b8f-daf728133b1b" + +[[deps.LuxLib]] +deps = ["ArrayInterface", "ChainRulesCore", "Compat", "CpuId", "DispatchDoctor", "EnzymeCore", "FastClosures", "ForwardDiff", "Hwloc", "KernelAbstractions", "LinearAlgebra", "LoopVectorization", "LuxCore", "MLDataDevices", "Markdown", "NNlib", "Octavian", "Polyester", "Random", "Reexport", "SLEEFPirates", "Static", "StaticArraysCore", "Statistics", "UnrolledUtilities"] +git-tree-sha1 = "a976912604c6568daacd5960c5c84c91311a1773" +uuid = "82251201-b29d-42c6-8e01-566dec8acb11" +version = "0.3.45" + + [deps.LuxLib.extensions] + LuxLibAppleAccelerateExt = "AppleAccelerate" + LuxLibBLISBLASExt = "BLISBLAS" + LuxLibCUDAExt = "CUDA" + LuxLibMKLExt = "MKL" + LuxLibReverseDiffExt = "ReverseDiff" + LuxLibTrackerAMDGPUExt = ["AMDGPU", "Tracker"] + LuxLibTrackerExt = "Tracker" + LuxLibcuDNNExt = ["CUDA", "cuDNN"] + + [deps.LuxLib.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + AppleAccelerate = "13e28ba4-7ad8-5781-acae-3021b1ed3924" + BLISBLAS = "6f275bd8-fec0-4d39-945b-7e95a765fa1e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + MKL = "33e6dc65-8f57-5167-99aa-e5a354878fb2" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" + +[[deps.MKL_jll]] +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] +git-tree-sha1 = "f046ccd0c6db2832a9f639e2c669c6fe867e5f4f" +uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" +version = "2024.2.0+0" + +[[deps.MLDataDevices]] +deps = ["Adapt", "ChainRulesCore", "Functors", "Preferences", "Random", "UnrolledUtilities"] +git-tree-sha1 = "0999f1ff93d3bca8c8da74470b4c8758b3cedadf" +uuid = "7e8f7934-dd98-4c1a-8fe8-92b47a384d40" +version = "1.0.1" + + [deps.MLDataDevices.extensions] + MLDataDevicesAMDGPUExt = "AMDGPU" + MLDataDevicesCUDAExt = "CUDA" + MLDataDevicesFillArraysExt = "FillArrays" + MLDataDevicesGPUArraysExt = "GPUArrays" + MLDataDevicesMetalExt = ["GPUArrays", "Metal"] + MLDataDevicesRecursiveArrayToolsExt = "RecursiveArrayTools" + MLDataDevicesReverseDiffExt = "ReverseDiff" + MLDataDevicesSparseArraysExt = "SparseArrays" + MLDataDevicesTrackerExt = "Tracker" + MLDataDevicesZygoteExt = "Zygote" + MLDataDevicescuDNNExt = ["CUDA", "cuDNN"] + MLDataDevicesoneAPIExt = ["GPUArrays", "oneAPI"] + + [deps.MLDataDevices.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" + GPUArrays = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" + ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" + oneAPI = "8f75cd03-7ff8-4ecb-9b8f-daf728133b1b" + +[[deps.MLStyle]] +git-tree-sha1 = "bc38dff0548128765760c79eb7388a4b37fae2c8" +uuid = "d8e11817-5142-5d16-987a-aa16d5891078" +version = "0.4.17" + +[[deps.MLUtils]] +deps = ["ChainRulesCore", "Compat", "DataAPI", "DelimitedFiles", "FLoops", "NNlib", "Random", "ShowCases", "SimpleTraits", "Statistics", "StatsBase", "Tables", "Transducers"] +git-tree-sha1 = "b45738c2e3d0d402dffa32b2c1654759a2ac35a4" +uuid = "f1d291b0-491e-4a28-83b9-f70985020b54" +version = "0.4.4" + +[[deps.MacroTools]] +deps = ["Markdown", "Random"] +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" +uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" +version = "0.5.13" + +[[deps.Makie]] +deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "Dates", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Format", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "InteractiveUtils", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun", "Unitful"] +git-tree-sha1 = "2fe1a9e0cfb8ffe846dc08b78a0cfd4746c99949" +uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" +version = "0.21.6" + +[[deps.MakieCore]] +deps = ["ColorTypes", "GeometryBasics", "IntervalSets", "Observables"] +git-tree-sha1 = "1753d72dcf82beb1c582826d0a51a8253a719613" +uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" +version = "0.8.5" + +[[deps.ManualMemory]] +git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" +uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" +version = "0.1.8" + +[[deps.MappedArrays]] +git-tree-sha1 = "2dab0221fe2b0f2cb6754eaa743cc266339f527e" +uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" +version = "0.4.2" + +[[deps.Markdown]] +deps = ["Base64"] +uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" + +[[deps.MathTeXEngine]] +deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "UnicodeFun"] +git-tree-sha1 = "e1641f32ae592e415e3dbae7f4a188b5316d4b62" +uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" +version = "0.6.1" + +[[deps.MbedTLS_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" +version = "2.28.2+1" + +[[deps.MicroCollections]] +deps = ["Accessors", "BangBang", "InitialValues"] +git-tree-sha1 = "44d32db644e84c75dab479f1bc15ee76a1a3618f" +uuid = "128add7d-3638-4c79-886c-908ea0c25c34" +version = "0.2.0" + +[[deps.Missings]] +deps = ["DataAPI"] +git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d" +uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" +version = "1.2.0" + +[[deps.Mmap]] +uuid = "a63ad114-7e13-5084-954f-fe012c677804" + +[[deps.MosaicViews]] +deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] +git-tree-sha1 = "7b86a5d4d70a9f5cdf2dacb3cbe6d251d1a61dbe" +uuid = "e94cdb99-869f-56ef-bcf0-1ae2bcbe0389" +version = "0.3.4" + +[[deps.MozillaCACerts_jll]] +uuid = "14a3606d-f60d-562e-9121-12d972cd8159" +version = "2023.1.10" + +[[deps.NNlib]] +deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] +git-tree-sha1 = "ae52c156a63bb647f80c26319b104e99e5977e51" +uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" +version = "0.9.22" + + [deps.NNlib.extensions] + NNlibAMDGPUExt = "AMDGPU" + NNlibCUDACUDNNExt = ["CUDA", "cuDNN"] + NNlibCUDAExt = "CUDA" + NNlibEnzymeCoreExt = "EnzymeCore" + NNlibFFTWExt = "FFTW" + + [deps.NNlib.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" + cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" + +[[deps.NaNMath]] +deps = ["OpenLibm_jll"] +git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" +version = "1.0.2" + +[[deps.NameResolution]] +deps = ["PrettyPrint"] +git-tree-sha1 = "1a0fa0e9613f46c9b8c11eee38ebb4f590013c5e" +uuid = "71a1bf82-56d0-4bbc-8a3c-48b961074391" +version = "0.1.5" + +[[deps.Netpbm]] +deps = ["FileIO", "ImageCore", "ImageMetadata"] +git-tree-sha1 = "d92b107dbb887293622df7697a2223f9f8176fcd" +uuid = "f09324ee-3d7c-5217-9330-fc30815ba969" +version = "1.1.1" + +[[deps.NetworkOptions]] +uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" +version = "1.2.0" + +[[deps.ObjectFile]] +deps = ["Reexport", "StructIO"] +git-tree-sha1 = "7249afa1c4dfd86bfbcc9b28939ab6ef844f4e11" +uuid = "d8793406-e978-5875-9003-1fc021f44a92" +version = "0.4.2" + +[[deps.Observables]] +git-tree-sha1 = "7438a59546cf62428fc9d1bc94729146d37a7225" +uuid = "510215fc-4207-5dde-b226-833fc4488ee2" +version = "0.5.5" + +[[deps.Octavian]] +deps = ["CPUSummary", "IfElse", "LoopVectorization", "ManualMemory", "PolyesterWeave", "PrecompileTools", "Static", "StaticArrayInterface", "ThreadingUtilities", "VectorizationBase"] +git-tree-sha1 = "92410e147bdcaf9e2f982a7cc9b1341fc5dd1a77" +uuid = "6fd5a793-0b7e-452c-907f-f8bfe9c57db4" +version = "0.3.28" + + [deps.Octavian.extensions] + ForwardDiffExt = "ForwardDiff" + HyperDualNumbersExt = "HyperDualNumbers" + + [deps.Octavian.weakdeps] + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + HyperDualNumbers = "50ceba7f-c3ee-5a84-a6e8-3ad40456ec97" + +[[deps.OffsetArrays]] +git-tree-sha1 = "1a27764e945a152f7ca7efa04de513d473e9542e" +uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" +version = "1.14.1" +weakdeps = ["Adapt"] + + [deps.OffsetArrays.extensions] + OffsetArraysAdaptExt = "Adapt" + +[[deps.Ogg_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" +version = "1.3.5+1" + +[[deps.OneHotArrays]] +deps = ["Adapt", "ChainRulesCore", "Compat", "GPUArraysCore", "LinearAlgebra", "NNlib"] +git-tree-sha1 = "963a3f28a2e65bb87a68033ea4a616002406037d" +uuid = "0b1bfda6-eb8a-41d2-88d8-f5af5cad476f" +version = "0.2.5" + +[[deps.OpenBLAS_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] +uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" +version = "0.3.23+4" + +[[deps.OpenEXR]] +deps = ["Colors", "FileIO", "OpenEXR_jll"] +git-tree-sha1 = "327f53360fdb54df7ecd01e96ef1983536d1e633" +uuid = "52e1d378-f018-4a11-a4be-720524705ac7" +version = "0.3.2" + +[[deps.OpenEXR_jll]] +deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "8292dd5c8a38257111ada2174000a33745b06d4e" +uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" +version = "3.2.4+0" + +[[deps.OpenLibm_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "05823500-19ac-5b8b-9628-191a04bc5112" +version = "0.8.1+2" + +[[deps.OpenSSL_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "a028ee3cb5641cccc4c24e90c36b0a4f7707bdf5" +uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" +version = "3.0.14+0" + +[[deps.OpenSpecFun_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" +version = "0.5.5+0" + +[[deps.Optimisers]] +deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "6572fe0c5b74431aaeb0b18a4aa5ef03c84678be" +uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" +version = "0.3.3" + +[[deps.Opus_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +uuid = "91d4177d-7536-5919-b921-800302f37372" +version = "1.3.2+0" + +[[deps.OrderedCollections]] +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" +version = "1.6.3" + +[[deps.PCRE2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" +version = "10.42.0+1" + +[[deps.PDMats]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" +version = "0.11.31" + +[[deps.PNGFiles]] +deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] +git-tree-sha1 = "67186a2bc9a90f9f85ff3cc8277868961fb57cbd" +uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" +version = "0.4.3" + +[[deps.Packing]] +deps = ["GeometryBasics"] +git-tree-sha1 = "ec3edfe723df33528e085e632414499f26650501" +uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566" +version = "0.5.0" + +[[deps.PaddedViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "0fac6313486baae819364c52b4f483450a9d793f" +uuid = "5432bcbf-9aad-5242-b902-cca2824c8663" +version = "0.5.12" + +[[deps.Pango_jll]] +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "cb5a2ab6763464ae0f19c86c56c63d4a2b0f5bda" +uuid = "36c8627f-9965-5494-a995-c6b170f724f3" +version = "1.52.2+0" + +[[deps.Parsers]] +deps = ["Dates", "PrecompileTools", "UUIDs"] +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" +version = "2.8.1" + +[[deps.Pixman_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] +git-tree-sha1 = "35621f10a7531bc8fa58f74610b1bfb70a3cfc6b" +uuid = "30392449-352a-5448-841d-b1acce4e97dc" +version = "0.43.4+0" + +[[deps.Pkg]] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" +version = "1.10.0" + +[[deps.PkgVersion]] +deps = ["Pkg"] +git-tree-sha1 = "f9501cc0430a26bc3d156ae1b5b0c1b47af4d6da" +uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" +version = "0.3.3" + +[[deps.PlotUtils]] +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] +git-tree-sha1 = "7b1a9df27f072ac4c9c7cbe5efb198489258d1f5" +uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" +version = "1.4.1" + +[[deps.Polyester]] +deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] +git-tree-sha1 = "6d38fea02d983051776a856b7df75b30cf9a3c1f" +uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" +version = "0.7.16" + +[[deps.PolyesterWeave]] +deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] +git-tree-sha1 = "645bed98cd47f72f67316fd42fc47dee771aefcd" +uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" +version = "0.2.2" + +[[deps.PolygonOps]] +git-tree-sha1 = "77b3d3605fc1cd0b42d95eba87dfcd2bf67d5ff6" +uuid = "647866c9-e3ac-4575-94e7-e3d426903924" +version = "0.1.2" + +[[deps.PrecompileTools]] +deps = ["Preferences"] +git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" +uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" +version = "1.2.1" + +[[deps.Preferences]] +deps = ["TOML"] +git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" +uuid = "21216c6a-2e73-6563-6e65-726566657250" +version = "1.4.3" + +[[deps.PrettyPrint]] +git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" +uuid = "8162dcfd-2161-5ef2-ae6c-7681170c5f98" +version = "0.2.0" + +[[deps.Printf]] +deps = ["Unicode"] +uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" + +[[deps.Profile]] +deps = ["Printf"] +uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" + +[[deps.ProgressLogging]] +deps = ["Logging", "SHA", "UUIDs"] +git-tree-sha1 = "80d919dee55b9c50e8d9e2da5eeafff3fe58b539" +uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" +version = "0.1.4" + +[[deps.ProgressMeter]] +deps = ["Distributed", "Printf"] +git-tree-sha1 = "8f6bc219586aef8baf0ff9a5fe16ee9c70cb65e4" +uuid = "92933f4c-e287-5a05-a399-4b506db050ca" +version = "1.10.2" + +[[deps.PtrArrays]] +git-tree-sha1 = "f011fbb92c4d401059b2212c05c0601b70f8b759" +uuid = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d" +version = "1.2.0" + +[[deps.QOI]] +deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] +git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce" +uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65" +version = "1.0.0" + +[[deps.QuadGK]] +deps = ["DataStructures", "LinearAlgebra"] +git-tree-sha1 = "e237232771fdafbae3db5c31275303e056afaa9f" +uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" +version = "2.10.1" + +[[deps.REPL]] +deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" + +[[deps.Random]] +deps = ["SHA"] +uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" + +[[deps.RangeArrays]] +git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5" +uuid = "b3c3ace0-ae52-54e7-9d0b-2c1406fd6b9d" +version = "0.3.2" + +[[deps.Ratios]] +deps = ["Requires"] +git-tree-sha1 = "1342a47bf3260ee108163042310d26f2be5ec90b" +uuid = "c84ed2f1-dad5-54f0-aa8e-dbefe2724439" +version = "0.4.5" +weakdeps = ["FixedPointNumbers"] + + [deps.Ratios.extensions] + RatiosFixedPointNumbersExt = "FixedPointNumbers" + +[[deps.Reactant]] +deps = ["CEnum", "Enzyme", "Libdl", "Preferences", "Reactant_jll"] +git-tree-sha1 = "e502c087b799a8d035ad36ef6d9b0309dd811270" +uuid = "3c362404-f566-11ee-1572-e11a4b42c853" +version = "0.1.9" +weakdeps = ["Adapt", "ArrayInterface", "NNlib", "Statistics"] + + [deps.Reactant.extensions] + ReactantAdaptExt = "Adapt" + ReactantArrayInterfaceExt = "ArrayInterface" + ReactantNNlibExt = "NNlib" + ReactantStatisticsExt = "Statistics" + +[[deps.Reactant_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "357fe006e7881d7aca610ae9b91570ba23e29f86" +uuid = "0192cb87-2b54-54ad-80e0-3be72ad8a3c0" +version = "0.0.15+0" + +[[deps.RealDot]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "9f0a1b71baaf7650f4fa8a1d168c7fb6ee41f0c9" +uuid = "c1ae055f-0cd5-4b69-90a6-9a35b1a98df9" +version = "0.1.0" + +[[deps.Reexport]] +git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" +uuid = "189a3867-3050-52da-a836-e630ba90ab69" +version = "1.2.2" + +[[deps.RelocatableFolders]] +deps = ["SHA", "Scratch"] +git-tree-sha1 = "ffdaf70d81cf6ff22c2b6e733c900c3321cab864" +uuid = "05181044-ff0b-4ac5-8273-598c1e38db00" +version = "1.0.1" + +[[deps.Requires]] +deps = ["UUIDs"] +git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +uuid = "ae029012-a4dd-5104-9daa-d747884805df" +version = "1.3.0" + +[[deps.Rmath]] +deps = ["Random", "Rmath_jll"] +git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" +version = "0.7.1" + +[[deps.Rmath_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e60724fd3beea548353984dc61c943ecddb0e29a" +uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" +version = "0.4.3+0" + +[[deps.RoundingEmulator]] +git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" +uuid = "5eaf0fd0-dfba-4ccb-bf02-d820a40db705" +version = "0.2.1" + +[[deps.SHA]] +uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" +version = "0.7.0" + +[[deps.SIMD]] +deps = ["PrecompileTools"] +git-tree-sha1 = "2803cab51702db743f3fda07dd1745aadfbf43bd" +uuid = "fdea26ae-647d-5447-a871-4b548cad5224" +version = "3.5.0" + +[[deps.SIMDTypes]] +git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" +uuid = "94e857df-77ce-4151-89e5-788b33177be4" +version = "0.1.0" + +[[deps.SLEEFPirates]] +deps = ["IfElse", "Static", "VectorizationBase"] +git-tree-sha1 = "456f610ca2fbd1c14f5fcf31c6bfadc55e7d66e0" +uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" +version = "0.6.43" + +[[deps.Scratch]] +deps = ["Dates"] +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +uuid = "6c6a2e73-6563-6170-7368-637461726353" +version = "1.2.1" + +[[deps.Serialization]] +uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" + +[[deps.Setfield]] +deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] +git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" +uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" +version = "1.1.1" + +[[deps.ShaderAbstractions]] +deps = ["ColorTypes", "FixedPointNumbers", "GeometryBasics", "LinearAlgebra", "Observables", "StaticArrays", "StructArrays", "Tables"] +git-tree-sha1 = "79123bc60c5507f035e6d1d9e563bb2971954ec8" +uuid = "65257c39-d410-5151-9873-9b3e5be5013e" +version = "0.4.1" + +[[deps.SharedArrays]] +deps = ["Distributed", "Mmap", "Random", "Serialization"] +uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" + +[[deps.ShowCases]] +git-tree-sha1 = "7f534ad62ab2bd48591bdeac81994ea8c445e4a5" +uuid = "605ecd9f-84a6-4c9e-81e2-4798472b76a3" +version = "0.1.0" + +[[deps.Showoff]] +deps = ["Dates", "Grisu"] +git-tree-sha1 = "91eddf657aca81df9ae6ceb20b959ae5653ad1de" +uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" +version = "1.0.3" + +[[deps.SignedDistanceFields]] +deps = ["Random", "Statistics", "Test"] +git-tree-sha1 = "d263a08ec505853a5ff1c1ebde2070419e3f28e9" +uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96" +version = "0.4.0" + +[[deps.SimpleChains]] +deps = ["ArrayInterface", "CPUSummary", "ChainRulesCore", "CloseOpenIntervals", "ForwardDiff", "HostCPUFeatures", "IfElse", "LayoutPointers", "LoopVectorization", "ManualMemory", "Polyester", "Random", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "StaticArrays", "StrideArraysCore", "UnPack", "VectorizationBase", "VectorizedRNG"] +git-tree-sha1 = "a6ab9afaf404469f93346cced3030869e27c8cf0" +uuid = "de6bee2f-e2f4-4ec7-b6ed-219cc6f6e9e5" +version = "0.4.7" + +[[deps.SimpleTraits]] +deps = ["InteractiveUtils", "MacroTools"] +git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" +version = "0.9.4" + +[[deps.Sixel]] +deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"] +git-tree-sha1 = "2da10356e31327c7096832eb9cd86307a50b1eb6" +uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47" +version = "0.1.3" + +[[deps.Sockets]] +uuid = "6462fe0b-24de-5631-8697-dd941f90decc" + +[[deps.SortingAlgorithms]] +deps = ["DataStructures"] +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" +uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" +version = "1.2.1" + +[[deps.SparseArrays]] +deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] +uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.10.0" + +[[deps.SparseInverseSubset]] +deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] +git-tree-sha1 = "52962839426b75b3021296f7df242e40ecfc0852" +uuid = "dc90abb0-5640-4711-901d-7e5b23a2fada" +version = "0.1.2" + +[[deps.SpecialFunctions]] +deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] +git-tree-sha1 = "2f5d4697f21388cbe1ff299430dd169ef97d7e14" +uuid = "276daf66-3868-5448-9aa4-cd146d93841b" +version = "2.4.0" +weakdeps = ["ChainRulesCore"] + + [deps.SpecialFunctions.extensions] + SpecialFunctionsChainRulesCoreExt = "ChainRulesCore" + +[[deps.SplittablesBase]] +deps = ["Setfield", "Test"] +git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" +uuid = "171d559e-b47b-412a-8079-5efa626c420e" +version = "0.1.15" + +[[deps.StackViews]] +deps = ["OffsetArrays"] +git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" +uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" +version = "0.1.1" + +[[deps.Static]] +deps = ["CommonWorldInvalidations", "IfElse", "PrecompileTools"] +git-tree-sha1 = "87d51a3ee9a4b0d2fe054bdd3fc2436258db2603" +uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" +version = "1.1.1" + +[[deps.StaticArrayInterface]] +deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Static"] +git-tree-sha1 = "96381d50f1ce85f2663584c8e886a6ca97e60554" +uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" +version = "1.8.0" +weakdeps = ["OffsetArrays", "StaticArrays"] + + [deps.StaticArrayInterface.extensions] + StaticArrayInterfaceOffsetArraysExt = "OffsetArrays" + StaticArrayInterfaceStaticArraysExt = "StaticArrays" + +[[deps.StaticArrays]] +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "eeafab08ae20c62c44c8399ccb9354a04b80db50" +uuid = "90137ffa-7385-5640-81b9-e52037218182" +version = "1.9.7" +weakdeps = ["ChainRulesCore", "Statistics"] + + [deps.StaticArrays.extensions] + StaticArraysChainRulesCoreExt = "ChainRulesCore" + StaticArraysStatisticsExt = "Statistics" + +[[deps.StaticArraysCore]] +git-tree-sha1 = "192954ef1208c7019899fbf8049e717f92959682" +uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" +version = "1.4.3" + +[[deps.Statistics]] +deps = ["LinearAlgebra", "SparseArrays"] +uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +version = "1.10.0" + +[[deps.StatsAPI]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" +version = "1.7.0" + +[[deps.StatsBase]] +deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "5cf7606d6cef84b543b483848d4ae08ad9832b21" +uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" +version = "0.34.3" + +[[deps.StatsFuns]] +deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] +git-tree-sha1 = "cef0472124fab0695b58ca35a77c6fb942fdab8a" +uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" +version = "1.3.1" +weakdeps = ["ChainRulesCore", "InverseFunctions"] + + [deps.StatsFuns.extensions] + StatsFunsChainRulesCoreExt = "ChainRulesCore" + StatsFunsInverseFunctionsExt = "InverseFunctions" + +[[deps.StrideArraysCore]] +deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] +git-tree-sha1 = "f35f6ab602df8413a50c4a25ca14de821e8605fb" +uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" +version = "0.5.7" + +[[deps.StructArrays]] +deps = ["ConstructionBase", "DataAPI", "Tables"] +git-tree-sha1 = "f4dc295e983502292c4c3f951dbb4e985e35b3be" +uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +version = "0.6.18" +weakdeps = ["Adapt", "GPUArraysCore", "SparseArrays", "StaticArrays"] + + [deps.StructArrays.extensions] + StructArraysAdaptExt = "Adapt" + StructArraysGPUArraysCoreExt = "GPUArraysCore" + StructArraysSparseArraysExt = "SparseArrays" + StructArraysStaticArraysExt = "StaticArrays" + +[[deps.StructIO]] +git-tree-sha1 = "c581be48ae1cbf83e899b14c07a807e1787512cc" +uuid = "53d494c1-5632-5724-8f4c-31dff12d585f" +version = "0.3.1" + +[[deps.SuiteSparse]] +deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] +uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" + +[[deps.SuiteSparse_jll]] +deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" +version = "7.2.1+1" + +[[deps.TOML]] +deps = ["Dates"] +uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" +version = "1.0.3" + +[[deps.TableTraits]] +deps = ["IteratorInterfaceExtensions"] +git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" +uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" +version = "1.0.1" + +[[deps.Tables]] +deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] +git-tree-sha1 = "598cd7c1f68d1e205689b1c2fe65a9f85846f297" +uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" +version = "1.12.0" + +[[deps.Tar]] +deps = ["ArgTools", "SHA"] +uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" +version = "1.10.0" + +[[deps.TensorCore]] +deps = ["LinearAlgebra"] +git-tree-sha1 = "1feb45f88d133a655e001435632f019a9a1bcdb6" +uuid = "62fd8b95-f654-4bbd-a8a5-9c27f68ccd50" +version = "0.1.1" + +[[deps.Test]] +deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] +uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" + +[[deps.ThreadingUtilities]] +deps = ["ManualMemory"] +git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27" +uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" +version = "0.5.2" + +[[deps.TiffImages]] +deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "SIMD", "UUIDs"] +git-tree-sha1 = "bc7fd5c91041f44636b2c134041f7e5263ce58ae" +uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" +version = "0.10.0" + +[[deps.TimerOutputs]] +deps = ["ExprTools", "Printf"] +git-tree-sha1 = "5a13ae8a41237cff5ecf34f73eb1b8f42fff6531" +uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" +version = "0.5.24" + +[[deps.TranscodingStreams]] +git-tree-sha1 = "e84b3a11b9bece70d14cce63406bbc79ed3464d2" +uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" +version = "0.11.2" + +[[deps.Transducers]] +deps = ["Accessors", "Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "ConstructionBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "SplittablesBase", "Tables"] +git-tree-sha1 = "5215a069867476fc8e3469602006b9670e68da23" +uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" +version = "0.4.82" + + [deps.Transducers.extensions] + TransducersBlockArraysExt = "BlockArrays" + TransducersDataFramesExt = "DataFrames" + TransducersLazyArraysExt = "LazyArrays" + TransducersOnlineStatsBaseExt = "OnlineStatsBase" + TransducersReferenceablesExt = "Referenceables" + + [deps.Transducers.weakdeps] + BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" + DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" + LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" + OnlineStatsBase = "925886fa-5bf2-5e8e-b522-a9147a512338" + Referenceables = "42d2dcc6-99eb-4e98-b66c-637b7d73030e" + +[[deps.TriplotBase]] +git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" +uuid = "981d1d27-644d-49a2-9326-4793e63143c3" +version = "0.1.0" + +[[deps.UUIDs]] +deps = ["Random", "SHA"] +uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" + +[[deps.UnPack]] +git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" +uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" +version = "1.0.2" + +[[deps.Unicode]] +uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" + +[[deps.UnicodeFun]] +deps = ["REPL"] +git-tree-sha1 = "53915e50200959667e78a92a418594b428dffddf" +uuid = "1cfade01-22cf-5700-b092-accc4b62d6e1" +version = "0.4.1" + +[[deps.Unitful]] +deps = ["Dates", "LinearAlgebra", "Random"] +git-tree-sha1 = "d95fe458f26209c66a187b1114df96fd70839efd" +uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" +version = "1.21.0" +weakdeps = ["ConstructionBase", "InverseFunctions"] + + [deps.Unitful.extensions] + ConstructionBaseUnitfulExt = "ConstructionBase" + InverseFunctionsUnitfulExt = "InverseFunctions" + +[[deps.UnrolledUtilities]] +git-tree-sha1 = "b73f7a7c25a2618c5052c80ed32b07e471cc6cb0" +uuid = "0fe1646c-419e-43be-ac14-22321958931b" +version = "0.1.2" + +[[deps.UnsafeAtomics]] +git-tree-sha1 = "6331ac3440856ea1988316b46045303bef658278" +uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" +version = "0.2.1" + +[[deps.UnsafeAtomicsLLVM]] +deps = ["LLVM", "UnsafeAtomics"] +git-tree-sha1 = "4073c836c2befcb041e5fe306cb6abf621eb3140" +uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249" +version = "0.2.0" + +[[deps.VectorizationBase]] +deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] +git-tree-sha1 = "e7f5b81c65eb858bed630fe006837b935518aca5" +uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" +version = "0.21.70" + +[[deps.VectorizedRNG]] +deps = ["Distributed", "Random", "SLEEFPirates", "UnPack", "VectorizationBase"] +git-tree-sha1 = "5ca83562ba95272d8709c6c91e31e23c3c4c9825" +uuid = "33b4df10-0173-11e9-2a0c-851a7edac40e" +version = "0.2.25" +weakdeps = ["Requires", "StaticArraysCore"] + + [deps.VectorizedRNG.extensions] + VectorizedRNGStaticArraysExt = ["StaticArraysCore"] + +[[deps.WeightInitializers]] +deps = ["ArgCheck", "ChainRulesCore", "ConcreteStructs", "GPUArraysCore", "LinearAlgebra", "Random", "SpecialFunctions", "Statistics"] +git-tree-sha1 = "33ce5777ca44b33f708ccbc67ea51b68a68b7bdd" +uuid = "d49dbf32-c5c2-4618-8acc-27bb2598ef2d" +version = "1.0.1" + + [deps.WeightInitializers.extensions] + WeightInitializersAMDGPUExt = ["AMDGPU", "GPUArrays"] + WeightInitializersCUDAExt = ["CUDA", "GPUArrays"] + WeightInitializersGPUArraysExt = "GPUArrays" + WeightInitializersMetalExt = ["Metal", "GPUArrays"] + WeightInitializersoneAPIExt = ["oneAPI", "GPUArrays"] + + [deps.WeightInitializers.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + GPUArrays = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + oneAPI = "8f75cd03-7ff8-4ecb-9b8f-daf728133b1b" + +[[deps.WoodburyMatrices]] +deps = ["LinearAlgebra", "SparseArrays"] +git-tree-sha1 = "c1a7aa6219628fcd757dede0ca95e245c5cd9511" +uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" +version = "1.0.0" + +[[deps.XML2_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] +git-tree-sha1 = "d9717ce3518dc68a99e6b96300813760d887a01d" +uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" +version = "2.13.1+0" + +[[deps.XSLT_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "XML2_jll", "Zlib_jll"] +git-tree-sha1 = "a54ee957f4c86b526460a720dbc882fa5edcbefc" +uuid = "aed1982a-8fda-507f-9586-7b0439959a61" +version = "1.1.41+0" + +[[deps.Xorg_libX11_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] +git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" +version = "1.8.6+0" + +[[deps.Xorg_libXau_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" +version = "1.0.11+0" + +[[deps.Xorg_libXdmcp_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" +version = "1.1.4+0" + +[[deps.Xorg_libXext_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "d2d1a5c49fae4ba39983f63de6afcbea47194e85" +uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" +version = "1.3.6+0" + +[[deps.Xorg_libXrender_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] +git-tree-sha1 = "47e45cd78224c53109495b3e324df0c37bb61fbe" +uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" +version = "0.9.11+0" + +[[deps.Xorg_libpthread_stubs_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" +uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" +version = "0.1.1+0" + +[[deps.Xorg_libxcb_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] +git-tree-sha1 = "bcd466676fef0878338c61e655629fa7bbc69d8e" +uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" +version = "1.17.0+0" + +[[deps.Xorg_xtrans_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" +version = "1.5.0+0" + +[[deps.Zlib_jll]] +deps = ["Libdl"] +uuid = "83775a58-1f1d-513f-b197-d71354ab007a" +version = "1.2.13+1" + +[[deps.Zygote]] +deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArrays", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "Requires", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] +git-tree-sha1 = "19c586905e78a26f7e4e97f81716057bd6b1bc54" +uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" +version = "0.6.70" + + [deps.Zygote.extensions] + ZygoteColorsExt = "Colors" + ZygoteDistancesExt = "Distances" + ZygoteTrackerExt = "Tracker" + + [deps.Zygote.weakdeps] + Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" + Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" + Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" + +[[deps.ZygoteRules]] +deps = ["ChainRulesCore", "MacroTools"] +git-tree-sha1 = "27798139afc0a2afa7b1824c206d5e87ea587a00" +uuid = "700de1a5-db45-46bc-99cf-38207098b444" +version = "0.2.5" + +[[deps.isoband_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "51b5eeb3f98367157a7a12a1fb0aa5328946c03c" +uuid = "9a68df92-36a6-505f-a73e-abb412b6bfb4" +version = "0.2.3+0" + +[[deps.libaom_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1827acba325fdcdf1d2647fc8d5301dd9ba43a9d" +uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" +version = "3.9.0+0" + +[[deps.libass_jll]] +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] +git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" +version = "0.15.1+0" + +[[deps.libblastrampoline_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" +version = "5.8.0+1" + +[[deps.libfdk_aac_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" +version = "2.0.2+0" + +[[deps.libpng_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "d7015d2e18a5fd9a4f47de711837e980519781a4" +uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" +version = "1.6.43+1" + +[[deps.libsixel_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"] +git-tree-sha1 = "d4f63314c8aa1e48cd22aa0c17ed76cd1ae48c3c" +uuid = "075b6546-f08a-558a-be8f-8157d0f608a5" +version = "1.10.3+0" + +[[deps.libvorbis_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] +git-tree-sha1 = "490376214c4721cdaca654041f635213c6165cb3" +uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" +version = "1.3.7+2" + +[[deps.nghttp2_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" +version = "1.52.0+1" + +[[deps.oneTBB_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "7d0ea0f4895ef2f5cb83645fa689e52cb55cf493" +uuid = "1317d2d5-d96f-522e-a858-c73665f53c3e" +version = "2021.12.0+0" + +[[deps.p7zip_jll]] +deps = ["Artifacts", "Libdl"] +uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" +version = "17.4.0+2" + +[[deps.x264_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" +version = "2021.5.5+0" + +[[deps.x265_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" +version = "3.5.0+0" diff --git a/benchmarks/NeuralNetworks/Project.toml b/benchmarks/NeuralNetworks/Project.toml new file mode 100644 index 000000000..7f47629b9 --- /dev/null +++ b/benchmarks/NeuralNetworks/Project.toml @@ -0,0 +1,16 @@ +[deps] +BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" +CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" +DispatchDoctor = "8d63f2c5-f18a-4cf2-ba9d-b3f60fc568c8" +Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" +Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" +Lux = "b2108857-7c20-44ae-9111-449ecde12c47" +LuxLib = "82251201-b29d-42c6-8e01-566dec8acb11" +Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +Reactant = "3c362404-f566-11ee-1572-e11a4b42c853" +SimpleChains = "de6bee2f-e2f4-4ec7-b6ed-219cc6f6e9e5" +Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" +Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[extras] +LuxCore = "bb33d45b-7691-41d6-9220-0943567d0623" diff --git a/benchmarks/NeuralNetworks/simple_networks.jmd b/benchmarks/NeuralNetworks/simple_networks.jmd new file mode 100644 index 000000000..d98bb3b54 --- /dev/null +++ b/benchmarks/NeuralNetworks/simple_networks.jmd @@ -0,0 +1,364 @@ +--- +title: Simple Neural Networks +author: Avik Pal +--- + +This benchmark compares Julia deep learning frameworks on some common workloads. Currently +we only test our models on CPU. We compare inference using: + +1. [Flux.jl](https://github.com/FluxML/Flux.jl) +2. [Lux.jl](https://github.com/LuxDL/Lux.jl) +3. [SimpleChains.jl](https://github.com/PumasAI/SimpleChains.jl) (via Lux.jl wrapper) +4. Lux model compiled using [Reactant.jl](https://github.com/EnzymeAD/Reactant.jl) + +!!! note + + Not all benchmarks include all the 4 mentioned above. For example, SimpleChains.jl + lacks support for batch normalization layers. Additionally, Reactant.jl is being + actively developed and integration of more Lux models with Reactant is ongoing. + +Additionally training is compared among: + +1. [Zygote.jl](https://github.com/FluxML/Zygote.jl) + Flux.jl +2. Zygote.jl + Lux.jl +3. [Enzyme.jl](https://github.com/EnzymeAD/Enzyme.jl) + Lux.jl + +# Setup + +Fetch required packages. + +```julia +import DispatchDoctor: allow_unstable + +using BenchmarkTools, Random +import Flux, SimpleChains, Reactant +using Lux +using Zygote, Enzyme +using Statistics +using CairoMakie + +BenchmarkTools.DEFAULT_PARAMETERS.gcsample = true +BenchmarkTools.DEFAULT_PARAMETERS.seconds = 30 +``` + +## Shared Benchmarking Functions + +```julia +function compile_reactant_inference(model, x, ps, st) + # FIXME: This is currently broken + cmodel = Reactant.make_tracer(IdDict(), model, (), Reactant.ArrayToConcrete) + cps = Reactant.make_tracer(IdDict(), ps, (), Reactant.ArrayToConcrete) + cst = Reactant.make_tracer(IdDict(), st, (), Reactant.ArrayToConcrete) + cx = Reactant.ConcreteRArray(x) + + lux_apply_compiled = allow_unstable() do + Reactant.compile((a, b, c, d) -> first(a(b, c, d)), (cmodel, cx, cps, cst)) + end + + return lux_apply_compiled, cmodel, cps, cst, cx +end + +function benchmark_inference(xsize::Dims, flux_model, lux_model, ps_lux, st_lux, + batch_sizes; name=nothing, use_simple_chains::Bool=false, use_reactant::Bool=false) + name !== nothing && @info "Benchmarking $name Inference" + + @assert !use_reactant "Reactant inference is currently broken" + + st_lux_test = Lux.testmode(st_lux) + Flux.testmode!(flux_model) + + lux_timings = zeros(length(batch_sizes)) + lux_allocs = zeros(length(batch_sizes)) + + flux_timings = zeros(length(batch_sizes)) + flux_allocs = zeros(length(batch_sizes)) + + simple_chains_timings = zeros(length(batch_sizes)) + simple_chains_allocs = zeros(length(batch_sizes)) + + for (i, batch_size) in enumerate(batch_sizes) + x = randn(Float32, xsize..., batch_size) + + # Lux + lux_trial = @benchmark $(lux_model)($x, $ps_lux, $st_lux_test) + lux_trial = median(lux_trial) + + lux_timings[i] = lux_trial.time / 1e9 + lux_allocs[i] = lux_trial.memory / (1024 * 1024) + + # Flux + flux_trial = @benchmark $(flux_model)($x) + flux_trial = median(flux_trial) + + flux_timings[i] = flux_trial.time / 1e9 + flux_allocs[i] = flux_trial.memory / (1024 * 1024) + + if use_simple_chains + # SimpleChains + simple_chains_model = ToSimpleChainsAdaptor(xsize)(lux_model) + ps_sc, st_sc = Lux.setup(Random.default_rng(), simple_chains_model) + simple_chains_trial = @benchmark $(simple_chains_model)($x, $ps_sc, $st_sc) + simple_chains_trial = median(simple_chains_trial) + + simple_chains_timings[i] = simple_chains_trial.time / 1e9 + simple_chains_allocs[i] = simple_chains_trial.memory / (1024 * 1024) + end + + @info "Batch Size: $batch_size, Lux: $(lux_timings[i])s [$(lux_allocs[i])MB], \ + Flux: $(flux_timings[i])s [$(flux_allocs[i])MB], \ + SimpleChains: $(simple_chains_timings[i])s [$(simple_chains_allocs[i])MB]" + end + + data = Dict{String, NamedTuple}( + "Lux" => (; timings=lux_timings, allocs=lux_allocs), + "Flux" => (; timings=flux_timings, allocs=flux_allocs) + ) + if use_simple_chains + data["SimpleChains"] = (; timings=simple_chains_timings, + allocs=simple_chains_allocs) + end + return data +end +``` + +## Shared Plotting Functions + +```julia +const ASPECT_RATIO = 0.7 +const WIDTH = 1000 +const HEIGHT = WIDTH * ASPECT_RATIO +const STROKEWIDTH = 2.5 + +function plot_inference_results(results, batch_sizes, name) + cycle = Cycle([:marker, :linestyle], covary=true) + colors = cgrad(:seaborn_bright6, 6; categorical=true)[1:4] + theme = Theme(Lines=(cycle=cycle,), Scatter=(cycle=cycle,)) + + key_to_color = Dict("Lux" => colors[1], "Flux" => colors[2], + "SimpleChains" => colors[3], "Reactant" => colors[4]) + key_to_linestyle = Dict("Lux" => :solid, "Flux" => :dash, "SimpleChains" => :dot, + "Reactant" => :dashdot) + + return with_theme(theme) do + fig = Figure(; size = (WIDTH, HEIGHT)) + + ax = Axis(fig[1, 1], xlabel="Batch Size (log2 scale)", + ylabel="Inference Time (s) (log2 scale)", + xscale = log2, yscale = log2, xlabelsize = 22, ylabelsize = 22, + xticklabelsize = 20, yticklabelsize = 20, xtickwidth = STROKEWIDTH, + ytickwidth = STROKEWIDTH, spinewidth = STROKEWIDTH) + + handles, labels = [], String[] + for key in keys(results) + hasproperty(results[key], :timings) || continue + timings = results[key].timings + l = lines!(ax, batch_sizes, timings, color=key_to_color[key], linewidth=3, + linestyle=key_to_linestyle[key]) + sc = scatter!(ax, batch_sizes, timings, color=key_to_color[key], markersize=20) + push!(handles, [l, sc]) + push!(labels, key) + end + + axislegend(ax, handles, labels; framevisible=true, framewidth=STROKEWIDTH, + labelsize=16, position=:lt, patchsize = (60.0f0, 20.0f0)) + + ax = Axis(fig[1, 2], xlabel="Batch Size (log2 scale)", + ylabel="Allocated Memory (MB) (log2 scale)", + xscale = log2, yscale = log2, xlabelsize = 22, ylabelsize = 22, + xticklabelsize = 20, yticklabelsize = 20, xtickwidth = STROKEWIDTH, + ytickwidth = STROKEWIDTH, spinewidth = STROKEWIDTH) + + handles, labels = [], String[] + for key in keys(results) + hasproperty(results[key], :allocs) || continue + allocs = results[key].allocs + l = lines!(ax, batch_sizes, allocs, color=key_to_color[key], linewidth=3, + linestyle=key_to_linestyle[key]) + sc = scatter!(ax, batch_sizes, allocs, color=key_to_color[key], markersize=20) + push!(handles, [l, sc]) + push!(labels, key) + end + + axislegend(ax, handles, labels; framevisible=true, framewidth=STROKEWIDTH, + labelsize=16, position=:lt, patchsize = (60.0f0, 20.0f0)) + + fig[0, :] = Label(fig, "Inference $(name)", fontsize=24, tellwidth=false, + font=:bold) + + return fig + end +end +``` + +# 7 Layer MLP (relu) Benchmark + +## Setup + +```julia +flux_model = Flux.Chain( + Flux.Dense(32, 256, relu), + [Flux.Dense(256, 256, relu) for _ in 1:5]..., + Flux.Dense(256, 10), +) + +## Make sure parameters and states are exactly the same +lux_model = FromFluxAdaptor(; preserve_ps_st=true)(flux_model) +ps_lux, st_lux = Lux.setup(Random.default_rng(), lux_model) + +batch_sizes = [1, 2, 8, 32, 128, 512, 2048] +nothing +``` + +## Inference + +```julia +results = benchmark_inference((32,), flux_model, lux_model, ps_lux, st_lux, batch_sizes; + name="7 Layer MLP (relu)", use_simple_chains=true) + +plot_inference_results(results, batch_sizes, "7 Layer MLP (relu)") +``` + +## Training + +# 7 Layer MLP (gelu) Benchmark + +## Setup + +```julia +flux_model = Flux.Chain( + Flux.Dense(32, 256, gelu), + [Flux.Dense(256, 256, gelu) for _ in 1:5]..., + Flux.Dense(256, 10), +) + +## Make sure parameters and states are exactly the same +lux_model = FromFluxAdaptor(; preserve_ps_st=true)(flux_model) +ps_lux, st_lux = Lux.setup(Random.default_rng(), lux_model) + +batch_sizes = [1, 2, 8, 32, 128, 512, 2048] +nothing +``` + +## Inference + +```julia +results = benchmark_inference((32,), flux_model, lux_model, ps_lux, st_lux, batch_sizes; + name="7 Layer MLP (gelu)", use_simple_chains=true) + +plot_inference_results(results, batch_sizes, "7 Layer MLP (gelu)") +``` + +## Training + + +# 7 Layer MLP (relu) with Batch Normalization Benchmark + +## Setup + +```julia +flux_model = Flux.Chain( + Flux.Dense(32, 256), + Flux.BatchNorm(256, relu), + [ + Flux.Chain(Flux.Dense(256, 256), Flux.BatchNorm(256, relu)) + for _ in 1:5 + ]..., + Flux.Dense(256, 10), +) + +## Make sure parameters and states are exactly the same +lux_model = FromFluxAdaptor(; preserve_ps_st=true)(flux_model) +ps_lux, st_lux = Lux.setup(Random.default_rng(), lux_model) + +batch_sizes = [1, 2, 8, 32, 128, 512, 2048] +nothing +``` + +## Inference + +```julia +results = benchmark_inference((32,), flux_model, lux_model, ps_lux, st_lux, batch_sizes, + name="7 Layer MLP + BN (relu)") + +plot_inference_results(results, batch_sizes, "7 Layer MLP + BN (relu)") +``` + +## Training + +# 7 Layer MLP (gelu) with Batch Normalization Benchmark + +## Setup + +```julia +flux_model = Flux.Chain( + Flux.Dense(32, 256), + Flux.BatchNorm(256, gelu), + [ + Flux.Chain(Flux.Dense(256, 256), Flux.BatchNorm(256, gelu)) + for _ in 1:5 + ]..., + Flux.Dense(256, 10), +) + +## Make sure parameters and states are exactly the same +lux_model = FromFluxAdaptor(; preserve_ps_st=true)(flux_model) +ps_lux, st_lux = Lux.setup(Random.default_rng(), lux_model) + +batch_sizes = [1, 2, 8, 32, 128, 512, 2048] +nothing +``` + +## Inference + +```julia +results = benchmark_inference((32,), flux_model, lux_model, ps_lux, st_lux, batch_sizes, + name="7 Layer MLP + BN (gelu)") + +plot_inference_results(results, batch_sizes, "7 Layer MLP + BN (gelu)") +``` + +## Training + +# LeNet 5 Benchmark + +## Setup + +```julia +flux_model = Flux.Chain( + Flux.Conv((5, 5), 1=>6, relu), + Flux.MaxPool((2, 2)), + Flux.Conv((5, 5), 6=>16, relu), + Flux.MaxPool((2, 2)), + Flux.flatten, + Flux.Dense(256 => 120, relu), + Flux.Dense(120 => 84, relu), + Flux.Dense(84 => 10), +) + +## Make sure parameters and states are exactly the same +lux_model = FromFluxAdaptor(; preserve_ps_st=true)(flux_model) +ps_lux, st_lux = Lux.setup(Random.default_rng(), lux_model) + +batch_sizes = [1, 2, 8, 32, 128] +nothing +``` + +## Inference + +```julia +# TODO: Simple Chains model will need a little massaging to work with this +results = benchmark_inference((28, 28, 1), flux_model, lux_model, ps_lux, st_lux, + batch_sizes, name="LeNet 5") + +plot_inference_results(results, batch_sizes, "LeNet 5") +``` + +## Training + +# ResNet (Small) Benchmark + +## Setup + +## Inference + +## Training From 239f56fd7e572a2a9f25618a63b3b9e4814d279d Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Thu, 26 Mar 2026 06:53:14 -0400 Subject: [PATCH 2/3] Complete neural network benchmarks with Reactant, JAX, and PyTorch - Rebase onto master and update to latest package versions (Lux 1.31, Reactant 0.2.240, Flux 0.16) - Add Reactant.jl inference (via @compile) and training (via TrainState API) - Add JAX and PyTorch benchmarks via PythonCall with timing done entirely in Python - Complete all benchmark sections: MLP relu, MLP gelu, MLP+BatchNorm, LeNet 5, Small ResNet - Add both inference and training benchmarks for all model types - Configure GPU runner via benchmark_config.toml - Add CondaPkg.toml for Python dependencies (jax, torch, optax) - Add .CondaPkg and __pycache__ to .gitignore Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.6 (1M context) --- .gitignore | 8 +- benchmarks/NeuralNetworks/CondaPkg.toml | 8 + .../NeuralNetworks/LocalPreferences.toml | 8 - benchmarks/NeuralNetworks/Manifest.toml | 1733 ++++++++++------- benchmarks/NeuralNetworks/Project.toml | 22 +- .../NeuralNetworks/benchmark_config.toml | 3 + .../NeuralNetworks/nn_benchmark_utils.py | 288 +++ benchmarks/NeuralNetworks/simple_networks.jmd | 887 ++++++--- 8 files changed, 2025 insertions(+), 932 deletions(-) create mode 100644 benchmarks/NeuralNetworks/CondaPkg.toml delete mode 100644 benchmarks/NeuralNetworks/LocalPreferences.toml create mode 100644 benchmarks/NeuralNetworks/benchmark_config.toml create mode 100644 benchmarks/NeuralNetworks/nn_benchmark_utils.py diff --git a/.gitignore b/.gitignore index d3e1ffb81..10caead05 100644 --- a/.gitignore +++ b/.gitignore @@ -23,4 +23,10 @@ notebook/ markdown/ .vscode -*.html \ No newline at end of file +*.html + +# CondaPkg generated environments +.CondaPkg/ + +# Python cache +__pycache__/ \ No newline at end of file diff --git a/benchmarks/NeuralNetworks/CondaPkg.toml b/benchmarks/NeuralNetworks/CondaPkg.toml new file mode 100644 index 000000000..3c5367420 --- /dev/null +++ b/benchmarks/NeuralNetworks/CondaPkg.toml @@ -0,0 +1,8 @@ +[deps] +numpy = "" + +[pip.deps] +jax = ">=0.4" +jaxlib = ">=0.4" +optax = ">=0.2" +torch = ">=2.0" diff --git a/benchmarks/NeuralNetworks/LocalPreferences.toml b/benchmarks/NeuralNetworks/LocalPreferences.toml deleted file mode 100644 index 6e6ef41f7..000000000 --- a/benchmarks/NeuralNetworks/LocalPreferences.toml +++ /dev/null @@ -1,8 +0,0 @@ -[LuxCore] -instability_check = "error" - -[LuxLib] -instability_check = "error" - -[Lux] -eltype_mismatch_handling = "error" diff --git a/benchmarks/NeuralNetworks/Manifest.toml b/benchmarks/NeuralNetworks/Manifest.toml index 932a7214b..1aeb1b717 100644 --- a/benchmarks/NeuralNetworks/Manifest.toml +++ b/benchmarks/NeuralNetworks/Manifest.toml @@ -1,17 +1,18 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.10.4" +julia_version = "1.12.4" manifest_format = "2.0" -project_hash = "837be6258729d0ded52fe315c5680d0b1b2eea6e" +project_hash = "7bb76e86a8e4ea4674ff1a555c92935e8f524eac" [[deps.ADTypes]] -git-tree-sha1 = "99a6f5d0ce1c7c6afdb759daa30226f71c54f6b0" +git-tree-sha1 = "f7304359109c768cf32dc5fa2d371565bb63b68a" uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "1.7.1" -weakdeps = ["ChainRulesCore", "EnzymeCore"] +version = "1.21.0" +weakdeps = ["ChainRulesCore", "ConstructionBase", "EnzymeCore"] [deps.ADTypes.extensions] ADTypesChainRulesCoreExt = "ChainRulesCore" + ADTypesConstructionBaseExt = "ConstructionBase" ADTypesEnzymeCoreExt = "EnzymeCore" [[deps.AbstractFFTs]] @@ -31,40 +32,44 @@ uuid = "1520ce14-60c1-5f80-bbc7-55ef81b5835c" version = "0.4.5" [[deps.Accessors]] -deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "LinearAlgebra", "MacroTools", "Markdown", "Test"] -git-tree-sha1 = "f61b15be1d76846c0ce31d3fcfac5380ae53db6a" +deps = ["CompositionsBase", "ConstructionBase", "Dates", "InverseFunctions", "MacroTools"] +git-tree-sha1 = "2eeb2c9bef11013efc6f8f97f32ee59b146b09fb" uuid = "7d9f7c33-5ae7-4f3b-8dc6-eff91059b697" -version = "0.1.37" +version = "0.1.44" [deps.Accessors.extensions] - AccessorsAxisKeysExt = "AxisKeys" - AccessorsIntervalSetsExt = "IntervalSets" - AccessorsStaticArraysExt = "StaticArrays" - AccessorsStructArraysExt = "StructArrays" - AccessorsUnitfulExt = "Unitful" + AxisKeysExt = "AxisKeys" + IntervalSetsExt = "IntervalSets" + LinearAlgebraExt = "LinearAlgebra" + StaticArraysExt = "StaticArrays" + StructArraysExt = "StructArrays" + TestExt = "Test" + UnitfulExt = "Unitful" [deps.Accessors.weakdeps] AxisKeys = "94b1ba4f-4ee9-5380-92f1-94cde586c3c5" IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" - Requires = "ae029012-a4dd-5104-9daa-d747884805df" + LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d" [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "6a55b747d1812e699320963ffde36f1ebdda4099" +git-tree-sha1 = "35ea197a51ce46fcd01c4a44befce0578a1aaeca" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "4.0.4" -weakdeps = ["StaticArrays"] +version = "4.5.0" +weakdeps = ["SparseArrays", "StaticArrays"] [deps.Adapt.extensions] + AdaptSparseArraysExt = "SparseArrays" AdaptStaticArraysExt = "StaticArrays" [[deps.AdaptivePredicates]] -git-tree-sha1 = "7d5da5dd472490d048b081ca1bda4a7821b06456" +git-tree-sha1 = "7e651ea8d262d2d74ce75fdf47c4d63c07dba7a6" uuid = "35492f91-a3bd-45ad-95db-fcad7dcfedb7" -version = "1.1.1" +version = "1.2.0" [[deps.AliasTables]] deps = ["PtrArrays", "Random"] @@ -74,44 +79,50 @@ version = "1.1.3" [[deps.Animations]] deps = ["Colors"] -git-tree-sha1 = "e81c509d2c8e49592413bfb0bb3b08150056c79d" +git-tree-sha1 = "e092fa223bf66a3c41f9c022bd074d916dc303e7" uuid = "27a7e980-b3e6-11e9-2bcd-0b925532e340" -version = "0.4.1" +version = "0.4.2" [[deps.ArgCheck]] -git-tree-sha1 = "a3a402a35a2f7e0b87828ccabbd5ebfbebe356b4" +git-tree-sha1 = "f9e9a66c9b7be1ad7372bbd9b062d9230c30c5ce" uuid = "dce04be8-c92d-5529-be00-80e4d2c0e197" -version = "2.3.0" +version = "2.5.0" [[deps.ArgTools]] uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" -version = "1.1.1" +version = "1.1.2" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra"] -git-tree-sha1 = "f54c23a5d304fb87110de62bace7777d59088c34" +git-tree-sha1 = "78b3a7a536b4b0a747a0f296ea77091ca0a9f9a3" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.15.0" +version = "7.23.0" [deps.ArrayInterface.extensions] + ArrayInterfaceAMDGPUExt = "AMDGPU" ArrayInterfaceBandedMatricesExt = "BandedMatrices" ArrayInterfaceBlockBandedMatricesExt = "BlockBandedMatrices" ArrayInterfaceCUDAExt = "CUDA" - ArrayInterfaceCUDSSExt = "CUDSS" + ArrayInterfaceCUDSSExt = ["CUDSS", "CUDA"] + ArrayInterfaceChainRulesCoreExt = "ChainRulesCore" ArrayInterfaceChainRulesExt = "ChainRules" ArrayInterfaceGPUArraysCoreExt = "GPUArraysCore" + ArrayInterfaceMetalExt = "Metal" ArrayInterfaceReverseDiffExt = "ReverseDiff" ArrayInterfaceSparseArraysExt = "SparseArrays" ArrayInterfaceStaticArraysCoreExt = "StaticArraysCore" ArrayInterfaceTrackerExt = "Tracker" [deps.ArrayInterface.weakdeps] + AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" BandedMatrices = "aae01518-5342-5314-be14-df237901396f" BlockBandedMatrices = "ffab5731-97b5-5995-9138-79e8c1846df0" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" CUDSS = "45b445bb-4962-46a0-9369-b4df9d0f772e" ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" @@ -119,18 +130,31 @@ version = "7.15.0" [[deps.Artifacts]] uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" +version = "1.11.0" [[deps.Atomix]] deps = ["UnsafeAtomics"] -git-tree-sha1 = "c06a868224ecba914baa6942988e2f2aade419be" +git-tree-sha1 = "b8651b2eb5796a386b0398a20b519a6a6150f75c" uuid = "a9b6321e-bd34-4604-b9c9-b65b8de01458" -version = "0.1.0" +version = "1.1.3" + + [deps.Atomix.extensions] + AtomixCUDAExt = "CUDA" + AtomixMetalExt = "Metal" + AtomixOpenCLExt = "OpenCL" + AtomixoneAPIExt = "oneAPI" + + [deps.Atomix.weakdeps] + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + OpenCL = "08131aa3-fb12-5dee-8b74-c09406e224a2" + oneAPI = "8f75cd03-7ff8-4ecb-9b8f-daf728133b1b" [[deps.Automa]] -deps = ["PrecompileTools", "TranscodingStreams"] -git-tree-sha1 = "014bc22d6c400a7703c0f5dc1fdc302440cf88be" +deps = ["PrecompileTools", "SIMD", "TranscodingStreams"] +git-tree-sha1 = "a8f503e8e1a5f583fbef15a8440c8c7e32185df2" uuid = "67c07d97-cdcb-5c2c-af73-a7f9c32a568b" -version = "1.0.4" +version = "1.1.0" [[deps.AxisAlgorithms]] deps = ["LinearAlgebra", "Random", "SparseArrays", "WoodburyMatrices"] @@ -140,15 +164,15 @@ version = "1.1.0" [[deps.AxisArrays]] deps = ["Dates", "IntervalSets", "IterTools", "RangeArrays"] -git-tree-sha1 = "16351be62963a67ac4083f748fdb3cca58bfd52f" +git-tree-sha1 = "4126b08903b777c88edf1754288144a0492c05ad" uuid = "39de3d68-74b9-583c-8d2d-e117c070f3a9" -version = "0.4.7" +version = "0.4.8" [[deps.BangBang]] -deps = ["Accessors", "ConstructionBase", "InitialValues", "LinearAlgebra", "Requires"] -git-tree-sha1 = "e2144b631226d9eeab2d746ca8880b7ccff504ae" +deps = ["Accessors", "ConstructionBase", "InitialValues", "LinearAlgebra"] +git-tree-sha1 = "cceb62468025be98d42a5dc581b163c20896b040" uuid = "198e06fe-97b7-11e9-32a5-e1d131e6ad66" -version = "0.4.3" +version = "0.4.9" [deps.BangBang.extensions] BangBangChainRulesCoreExt = "ChainRulesCore" @@ -168,6 +192,12 @@ version = "0.4.3" [[deps.Base64]] uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" +version = "1.11.0" + +[[deps.BaseDirs]] +git-tree-sha1 = "bca794632b8a9bbe159d56bf9e31c422671b35e0" +uuid = "18cc8868-cbac-4acf-b575-c8ff214dc66f" +version = "1.3.2" [[deps.Baselet]] git-tree-sha1 = "aebf55e6d7795e02ca500a689d326ac979aaf89e" @@ -175,10 +205,15 @@ uuid = "9718e550-a3fa-408a-8086-8db961cd8217" version = "0.1.1" [[deps.BenchmarkTools]] -deps = ["JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] -git-tree-sha1 = "f1dff6729bc61f4d49e140da1af55dcd1ac97b2f" +deps = ["Compat", "JSON", "Logging", "Printf", "Profile", "Statistics", "UUIDs"] +git-tree-sha1 = "7fecfb1123b8d0232218e2da0c213004ff15358d" uuid = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" -version = "1.5.0" +version = "1.6.3" + +[[deps.BitFlags]] +git-tree-sha1 = "0691e34b3bb8be9307330f88d1a3c3f25466c24d" +uuid = "d1d4a3ce-64b1-5f1a-9ba4-7e7e69966f35" +version = "0.1.9" [[deps.BitTwiddlingConvenienceFunctions]] deps = ["Static"] @@ -186,11 +221,16 @@ git-tree-sha1 = "f21cfd4950cb9f0587d5067e69405ad2acd27b87" uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" version = "0.1.6" +[[deps.BufferedStreams]] +git-tree-sha1 = "6863c5b7fc997eadcabdbaf6c5f201dc30032643" +uuid = "e1450e63-4bb3-523b-b2a4-4ffa8c0fd77d" +version = "1.2.2" + [[deps.Bzip2_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1b96ea4a01afe0ea4090c5c8039690672dd13f2e" uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" -version = "1.0.8+1" +version = "1.0.9+0" [[deps.CEnum]] git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" @@ -198,13 +238,20 @@ uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" version = "0.5.0" [[deps.CPUSummary]] -deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] -git-tree-sha1 = "5a97e67919535d6841172016c9530fd69494e5ec" +deps = ["CpuId", "IfElse", "PrecompileTools", "Preferences", "Static"] +git-tree-sha1 = "f3a21d7fc84ba618a779d1ed2fcca2e682865bab" uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.2.6" +version = "0.2.7" [[deps.CRC32c]] uuid = "8bf52ea8-c179-5cab-976a-9e18b702a9bc" +version = "1.11.0" + +[[deps.CRlibm]] +deps = ["CRlibm_jll"] +git-tree-sha1 = "66188d9d103b92b6cd705214242e27f5737a1e5e" +uuid = "96374032-68de-5a5b-8d9e-752f78720389" +version = "1.0.2" [[deps.CRlibm_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -214,33 +261,33 @@ version = "1.0.1+0" [[deps.Cairo]] deps = ["Cairo_jll", "Colors", "Glib_jll", "Graphics", "Libdl", "Pango_jll"] -git-tree-sha1 = "7b6ad8c35f4bc3bca8eb78127c8b99719506a5fb" +git-tree-sha1 = "71aa551c5c33f1a4415867fe06b7844faadb0ae9" uuid = "159f3aea-2a34-519c-b102-8c37f9878175" -version = "1.1.0" +version = "1.1.1" [[deps.CairoMakie]] deps = ["CRC32c", "Cairo", "Cairo_jll", "Colors", "FileIO", "FreeType", "GeometryBasics", "LinearAlgebra", "Makie", "PrecompileTools"] -git-tree-sha1 = "3a6f8462053d199e6c81a83c7d22a9b8314c716a" +git-tree-sha1 = "9bd45574379e50579a78774334f4a1f1238c0af5" uuid = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" -version = "0.12.6" +version = "0.13.10" [[deps.Cairo_jll]] deps = ["Artifacts", "Bzip2_jll", "CompilerSupportLibraries_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "JLLWrappers", "LZO_jll", "Libdl", "Pixman_jll", "Xorg_libXext_jll", "Xorg_libXrender_jll", "Zlib_jll", "libpng_jll"] -git-tree-sha1 = "a2f1c8c668c8e3cb4cca4e57a8efdb09067bb3fd" +git-tree-sha1 = "a21c5464519504e41e0cbc91f0188e8ca23d7440" uuid = "83423d85-b0ee-5818-9007-b63ccbeb887a" -version = "1.18.0+2" +version = "1.18.5+1" [[deps.ChainRules]] deps = ["Adapt", "ChainRulesCore", "Compat", "Distributed", "GPUArraysCore", "IrrationalConstants", "LinearAlgebra", "Random", "RealDot", "SparseArrays", "SparseInverseSubset", "Statistics", "StructArrays", "SuiteSparse"] -git-tree-sha1 = "227985d885b4dbce5e18a96f9326ea1e836e5a03" +git-tree-sha1 = "3c190c570fb3108c09f838607386d10c71701789" uuid = "082447d4-558c-5d27-93f4-14fc19e9eca2" -version = "1.69.0" +version = "1.73.0" [[deps.ChainRulesCore]] deps = ["Compat", "LinearAlgebra"] -git-tree-sha1 = "71acdbf594aab5bbb2cec89b208c41b4c411e49f" +git-tree-sha1 = "e4c6a16e77171a5f5e25e9646617ab1c276c5607" uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.24.0" +version = "1.26.0" weakdeps = ["SparseArrays"] [deps.ChainRulesCore.extensions] @@ -252,29 +299,39 @@ git-tree-sha1 = "05ba0d07cd4fd8b7a39541e31a7b0254704ea581" uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" version = "0.1.13" +[[deps.CodecZlib]] +deps = ["TranscodingStreams", "Zlib_jll"] +git-tree-sha1 = "962834c22b66e32aa10f7611c08c8ca4e20749a9" +uuid = "944b1d66-785c-5afd-91f1-9de20f533193" +version = "0.7.8" + [[deps.ColorBrewer]] -deps = ["Colors", "JSON", "Test"] -git-tree-sha1 = "61c5334f33d91e570e1d0c3eb5465835242582c4" +deps = ["Colors", "JSON"] +git-tree-sha1 = "07da79661b919001e6863b81fc572497daa58349" uuid = "a2cac450-b92f-5266-8821-25eda20663c8" -version = "0.4.0" +version = "0.4.2" [[deps.ColorSchemes]] deps = ["ColorTypes", "ColorVectorSpace", "Colors", "FixedPointNumbers", "PrecompileTools", "Random"] -git-tree-sha1 = "b5278586822443594ff615963b0c09755771b3e0" +git-tree-sha1 = "b0fd3f56fa442f81e0a47815c92245acfaaa4e34" uuid = "35d6a980-a343-548e-a6ea-1d62b119f2f4" -version = "3.26.0" +version = "3.31.0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] -git-tree-sha1 = "b10d0b65641d57b8b4d5e234446582de5047050d" +git-tree-sha1 = "67e11ee83a43eb71ddc950302c53bf33f0690dfe" uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" -version = "0.11.5" +version = "0.12.1" +weakdeps = ["StyledStrings"] + + [deps.ColorTypes.extensions] + StyledStringsExt = "StyledStrings" [[deps.ColorVectorSpace]] deps = ["ColorTypes", "FixedPointNumbers", "LinearAlgebra", "Requires", "Statistics", "TensorCore"] -git-tree-sha1 = "a1f44953f2382ebb937d60dafbe2deea4bd23249" +git-tree-sha1 = "8b3b6f87ce8f65a2b4f857528fd8d70086cd72b1" uuid = "c3611d14-8923-5661-9e6a-0046d554d3a4" -version = "0.10.0" +version = "0.11.0" weakdeps = ["SpecialFunctions"] [deps.ColorVectorSpace.extensions] @@ -282,15 +339,15 @@ weakdeps = ["SpecialFunctions"] [[deps.Colors]] deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] -git-tree-sha1 = "362a287c3aa50601b0bc359053d5c2468f0e7ce0" +git-tree-sha1 = "37ea44092930b1811e666c3bc38065d7d87fcc74" uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" -version = "0.12.11" +version = "0.13.1" [[deps.CommonSubexpressions]] -deps = ["MacroTools", "Test"] -git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" +deps = ["MacroTools"] +git-tree-sha1 = "cda2cfaebb4be89c9084adaca7dd7333369715c5" uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" -version = "0.3.0" +version = "0.3.1" [[deps.CommonWorldInvalidations]] git-tree-sha1 = "ae52d1c52048455e85a387fbee9be553ec2b68d0" @@ -299,9 +356,9 @@ version = "1.0.0" [[deps.Compat]] deps = ["TOML", "UUIDs"] -git-tree-sha1 = "8ae8d32e09f0dcf42a36b90d4e17f5dd2e4c4215" +git-tree-sha1 = "9d8a54ce4b17aa5bdce0ea5c34bc5e7c340d16ad" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.16.0" +version = "4.18.1" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -310,7 +367,7 @@ weakdeps = ["Dates", "LinearAlgebra"] [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.1.1+0" +version = "1.3.0+1" [[deps.CompositionsBase]] git-tree-sha1 = "802bb88cd69dfd1509f6670416bd4434015693ad" @@ -326,15 +383,27 @@ git-tree-sha1 = "f749037478283d372048690eb3b5f92a79432b34" uuid = "2569d6c7-a4a2-43d3-a901-331e8e4be471" version = "0.2.3" +[[deps.ConcurrentUtilities]] +deps = ["Serialization", "Sockets"] +git-tree-sha1 = "21d088c496ea22914fe80906eb5bce65755e5ec8" +uuid = "f0e56b4a-5159-44fe-b623-3e5288b988bb" +version = "2.5.1" + +[[deps.CondaPkg]] +deps = ["JSON", "Markdown", "MicroMamba", "Pidfile", "Pkg", "Preferences", "Scratch", "TOML", "pixi_jll"] +git-tree-sha1 = "0300af904a8c8d41ff715a60a6959136d22b8572" +uuid = "992eb4ea-22a4-4c89-a5bb-47a3300528ab" +version = "0.2.34" + [[deps.ConstructionBase]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "d8a9c0b6ac2d9081bf76324b39c78ca3ce4f0c98" +git-tree-sha1 = "b4b092499347b18a015186eae3042f72267106cb" uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.6" -weakdeps = ["IntervalSets", "StaticArrays"] +version = "1.6.0" +weakdeps = ["IntervalSets", "LinearAlgebra", "StaticArrays"] [deps.ConstructionBase.extensions] ConstructionBaseIntervalSetsExt = "IntervalSets" + ConstructionBaseLinearAlgebraExt = "LinearAlgebra" ConstructionBaseStaticArraysExt = "StaticArrays" [[deps.ContextVariablesX]] @@ -354,16 +423,21 @@ git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" uuid = "adafc99b-e345-5852-983c-f28acb93d879" version = "0.3.1" +[[deps.Crayons]] +git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" +uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" +version = "4.1.1" + [[deps.DataAPI]] git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" version = "1.16.0" [[deps.DataStructures]] -deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "1d0a14036acb104d9e89698bd408f63ab58cdc82" +deps = ["OrderedCollections"] +git-tree-sha1 = "e357641bb3e0638d353c4b29ea0e40ea644066a6" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.20" +version = "0.19.3" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -373,6 +447,7 @@ version = "1.0.0" [[deps.Dates]] deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" +version = "1.11.0" [[deps.DefineSingletons]] git-tree-sha1 = "0fba8b706d0178b4dc7fd44a96a92382c9065c2c" @@ -381,9 +456,9 @@ version = "0.1.2" [[deps.DelaunayTriangulation]] deps = ["AdaptivePredicates", "EnumX", "ExactPredicates", "Random"] -git-tree-sha1 = "b5f1c6532d2ea71e99b74231b0a3d53fba846ced" +git-tree-sha1 = "c55f5a9fd67bdbc8e089b5a3111fe4292986a8e8" uuid = "927a84f5-c5f4-47a5-9785-b46e178433df" -version = "1.1.3" +version = "1.6.6" [[deps.DelimitedFiles]] deps = ["Mmap"] @@ -405,9 +480,9 @@ version = "1.15.1" [[deps.DispatchDoctor]] deps = ["MacroTools", "Preferences"] -git-tree-sha1 = "c2acd1de2c4c357928f9fb6b60b402d914621378" +git-tree-sha1 = "42cd00edaac86f941815fe557c1d01e11913e07c" uuid = "8d63f2c5-f18a-4cf2-ba9d-b3f60fc568c8" -version = "0.4.14" +version = "0.4.28" weakdeps = ["ChainRulesCore", "EnzymeCore"] [deps.DispatchDoctor.extensions] @@ -417,12 +492,13 @@ weakdeps = ["ChainRulesCore", "EnzymeCore"] [[deps.Distributed]] deps = ["Random", "Serialization", "Sockets"] uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" +version = "1.11.0" [[deps.Distributions]] deps = ["AliasTables", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns"] -git-tree-sha1 = "0e0a1264b0942f1f3abb2b30891f2a590cc652ac" +git-tree-sha1 = "fbcc7610f6d8348428f722ecbe0e6cfe22e672c6" uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.110" +version = "0.25.123" [deps.Distributions.extensions] DistributionsChainRulesCoreExt = "ChainRulesCore" @@ -435,15 +511,14 @@ version = "0.25.110" Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [[deps.DocStringExtensions]] -deps = ["LibGit2"] -git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" +git-tree-sha1 = "7442a5dfe1ebb773c29cc2962a8980f47221d76c" uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" -version = "0.9.3" +version = "0.9.5" [[deps.Downloads]] deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" -version = "1.6.0" +version = "1.7.0" [[deps.EarCut_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -452,84 +527,93 @@ uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" version = "2.2.4+0" [[deps.EnumX]] -git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" +git-tree-sha1 = "c49898e8438c828577f04b92fc9368c388ac783c" uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" -version = "1.0.4" +version = "1.0.7" [[deps.Enzyme]] -deps = ["CEnum", "EnzymeCore", "Enzyme_jll", "GPUCompiler", "LLVM", "Libdl", "LinearAlgebra", "ObjectFile", "Preferences", "Printf", "Random"] -git-tree-sha1 = "e43660bc5ee8376555a4b4b151ed5f3e9ada0075" +deps = ["CEnum", "EnzymeCore", "Enzyme_jll", "GPUCompiler", "InteractiveUtils", "LLVM", "Libdl", "LinearAlgebra", "ObjectFile", "PrecompileTools", "Preferences", "Printf", "Random", "SparseArrays"] +git-tree-sha1 = "3b8ff73a9885aaea237bc262bd5fc798b5fd866f" uuid = "7da242da-08ed-463a-9acd-ee780be4f1d9" -version = "0.12.31" +version = "0.13.134" [deps.Enzyme.extensions] EnzymeBFloat16sExt = "BFloat16s" EnzymeChainRulesCoreExt = "ChainRulesCore" + EnzymeGPUArraysCoreExt = "GPUArraysCore" EnzymeLogExpFunctionsExt = "LogExpFunctions" EnzymeSpecialFunctionsExt = "SpecialFunctions" EnzymeStaticArraysExt = "StaticArrays" [deps.Enzyme.weakdeps] + ADTypes = "47edcb42-4c32-4615-8424-f2b9edc5f35b" BFloat16s = "ab4f0b2a-ad5b-11e8-123f-65d77653426b" ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + GPUArraysCore = "46192b85-c4d5-4398-a991-12ede77f4527" LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" [[deps.EnzymeCore]] -git-tree-sha1 = "8f205a601760f4798a10f138c3940f0451d95188" +git-tree-sha1 = "990991b8aa76d17693a98e3a915ac7aa49f08d1a" uuid = "f151be2c-9106-41f4-ab19-57ee4f262869" -version = "0.7.8" -weakdeps = ["Adapt"] +version = "0.8.18" +weakdeps = ["Adapt", "ChainRulesCore"] [deps.EnzymeCore.extensions] AdaptExt = "Adapt" + EnzymeCoreChainRulesCoreExt = "ChainRulesCore" [[deps.Enzyme_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "97dcff677b657a7de2d9ae1d80d672ad55004c68" +git-tree-sha1 = "4c22000e08aaa862526d9a41cfb7003e4002e653" uuid = "7cc45869-7501-5eee-bdea-0790c847d4ef" -version = "0.0.144+0" +version = "0.0.256+0" [[deps.ExactPredicates]] deps = ["IntervalArithmetic", "Random", "StaticArrays"] -git-tree-sha1 = "b3f2ff58735b5f024c392fde763f29b057e4b025" +git-tree-sha1 = "83231673ea4d3d6008ac74dc5079e77ab2209d8f" uuid = "429591f6-91af-11e9-00e2-59fbe8cec110" -version = "2.2.8" +version = "2.2.9" + +[[deps.ExceptionUnwrapping]] +deps = ["Test"] +git-tree-sha1 = "d36f682e590a83d63d1c7dbd287573764682d12a" +uuid = "460bff9d-24e4-43bc-9d9f-a8973cb893f4" +version = "0.1.11" [[deps.Expat_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "1c6317308b9dc757616f0b5cb379db10494443a7" +git-tree-sha1 = "27af30de8b5445644e8ffe3bcb0d72049c089cf1" uuid = "2e619515-83b5-522b-bb60-26c02a35a201" -version = "2.6.2+0" +version = "2.7.3+0" [[deps.ExprTools]] git-tree-sha1 = "27415f162e6028e81c72b82ef756bf321213b6ec" uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" version = "0.1.10" +[[deps.ExpressionExplorer]] +git-tree-sha1 = "5f1c005ed214356bbe41d442cc1ccd416e510b7e" +uuid = "21656369-7473-754a-2065-74616d696c43" +version = "1.1.4" + [[deps.Extents]] -git-tree-sha1 = "94997910aca72897524d2237c41eb852153b0f65" +git-tree-sha1 = "b309b36a9e02fe7be71270dd8c0fd873625332b4" uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" -version = "0.1.3" +version = "0.1.6" [[deps.FFMPEG_jll]] deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "JLLWrappers", "LAME_jll", "Libdl", "Ogg_jll", "OpenSSL_jll", "Opus_jll", "PCRE2_jll", "Zlib_jll", "libaom_jll", "libass_jll", "libfdk_aac_jll", "libvorbis_jll", "x264_jll", "x265_jll"] -git-tree-sha1 = "ab3f7e1819dba9434a3a5126510c8fda3a4e7000" +git-tree-sha1 = "eaa040768ea663ca695d442be1bc97edfe6824f2" uuid = "b22a6f82-2f65-5046-a5b2-351ab43fb4e5" -version = "6.1.1+0" - -[[deps.FFTW]] -deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] -git-tree-sha1 = "4820348781ae578893311153d69049a93d05f39d" -uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" -version = "1.8.0" +version = "6.1.3+0" -[[deps.FFTW_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "c6033cc3892d0ef5bb9cd29b7f2f0331ea5184ea" -uuid = "f5851436-0d7a-5f13-b9de-f02708fd171a" -version = "3.3.10+0" +[[deps.FFTA]] +deps = ["AbstractFFTs", "DocStringExtensions", "LinearAlgebra", "MuladdMacro", "Primes", "Random", "Reexport"] +git-tree-sha1 = "65e55303b72f4a567a51b174dd2c47496efeb95a" +uuid = "b86e33f2-c0db-4aa1-a6e0-ab43e668529e" +version = "0.3.1" [[deps.FLoops]] deps = ["BangBang", "Compat", "FLoopsBase", "InitialValues", "JuliaVariables", "MLStyle", "Serialization", "Setfield", "Transducers"] @@ -550,9 +634,13 @@ version = "0.3.2" [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] -git-tree-sha1 = "82d8afa92ecf4b52d78d869f038ebfb881267322" +git-tree-sha1 = "6522cfb3b8fe97bec632252263057996cbd3de20" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" -version = "1.16.3" +version = "1.18.0" +weakdeps = ["HTTP"] + + [deps.FileIO.extensions] + HTTPExt = "HTTP" [[deps.FilePaths]] deps = ["FilePathsBase", "MacroTools", "Reexport", "Requires"] @@ -561,24 +649,31 @@ uuid = "8fc22ac5-c921-52a6-82fd-178b2807b824" version = "0.8.3" [[deps.FilePathsBase]] -deps = ["Compat", "Dates", "Mmap", "Printf", "Test", "UUIDs"] -git-tree-sha1 = "9f00e42f8d99fdde64d40c8ea5d14269a2e2c1aa" +deps = ["Compat", "Dates"] +git-tree-sha1 = "3bab2c5aa25e7840a4b065805c0cdfc01f3068d2" uuid = "48062228-2e41-5def-b9a4-89aafe57970f" -version = "0.9.21" +version = "0.9.24" +weakdeps = ["Mmap", "Test"] + + [deps.FilePathsBase.extensions] + FilePathsBaseMmapExt = "Mmap" + FilePathsBaseTestExt = "Test" [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" +version = "1.11.0" [[deps.FillArrays]] deps = ["LinearAlgebra"] -git-tree-sha1 = "0653c0a2396a6da5bc4766c43041ef5fd3efbe57" +git-tree-sha1 = "2f979084d1e13948a3352cf64a25df6bd3b4dca3" uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.11.0" -weakdeps = ["PDMats", "SparseArrays", "Statistics"] +version = "1.16.0" +weakdeps = ["PDMats", "SparseArrays", "StaticArrays", "Statistics"] [deps.FillArrays.extensions] FillArraysPDMatsExt = "PDMats" FillArraysSparseArraysExt = "SparseArrays" + FillArraysStaticArraysExt = "StaticArrays" FillArraysStatisticsExt = "Statistics" [[deps.FixedPointNumbers]] @@ -588,30 +683,36 @@ uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" version = "0.8.5" [[deps.Flux]] -deps = ["Adapt", "ChainRulesCore", "Compat", "Functors", "LinearAlgebra", "MLUtils", "MacroTools", "NNlib", "OneHotArrays", "Optimisers", "Preferences", "ProgressLogging", "Random", "Reexport", "SparseArrays", "SpecialFunctions", "Statistics", "Zygote"] -git-tree-sha1 = "fbf100b4bed74c9b6fac0ebd1031e04977d35b3b" +deps = ["ADTypes", "Adapt", "ChainRulesCore", "Compat", "EnzymeCore", "Functors", "LinearAlgebra", "MLCore", "MLDataDevices", "MLUtils", "MacroTools", "NNlib", "OneHotArrays", "Optimisers", "Preferences", "ProgressLogging", "Random", "Reexport", "Setfield", "SparseArrays", "SpecialFunctions", "Statistics", "Zygote"] +git-tree-sha1 = "ea6715b3d7a95a07a62109df1c9ede2641a50706" uuid = "587475ba-b771-5e3f-ad9e-33799f191a9c" -version = "0.14.19" +version = "0.16.9" [deps.Flux.extensions] FluxAMDGPUExt = "AMDGPU" FluxCUDAExt = "CUDA" FluxCUDAcuDNNExt = ["CUDA", "cuDNN"] FluxEnzymeExt = "Enzyme" - FluxMetalExt = "Metal" + FluxFiniteDifferencesExt = "FiniteDifferences" + FluxMPIExt = "MPI" + FluxMPINCCLExt = ["CUDA", "MPI", "NCCL"] + FluxMooncakeExt = "Mooncake" [deps.Flux.weakdeps] AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" - Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + FiniteDifferences = "26cc04aa-876d-5657-8c51-4c34ba976000" + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" + NCCL = "3fe64909-d7a1-4096-9b7d-7a0f12cf0f6b" cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" [[deps.Fontconfig_jll]] deps = ["Artifacts", "Bzip2_jll", "Expat_jll", "FreeType2_jll", "JLLWrappers", "Libdl", "Libuuid_jll", "Zlib_jll"] -git-tree-sha1 = "db16beca600632c95fc8aca29890d83788dd8b23" +git-tree-sha1 = "f85dac9a96a01087df6e3a749840015a0ca3817d" uuid = "a3f928ae-7b40-5064-980b-68af3947d34b" -version = "2.13.96+0" +version = "2.17.1+0" [[deps.Format]] git-tree-sha1 = "9c68794ef81b08086aeb32eeaf33531668d5f5fc" @@ -620,9 +721,9 @@ version = "1.3.7" [[deps.ForwardDiff]] deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions"] -git-tree-sha1 = "cf0fe81336da9fb90944683b8c41984b08793dad" +git-tree-sha1 = "cddeab6487248a39dae1a960fff0ac17b2a28888" uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "0.10.36" +version = "1.3.3" weakdeps = ["StaticArrays"] [deps.ForwardDiff.extensions] @@ -636,136 +737,132 @@ version = "4.1.1" [[deps.FreeType2_jll]] deps = ["Artifacts", "Bzip2_jll", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "5c1d8ae0efc6c2e7b1fc502cbe25def8f661b7bc" +git-tree-sha1 = "70329abc09b886fd2c5d94ad2d9527639c421e3e" uuid = "d7e528f0-a631-5988-bf34-fe36492bcfd7" -version = "2.13.2+0" +version = "2.14.3+1" [[deps.FreeTypeAbstraction]] -deps = ["ColorVectorSpace", "Colors", "FreeType", "GeometryBasics"] -git-tree-sha1 = "2493cdfd0740015955a8e46de4ef28f49460d8bc" +deps = ["BaseDirs", "ColorVectorSpace", "Colors", "FreeType", "GeometryBasics", "Mmap"] +git-tree-sha1 = "4ebb930ef4a43817991ba35db6317a05e59abd11" uuid = "663a7486-cb36-511b-a19d-713bb74d65c9" -version = "0.10.3" +version = "0.10.8" [[deps.FriBidi_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "1ed150b39aebcc805c26b93a8d0122c940f64ce2" +git-tree-sha1 = "7a214fdac5ed5f59a22c2d9a885a16da1c74bbc7" uuid = "559328eb-81f9-559d-9380-de523a88c83c" -version = "1.0.14+0" +version = "1.0.17+0" [[deps.Functors]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "64d8e93700c7a3f28f717d265382d52fac9fa1c1" +deps = ["Compat", "ConstructionBase", "LinearAlgebra", "Random"] +git-tree-sha1 = "60a0339f28a233601cb74468032b5c302d5067de" uuid = "d9f16b24-f501-4c13-a1f2-28368ffc5196" -version = "0.4.12" +version = "0.5.2" [[deps.Future]] deps = ["Random"] uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" - -[[deps.GPUArrays]] -deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "a74c3f1cf56a3dfcdef0605f8cdb7015926aae30" -uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "10.3.0" +version = "1.11.0" [[deps.GPUArraysCore]] deps = ["Adapt"] -git-tree-sha1 = "ec632f177c0d990e64d955ccc1b8c04c485a0950" +git-tree-sha1 = "83cf05ab16a73219e5f6bd1bdfa9848fa24ac627" uuid = "46192b85-c4d5-4398-a991-12ede77f4527" -version = "0.1.6" +version = "0.2.0" [[deps.GPUCompiler]] -deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Preferences", "Scratch", "Serialization", "TOML", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "ab29216184312f99ff957b32cd63c2fe9c928b91" +deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "PrecompileTools", "Preferences", "Scratch", "Serialization", "TOML", "Tracy", "UUIDs"] +git-tree-sha1 = "966946d226e8b676ca6409454718accb18c34c54" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.26.7" - -[[deps.GeoInterface]] -deps = ["Extents"] -git-tree-sha1 = "9fff8990361d5127b770e3454488360443019bb3" -uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" -version = "1.3.5" +version = "1.8.2" [[deps.GeometryBasics]] -deps = ["EarCut_jll", "Extents", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] -git-tree-sha1 = "b62f2b2d76cee0d61a2ef2b3118cd2a3215d3134" +deps = ["EarCut_jll", "Extents", "IterTools", "LinearAlgebra", "PrecompileTools", "Random", "StaticArrays"] +git-tree-sha1 = "1f5a80f4ed9f5a4aada88fc2db456e637676414b" uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" -version = "0.4.11" +version = "0.5.10" -[[deps.Gettext_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll", "Pkg", "XML2_jll"] -git-tree-sha1 = "9b02998aba7bf074d14de89f9d37ca24a1a0b046" -uuid = "78b55507-aeef-58d4-861c-77aaff3498b1" -version = "0.21.0+0" + [deps.GeometryBasics.extensions] + GeometryBasicsGeoInterfaceExt = "GeoInterface" + + [deps.GeometryBasics.weakdeps] + GeoInterface = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" + +[[deps.GettextRuntime_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Libiconv_jll"] +git-tree-sha1 = "45288942190db7c5f760f59c04495064eedf9340" +uuid = "b0724c58-0f36-5564-988d-3bb0596ebc4a" +version = "0.22.4+0" + +[[deps.Giflib_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "6570366d757b50fabae9f4315ad74d2e40c0560a" +uuid = "59f7168a-df46-5410-90c8-f2779963d0ec" +version = "5.2.3+0" [[deps.Glib_jll]] -deps = ["Artifacts", "Gettext_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] -git-tree-sha1 = "7c82e6a6cd34e9d935e9aa4051b66c6ff3af59ba" +deps = ["Artifacts", "GettextRuntime_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Libiconv_jll", "Libmount_jll", "PCRE2_jll", "Zlib_jll"] +git-tree-sha1 = "24f6def62397474a297bfcec22384101609142ed" uuid = "7746bdde-850d-59dc-9ae8-88ece973131d" -version = "2.80.2+0" +version = "2.86.3+0" [[deps.Graphics]] deps = ["Colors", "LinearAlgebra", "NaNMath"] -git-tree-sha1 = "d61890399bc535850c4bf08e4e0d3a7ad0f21cbd" +git-tree-sha1 = "a641238db938fff9b2f60d08ed9030387daf428c" uuid = "a2bd30eb-e257-5431-a919-1863eab51364" -version = "1.1.2" +version = "1.1.3" [[deps.Graphite2_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "344bf40dcab1073aca04aa0df4fb092f920e4011" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "8a6dbda1fd736d60cc477d99f2e7a042acfa46e8" uuid = "3b182d85-2403-5c21-9c21-1e1f0cc25472" -version = "1.3.14+0" +version = "1.3.15+0" [[deps.GridLayoutBase]] deps = ["GeometryBasics", "InteractiveUtils", "Observables"] -git-tree-sha1 = "fc713f007cff99ff9e50accba6373624ddd33588" +git-tree-sha1 = "93d5c27c8de51687a2c70ec0716e6e76f298416f" uuid = "3955a311-db13-416c-9275-1d80ed98e5e9" -version = "0.11.0" +version = "0.11.2" [[deps.Grisu]] git-tree-sha1 = "53bb909d1151e57e2484c3d1b53e19552b887fb2" uuid = "42e2da0e-8278-4e71-bc24-59509adca0fe" version = "1.0.2" +[[deps.HTTP]] +deps = ["Base64", "CodecZlib", "ConcurrentUtilities", "Dates", "ExceptionUnwrapping", "Logging", "LoggingExtras", "MbedTLS", "NetworkOptions", "OpenSSL", "PrecompileTools", "Random", "SimpleBufferStream", "Sockets", "URIs", "UUIDs"] +git-tree-sha1 = "51059d23c8bb67911a2e6fd5130229113735fc7e" +uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" +version = "1.11.0" + [[deps.HarfBuzz_jll]] -deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll", "Pkg"] -git-tree-sha1 = "129acf094d168394e80ee1dc4bc06ec835e510a3" +deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "Glib_jll", "Graphite2_jll", "JLLWrappers", "Libdl", "Libffi_jll"] +git-tree-sha1 = "f923f9a774fcf3f5cb761bfa43aeadd689714813" uuid = "2e76f6c2-a576-52d4-95c1-20adfe4de566" -version = "2.8.1+1" +version = "8.5.1+0" + +[[deps.HashArrayMappedTries]] +git-tree-sha1 = "2eaa69a7cab70a52b9687c8bf950a5a93ec895ae" +uuid = "076d061b-32b6-4027-95e0-9a2c6f6d7e74" +version = "0.2.0" [[deps.HostCPUFeatures]] -deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] -git-tree-sha1 = "8e070b599339d622e9a081d17230d74a5c473293" +deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Preferences", "Static"] +git-tree-sha1 = "af9ab7d1f70739a47f03be78771ebda38c3c71bf" uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" -version = "0.1.17" - -[[deps.Hwloc]] -deps = ["CEnum", "Hwloc_jll", "Printf"] -git-tree-sha1 = "6a3d80f31ff87bc94ab22a7b8ec2f263f9a6a583" -uuid = "0e44f5e4-bd66-52a0-8798-143a42290a1d" -version = "3.3.0" -weakdeps = ["AbstractTrees"] - - [deps.Hwloc.extensions] - HwlocTrees = "AbstractTrees" - -[[deps.Hwloc_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "5e19e1e4fa3e71b774ce746274364aef0234634e" -uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" -version = "2.11.1+0" +version = "0.1.18" [[deps.HypergeometricFunctions]] deps = ["LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] -git-tree-sha1 = "7c4195be1649ae622304031ed46a2f4df989f1eb" +git-tree-sha1 = "68c173f4f449de5b438ee67ed0c9c748dc31a2ec" uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" -version = "0.3.24" +version = "0.3.28" [[deps.IRTools]] deps = ["InteractiveUtils", "MacroTools"] -git-tree-sha1 = "950c3717af761bc3ff906c2e8e52bd83390b6ec2" +git-tree-sha1 = "57e9ce6cf68d0abf5cb6b3b4abf9bedf05c939c0" uuid = "7869d1d1-7146-5819-86e3-90919afe41df" -version = "0.4.14" +version = "0.4.15" [[deps.IfElse]] git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" @@ -774,9 +871,9 @@ version = "0.1.1" [[deps.ImageAxes]] deps = ["AxisArrays", "ImageBase", "ImageCore", "Reexport", "SimpleTraits"] -git-tree-sha1 = "2e4520d67b0cef90865b3ef727594d2a58e0e1f8" +git-tree-sha1 = "e12629406c6c4442539436581041d372d69c55ba" uuid = "2803e5a7-5153-5ecf-9a86-9b4c37f5f5ac" -version = "0.6.11" +version = "0.6.12" [[deps.ImageBase]] deps = ["ImageCore", "Reexport"] @@ -786,27 +883,27 @@ version = "0.1.7" [[deps.ImageCore]] deps = ["ColorVectorSpace", "Colors", "FixedPointNumbers", "MappedArrays", "MosaicViews", "OffsetArrays", "PaddedViews", "PrecompileTools", "Reexport"] -git-tree-sha1 = "b2a7eaa169c13f5bcae8131a83bc30eff8f71be0" +git-tree-sha1 = "8c193230235bbcee22c8066b0374f63b5683c2d3" uuid = "a09fc81d-aa75-5fe9-8630-4744c3626534" -version = "0.10.2" +version = "0.10.5" [[deps.ImageIO]] -deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs"] -git-tree-sha1 = "437abb322a41d527c197fa800455f79d414f0a3c" +deps = ["FileIO", "IndirectArrays", "JpegTurbo", "LazyModules", "Netpbm", "OpenEXR", "PNGFiles", "QOI", "Sixel", "TiffImages", "UUIDs", "WebP"] +git-tree-sha1 = "696144904b76e1ca433b886b4e7edd067d76cbf7" uuid = "82e4d734-157c-48bb-816b-45c225c6df19" -version = "0.6.8" +version = "0.6.9" [[deps.ImageMetadata]] deps = ["AxisArrays", "ImageAxes", "ImageBase", "ImageCore"] -git-tree-sha1 = "355e2b974f2e3212a75dfb60519de21361ad3cb7" +git-tree-sha1 = "2a81c3897be6fbcde0802a0ebe6796d0562f63ec" uuid = "bc367c6b-8a6b-528e-b4bd-a4b897500b49" -version = "0.9.9" +version = "0.9.10" [[deps.Imath_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "0936ba688c6d201805a83da835b55c61a180db52" +git-tree-sha1 = "dcc8d0cd653e55213df9b75ebc6fe4a8d3254c65" uuid = "905a6f67-0a94-5f89-b386-d35d92009cd1" -version = "3.1.11+0" +version = "3.2.2+0" [[deps.IndirectArrays]] git-tree-sha1 = "012e604e1c7458645cb8b436f8fba789a51b257f" @@ -823,15 +920,15 @@ git-tree-sha1 = "4da0f88e9a39111c2fa3add390ab15f3a44f3ca3" uuid = "22cec73e-a1b8-11e9-2c92-598750a2cf9c" version = "0.3.1" -[[deps.IntelOpenMP_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "14eb2b542e748570b56446f4c50fbfb2306ebc45" -uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2024.2.0+0" +[[deps.IntegerMathUtils]] +git-tree-sha1 = "4c1acff2dc6b6967e7e750633c50bc3b8d83e617" +uuid = "18e54dd8-cb9d-406c-a71d-865a43cbb235" +version = "0.1.3" [[deps.InteractiveUtils]] deps = ["Markdown"] uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" +version = "1.11.0" [[deps.Interpolations]] deps = ["Adapt", "AxisAlgorithms", "ChainRulesCore", "LinearAlgebra", "OffsetArrays", "Random", "Ratios", "Requires", "SharedArrays", "SparseArrays", "StaticArrays", "WoodburyMatrices"] @@ -844,25 +941,33 @@ weakdeps = ["Unitful"] InterpolationsUnitfulExt = "Unitful" [[deps.IntervalArithmetic]] -deps = ["CRlibm_jll", "MacroTools", "RoundingEmulator"] -git-tree-sha1 = "433b0bb201cd76cb087b017e49244f10394ebe9c" +deps = ["CRlibm", "MacroTools", "OpenBLASConsistentFPCSR_jll", "Printf", "Random", "RoundingEmulator"] +git-tree-sha1 = "2cce1fed119ca7b6cc230c4a3b85202478af7924" uuid = "d1acc4aa-44c8-5952-acd4-ba5d80a2a253" -version = "0.22.14" +version = "1.0.3" [deps.IntervalArithmetic.extensions] + IntervalArithmeticArblibExt = "Arblib" IntervalArithmeticDiffRulesExt = "DiffRules" IntervalArithmeticForwardDiffExt = "ForwardDiff" + IntervalArithmeticIntervalSetsExt = "IntervalSets" + IntervalArithmeticLinearAlgebraExt = "LinearAlgebra" IntervalArithmeticRecipesBaseExt = "RecipesBase" + IntervalArithmeticSparseArraysExt = "SparseArrays" [deps.IntervalArithmetic.weakdeps] + Arblib = "fb37089c-8514-4489-9461-98f9c8763369" DiffRules = "b552c78f-8df3-52c6-915a-8e097449b14b" ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + IntervalSets = "8197267c-284f-5f27-9208-e0e47529a953" + LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" RecipesBase = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" [[deps.IntervalSets]] -git-tree-sha1 = "dba9ddf07f77f60450fe5d2e2beb9854d9a49bd0" +git-tree-sha1 = "d966f85b3b7a8e49d034d27a189e9a4874b4391a" uuid = "8197267c-284f-5f27-9208-e0e47529a953" -version = "0.7.10" +version = "0.7.13" [deps.IntervalSets.extensions] IntervalSetsRandomExt = "Random" @@ -875,9 +980,9 @@ version = "0.7.10" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" [[deps.InverseFunctions]] -git-tree-sha1 = "2787db24f4e03daf859c6509ff87764e4182f7d1" +git-tree-sha1 = "a779299d77cd080bf77b97535acecd73e1c5e5cb" uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.16" +version = "0.1.17" weakdeps = ["Dates", "Test"] [deps.InverseFunctions.extensions] @@ -885,9 +990,9 @@ weakdeps = ["Dates", "Test"] InverseFunctionsTestExt = "Test" [[deps.IrrationalConstants]] -git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" +git-tree-sha1 = "b2d91fe939cae05960e760110b328288867b5758" uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" -version = "0.2.2" +version = "0.2.6" [[deps.Isoband]] deps = ["isoband_jll"] @@ -907,27 +1012,38 @@ version = "1.0.0" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] -git-tree-sha1 = "7e5d6779a1e09a36db2a7b6cff50942a0a7d0fca" +git-tree-sha1 = "0533e564aae234aff59ab625543145446d8b6ec2" uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.5.0" +version = "1.7.1" [[deps.JSON]] -deps = ["Dates", "Mmap", "Parsers", "Unicode"] -git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" +deps = ["Dates", "Logging", "Parsers", "PrecompileTools", "StructUtils", "UUIDs", "Unicode"] +git-tree-sha1 = "b3ad4a0255688dcb895a52fafbaae3023b588a90" uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -version = "0.21.4" +version = "1.4.0" + + [deps.JSON.extensions] + JSONArrowExt = ["ArrowTypes"] + + [deps.JSON.weakdeps] + ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" [[deps.JpegTurbo]] deps = ["CEnum", "FileIO", "ImageCore", "JpegTurbo_jll", "TOML"] -git-tree-sha1 = "fa6d0bcff8583bac20f1ffa708c3913ca605c611" +git-tree-sha1 = "9496de8fb52c224a2e3f9ff403947674517317d9" uuid = "b835a17e-a41a-41e7-81f0-2f016b05efe0" -version = "0.1.5" +version = "0.1.6" [[deps.JpegTurbo_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "c84a835e1a09b289ffcd2271bf2a337bbdda6637" +git-tree-sha1 = "b6893345fd6658c8e475d40155789f4860ac3b21" uuid = "aacddb02-875f-59d6-b918-886e6ef4fbf8" -version = "3.0.3+0" +version = "3.1.4+0" + +[[deps.JuliaSyntaxHighlighting]] +deps = ["StyledStrings"] +uuid = "ac6e5ff7-fb65-4e79-a425-ec3bc9c03011" +version = "1.12.0" [[deps.JuliaVariables]] deps = ["MLStyle", "NameResolution"] @@ -936,32 +1052,40 @@ uuid = "b14d175d-62b4-44ba-8fb7-3064adc8c3ec" version = "0.2.4" [[deps.KernelAbstractions]] -deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "0fac59881e91c7233a9b0d47f4b7d9432e534f0f" +deps = ["Adapt", "Atomix", "InteractiveUtils", "MacroTools", "PrecompileTools", "Requires", "StaticArrays", "UUIDs"] +git-tree-sha1 = "f2e76d3ced51a2a9e185abc0b97494c7273f649f" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.23" -weakdeps = ["EnzymeCore"] +version = "0.9.41" +weakdeps = ["EnzymeCore", "LinearAlgebra", "SparseArrays"] [deps.KernelAbstractions.extensions] EnzymeExt = "EnzymeCore" + LinearAlgebraExt = "LinearAlgebra" + SparseArraysExt = "SparseArrays" [[deps.KernelDensity]] -deps = ["Distributions", "DocStringExtensions", "FFTW", "Interpolations", "StatsBase"] -git-tree-sha1 = "7d703202e65efa1369de1279c162b915e245eed1" +deps = ["Distributions", "DocStringExtensions", "FFTA", "Interpolations", "StatsBase"] +git-tree-sha1 = "4260cfc991b8885bf747801fb60dd4503250e478" uuid = "5ab0869b-81aa-558d-bb23-cbf5423bbe9b" -version = "0.6.9" +version = "0.6.11" [[deps.LAME_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "170b660facf5df5de098d866564877e119141cbd" +git-tree-sha1 = "059aabebaa7c82ccb853dd4a0ee9d17796f7e1bc" uuid = "c1c5ebd0-6772-5130-a774-d5fcae4a789d" -version = "3.100.2+0" +version = "3.100.3+0" + +[[deps.LERC_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "aaafe88dccbd957a8d82f7d05be9b69172e0cee3" +uuid = "88015f11-f218-50d7-93a8-a6af411a945d" +version = "4.0.1+0" [[deps.LLVM]] -deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] -git-tree-sha1 = "2470e69781ddd70b8878491233cd09bc1bd7fc96" +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Unicode"] +git-tree-sha1 = "69e4739502b7ab5176117e97e1664ed181c35036" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "8.1.0" +version = "9.4.6" [deps.LLVM.extensions] BFloat16sExt = "BFloat16s" @@ -971,26 +1095,26 @@ version = "8.1.0" [[deps.LLVMExtra_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "597d1c758c9ae5d985ba4202386a607c675ee700" +git-tree-sha1 = "8e76807afb59ebb833e9b131ebf1a8c006510f33" uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.31+0" +version = "0.0.38+0" [[deps.LLVMOpenMP_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "e16271d212accd09d52ee0ae98956b8a05c4b626" +git-tree-sha1 = "eb62a3deb62fc6d8822c0c4bef73e4412419c5d8" uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" -version = "17.0.6+0" +version = "18.1.8+0" [[deps.LZO_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "70c5da094887fd2cae843b8db33920bac4b6f07d" +git-tree-sha1 = "1c602b1127f4751facb671441ca72715cc95938a" uuid = "dd4b983a-f0e5-5f8d-a1b7-129d4a5fb1ac" -version = "2.10.2+0" +version = "2.10.3+0" [[deps.LaTeXStrings]] -git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +git-tree-sha1 = "dda21b8cbd6a6c40d9d02a73230f9d70fed6918c" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" -version = "1.3.1" +version = "1.4.0" [[deps.LayoutPointers]] deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] @@ -1001,6 +1125,7 @@ version = "0.1.17" [[deps.LazyArtifacts]] deps = ["Artifacts", "Pkg"] uuid = "4af54fe1-eca0-43a8-85a7-787d91b784e3" +version = "1.11.0" [[deps.LazyModules]] git-tree-sha1 = "a560dd966b386ac9ae60bdd3a3d3a326062d3c3e" @@ -1013,72 +1138,81 @@ uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" version = "0.6.4" [[deps.LibCURL_jll]] -deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "OpenSSL_jll", "Zlib_jll", "nghttp2_jll"] uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" -version = "8.4.0+0" +version = "8.15.0+0" [[deps.LibGit2]] -deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +deps = ["LibGit2_jll", "NetworkOptions", "Printf", "SHA"] uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" +version = "1.11.0" [[deps.LibGit2_jll]] -deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll"] +deps = ["Artifacts", "LibSSH2_jll", "Libdl", "OpenSSL_jll"] uuid = "e37daf67-58a4-590a-8e99-b0245dd2ffc5" -version = "1.6.4+0" +version = "1.9.0+0" [[deps.LibSSH2_jll]] -deps = ["Artifacts", "Libdl", "MbedTLS_jll"] +deps = ["Artifacts", "Libdl", "OpenSSL_jll"] uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" -version = "1.11.0+1" +version = "1.11.3+1" + +[[deps.LibTracyClient_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "d4e20500d210247322901841d4eafc7a0c52642d" +uuid = "ad6e5548-8b26-5c9f-8ef3-ef0ad883f3a5" +version = "0.13.1+0" [[deps.Libdl]] uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" +version = "1.11.0" [[deps.Libffi_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "0b4a5d71f3e5200a7dff793393e09dfc2d874290" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "c8da7e6a91781c41a863611c7e966098d783c57a" uuid = "e9f186c6-92d2-5b65-8a66-fee21dc1b490" -version = "3.2.2+1" - -[[deps.Libgcrypt_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgpg_error_jll"] -git-tree-sha1 = "9fd170c4bbfd8b935fdc5f8b7aa33532c991a673" -uuid = "d4300ac3-e22c-5743-9152-c294e39db1e4" -version = "1.8.11+0" +version = "3.4.7+0" -[[deps.Libgpg_error_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "fbb1f2bef882392312feb1ede3615ddc1e9b99ed" -uuid = "7add5ba3-2f88-524e-9cd5-f83b8a55f7b8" -version = "1.49.0+0" +[[deps.Libglvnd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll", "Xorg_libXext_jll"] +git-tree-sha1 = "d36c21b9e7c172a44a10484125024495e2625ac0" +uuid = "7e76a0d4-f3c7-5321-8279-8d96eeed0f29" +version = "1.7.1+1" [[deps.Libiconv_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "f9557a255370125b405568f9767d6d195822a175" +git-tree-sha1 = "be484f5c92fad0bd8acfef35fe017900b0b73809" uuid = "94ce4f54-9a6c-5748-9c1c-f9c7231a4531" -version = "1.17.0+0" +version = "1.18.0+0" [[deps.Libmount_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "0c4f9c4f1a50d8f35048fa0532dabbadf702f81e" +git-tree-sha1 = "97bbca976196f2a1eb9607131cb108c69ec3f8a6" uuid = "4b2f31a3-9ecc-558c-b454-b3730dcb73e9" -version = "2.40.1+0" +version = "2.41.3+0" + +[[deps.Libtiff_jll]] +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "LERC_jll", "Libdl", "XZ_jll", "Zlib_jll", "Zstd_jll"] +git-tree-sha1 = "f04133fe05eff1667d2054c53d59f9122383fe05" +uuid = "89763e89-9b03-5906-acba-b20f662cd828" +version = "4.7.2+0" [[deps.Libuuid_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "5ee6203157c120d79034c748a2acba45b82b8807" +git-tree-sha1 = "d0205286d9eceadc518742860bf23f703779a3d6" uuid = "38a345b3-de98-5d2b-a5d3-14cd9215e700" -version = "2.40.1+0" +version = "2.41.3+0" [[deps.LinearAlgebra]] deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" +version = "1.12.0" [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "a2d09619db4e765091ee5c6ffe8872849de0feea" +git-tree-sha1 = "13ca9e2586b89836fd20cccf56e57e2b9ae7f38f" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.28" +version = "0.3.29" [deps.LogExpFunctions.extensions] LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" @@ -1092,177 +1226,185 @@ version = "0.3.28" [[deps.Logging]] uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" +version = "1.11.0" + +[[deps.LoggingExtras]] +deps = ["Dates", "Logging"] +git-tree-sha1 = "f00544d95982ea270145636c181ceda21c4e2575" +uuid = "e6f89c97-d47a-5376-807f-9c37f3926c36" +version = "1.2.0" [[deps.LoopVectorization]] deps = ["ArrayInterface", "CPUSummary", "CloseOpenIntervals", "DocStringExtensions", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] -git-tree-sha1 = "8084c25a250e00ae427a379a5b607e7aed96a2dd" +git-tree-sha1 = "a9fc7883eb9b5f04f46efb9a540833d1fad974b3" uuid = "bdcacae8-1622-11e9-2a5c-532679323890" -version = "0.12.171" -weakdeps = ["ChainRulesCore", "ForwardDiff", "SpecialFunctions"] +version = "0.12.173" +weakdeps = ["ChainRulesCore", "ForwardDiff", "NNlib", "SpecialFunctions"] [deps.LoopVectorization.extensions] ForwardDiffExt = ["ChainRulesCore", "ForwardDiff"] + ForwardDiffNNlibExt = ["ForwardDiff", "NNlib"] SpecialFunctionsExt = "SpecialFunctions" -[[deps.LossFunctions]] -deps = ["Markdown", "Requires", "Statistics"] -git-tree-sha1 = "df9da07efb9b05ca7ef701acec891ee8f73c99e2" -uuid = "30fc2ffe-d236-52d8-8643-a9d8f7c094a7" -version = "0.11.1" - - [deps.LossFunctions.extensions] - LossFunctionsCategoricalArraysExt = "CategoricalArrays" - - [deps.LossFunctions.weakdeps] - CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597" - [[deps.Lux]] -deps = ["ADTypes", "Adapt", "ArgCheck", "ArrayInterface", "ChainRulesCore", "Compat", "ConcreteStructs", "ConstructionBase", "DispatchDoctor", "EnzymeCore", "FastClosures", "ForwardDiff", "Functors", "GPUArraysCore", "LinearAlgebra", "LossFunctions", "LuxCore", "LuxDeviceUtils", "LuxLib", "MLDataDevices", "MacroTools", "Markdown", "NNlib", "Optimisers", "Preferences", "Random", "Reexport", "Setfield", "Static", "Statistics", "UnrolledUtilities", "WeightInitializers"] -git-tree-sha1 = "1f3dceada0c326ca769b73b2b267007d19f3be30" +deps = ["ADTypes", "Adapt", "ArrayInterface", "ChainRulesCore", "ConcreteStructs", "DiffResults", "DispatchDoctor", "EnzymeCore", "FastClosures", "ForwardDiff", "Functors", "GPUArraysCore", "LinearAlgebra", "LuxCore", "LuxLib", "MLDataDevices", "MacroTools", "Markdown", "NNlib", "Optimisers", "PrecompileTools", "Preferences", "Random", "ReactantCore", "Reexport", "SciMLPublic", "Setfield", "Static", "StaticArraysCore", "Statistics", "UUIDs", "WeightInitializers"] +git-tree-sha1 = "334de475ff414c8eb67f88f57f7b02d40cd8f320" uuid = "b2108857-7c20-44ae-9111-449ecde12c47" -version = "0.5.65" +version = "1.31.3" [deps.Lux.extensions] - LuxComponentArraysExt = "ComponentArrays" - LuxDynamicExpressionsExt = "DynamicExpressions" - LuxEnzymeExt = "Enzyme" - LuxFluxExt = "Flux" - LuxMLUtilsExt = "MLUtils" - LuxMPIExt = "MPI" - LuxMPINCCLExt = ["CUDA", "MPI", "NCCL"] - LuxReverseDiffExt = ["FunctionWrappers", "ReverseDiff"] - LuxSimpleChainsExt = "SimpleChains" - LuxTrackerExt = "Tracker" - LuxZygoteExt = "Zygote" + ComponentArraysExt = "ComponentArrays" + EnzymeExt = "Enzyme" + FluxExt = "Flux" + GPUArraysExt = "GPUArrays" + LossFunctionsExt = "LossFunctions" + MLUtilsExt = "MLUtils" + MPIExt = "MPI" + MPINCCLExt = ["CUDA", "MPI", "NCCL"] + MooncakeExt = "Mooncake" + ReactantExt = ["Enzyme", "Reactant"] + ReverseDiffExt = ["FunctionWrappers", "ReverseDiff"] + SimpleChainsExt = "SimpleChains" + TrackerExt = "Tracker" + ZygoteExt = "Zygote" [deps.Lux.weakdeps] CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" - DynamicExpressions = "a40a106e-89c9-4ca8-8020-a735e8728b6b" Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" FunctionWrappers = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" + GPUArrays = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" + LossFunctions = "30fc2ffe-d236-52d8-8643-a9d8f7c094a7" MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + Mooncake = "da2b9cff-9c12-43a0-ae48-6db2b0edb7d6" NCCL = "3fe64909-d7a1-4096-9b7d-7a0f12cf0f6b" + Reactant = "3c362404-f566-11ee-1572-e11a4b42c853" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" SimpleChains = "de6bee2f-e2f4-4ec7-b6ed-219cc6f6e9e5" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" [[deps.LuxCore]] -deps = ["Compat", "DispatchDoctor", "Functors", "Random", "Setfield"] -git-tree-sha1 = "c428313de9a6347e1b9c17d70438881aecc4275d" +deps = ["DispatchDoctor", "Random", "SciMLPublic"] +git-tree-sha1 = "9455b1e829d8dacad236143869be70b7fdb826b8" uuid = "bb33d45b-7691-41d6-9220-0943567d0623" -version = "0.1.24" +version = "1.5.3" [deps.LuxCore.extensions] - LuxCoreArrayInterfaceReverseDiffExt = ["ArrayInterface", "ReverseDiff"] - LuxCoreArrayInterfaceTrackerExt = ["ArrayInterface", "Tracker"] - LuxCoreChainRulesCoreExt = "ChainRulesCore" - LuxCoreEnzymeCoreExt = "EnzymeCore" - LuxCoreMLDataDevicesExt = "MLDataDevices" + ArrayInterfaceReverseDiffExt = ["ArrayInterface", "ReverseDiff"] + ArrayInterfaceTrackerExt = ["ArrayInterface", "Tracker"] + ChainRulesCoreExt = "ChainRulesCore" + EnzymeCoreExt = "EnzymeCore" + FluxExt = "Flux" + FunctorsExt = "Functors" + MLDataDevicesExt = ["Adapt", "MLDataDevices"] + ReactantExt = "Reactant" + SetfieldExt = "Setfield" [deps.LuxCore.weakdeps] + Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" + Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" + Functors = "d9f16b24-f501-4c13-a1f2-28368ffc5196" MLDataDevices = "7e8f7934-dd98-4c1a-8fe8-92b47a384d40" + Reactant = "3c362404-f566-11ee-1572-e11a4b42c853" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + Setfield = "efcf1570-3423-57d1-acb7-fd33fddbac46" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" -[[deps.LuxDeviceUtils]] -deps = ["Adapt", "ChainRulesCore", "Functors", "LuxCore", "Preferences", "Random", "UnrolledUtilities"] -git-tree-sha1 = "494db99a113c3a5a0b637d788a65494732f4558e" -uuid = "34f89e08-e1d5-43b4-8944-0b49ac560553" -version = "0.1.27" - - [deps.LuxDeviceUtils.extensions] - LuxDeviceUtilsAMDGPUExt = "AMDGPU" - LuxDeviceUtilsCUDAExt = "CUDA" - LuxDeviceUtilsFillArraysExt = "FillArrays" - LuxDeviceUtilsGPUArraysExt = "GPUArrays" - LuxDeviceUtilsLuxCUDAExt = "LuxCUDA" - LuxDeviceUtilsMetalExt = ["GPUArrays", "Metal"] - LuxDeviceUtilsRecursiveArrayToolsExt = "RecursiveArrayTools" - LuxDeviceUtilsReverseDiffExt = "ReverseDiff" - LuxDeviceUtilsSparseArraysExt = "SparseArrays" - LuxDeviceUtilsTrackerExt = "Tracker" - LuxDeviceUtilsZygoteExt = "Zygote" - LuxDeviceUtilsoneAPIExt = ["GPUArrays", "oneAPI"] - - [deps.LuxDeviceUtils.weakdeps] - AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" - CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" - FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" - GPUArrays = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" - LuxCUDA = "d0bbae9a-e099-4d5b-a835-1c6931763bda" - Metal = "dde4c033-4e86-420c-a63e-0dd931031962" - RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" - ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" - SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" - Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" - oneAPI = "8f75cd03-7ff8-4ecb-9b8f-daf728133b1b" - [[deps.LuxLib]] -deps = ["ArrayInterface", "ChainRulesCore", "Compat", "CpuId", "DispatchDoctor", "EnzymeCore", "FastClosures", "ForwardDiff", "Hwloc", "KernelAbstractions", "LinearAlgebra", "LoopVectorization", "LuxCore", "MLDataDevices", "Markdown", "NNlib", "Octavian", "Polyester", "Random", "Reexport", "SLEEFPirates", "Static", "StaticArraysCore", "Statistics", "UnrolledUtilities"] -git-tree-sha1 = "a976912604c6568daacd5960c5c84c91311a1773" +deps = ["ArrayInterface", "CPUSummary", "ChainRulesCore", "DispatchDoctor", "EnzymeCore", "FastClosures", "Functors", "KernelAbstractions", "LinearAlgebra", "LuxCore", "MLDataDevices", "Markdown", "NNlib", "Preferences", "Random", "Reexport", "SciMLPublic", "Static", "StaticArraysCore", "Statistics", "UUIDs"] +git-tree-sha1 = "0d4e3527f0dfe4163443bc67f6c80881a45fb70a" uuid = "82251201-b29d-42c6-8e01-566dec8acb11" -version = "0.3.45" +version = "1.15.5" [deps.LuxLib.extensions] - LuxLibAppleAccelerateExt = "AppleAccelerate" - LuxLibBLISBLASExt = "BLISBLAS" - LuxLibCUDAExt = "CUDA" - LuxLibMKLExt = "MKL" - LuxLibReverseDiffExt = "ReverseDiff" - LuxLibTrackerAMDGPUExt = ["AMDGPU", "Tracker"] - LuxLibTrackerExt = "Tracker" - LuxLibcuDNNExt = ["CUDA", "cuDNN"] + AppleAccelerateExt = "AppleAccelerate" + BLISBLASExt = "BLISBLAS" + CUDAExt = "CUDA" + CUDAForwardDiffExt = ["CUDA", "ForwardDiff"] + EnzymeExt = "Enzyme" + ForwardDiffExt = "ForwardDiff" + LoopVectorizationExt = ["LoopVectorization", "Polyester"] + MKLExt = "MKL" + OctavianExt = ["Octavian", "LoopVectorization"] + OneHotArraysExt = ["OneHotArrays"] + ReactantExt = ["Reactant", "ReactantCore"] + ReverseDiffExt = "ReverseDiff" + SLEEFPiratesExt = "SLEEFPirates" + TrackerAMDGPUExt = ["AMDGPU", "Tracker"] + TrackerExt = "Tracker" + cuDNNExt = ["CUDA", "cuDNN"] [deps.LuxLib.weakdeps] AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" AppleAccelerate = "13e28ba4-7ad8-5781-acae-3021b1ed3924" BLISBLAS = "6f275bd8-fec0-4d39-945b-7e95a765fa1e" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + LoopVectorization = "bdcacae8-1622-11e9-2a5c-532679323890" MKL = "33e6dc65-8f57-5167-99aa-e5a354878fb2" + Octavian = "6fd5a793-0b7e-452c-907f-f8bfe9c57db4" + OneHotArrays = "0b1bfda6-eb8a-41d2-88d8-f5af5cad476f" + Polyester = "f517fe37-dbe3-4b94-8317-1923a5111588" + Reactant = "3c362404-f566-11ee-1572-e11a4b42c853" + ReactantCore = "a3311ec8-5e00-46d5-b541-4f83e724a433" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" + SLEEFPirates = "476501e8-09a2-5ece-8869-fb82de89a1fa" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" -[[deps.MKL_jll]] -deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "oneTBB_jll"] -git-tree-sha1 = "f046ccd0c6db2832a9f639e2c669c6fe867e5f4f" -uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2024.2.0+0" +[[deps.MLCore]] +deps = ["DataAPI", "SimpleTraits", "Tables"] +git-tree-sha1 = "73907695f35bc7ffd9f11f6c4f2ee8c1302084be" +uuid = "c2834f40-e789-41da-a90e-33b280584a8c" +version = "1.0.0" [[deps.MLDataDevices]] -deps = ["Adapt", "ChainRulesCore", "Functors", "Preferences", "Random", "UnrolledUtilities"] -git-tree-sha1 = "0999f1ff93d3bca8c8da74470b4c8758b3cedadf" +deps = ["Adapt", "Functors", "Preferences", "Random", "SciMLPublic"] +git-tree-sha1 = "39a69ca451c3e78b9a6a2e42ef894fdf7505e629" uuid = "7e8f7934-dd98-4c1a-8fe8-92b47a384d40" -version = "1.0.1" +version = "1.17.5" [deps.MLDataDevices.extensions] - MLDataDevicesAMDGPUExt = "AMDGPU" - MLDataDevicesCUDAExt = "CUDA" - MLDataDevicesFillArraysExt = "FillArrays" - MLDataDevicesGPUArraysExt = "GPUArrays" - MLDataDevicesMetalExt = ["GPUArrays", "Metal"] - MLDataDevicesRecursiveArrayToolsExt = "RecursiveArrayTools" - MLDataDevicesReverseDiffExt = "ReverseDiff" - MLDataDevicesSparseArraysExt = "SparseArrays" - MLDataDevicesTrackerExt = "Tracker" - MLDataDevicesZygoteExt = "Zygote" - MLDataDevicescuDNNExt = ["CUDA", "cuDNN"] - MLDataDevicesoneAPIExt = ["GPUArrays", "oneAPI"] + AMDGPUExt = "AMDGPU" + CUDAExt = "CUDA" + ChainRulesCoreExt = "ChainRulesCore" + ChainRulesExt = "ChainRules" + ComponentArraysExt = "ComponentArrays" + FillArraysExt = "FillArrays" + GPUArraysSparseArraysExt = ["GPUArrays", "SparseArrays"] + MLUtilsExt = "MLUtils" + MetalExt = ["GPUArrays", "Metal"] + OneHotArraysExt = "OneHotArrays" + OpenCLExt = ["GPUArrays", "OpenCL"] + ReactantExt = "Reactant" + RecursiveArrayToolsExt = "RecursiveArrayTools" + ReverseDiffExt = "ReverseDiff" + SparseArraysExt = "SparseArrays" + TrackerExt = "Tracker" + ZygoteExt = "Zygote" + cuDNNExt = ["CUDA", "cuDNN"] + oneAPIExt = ["GPUArrays", "oneAPI"] [deps.MLDataDevices.weakdeps] AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + ChainRules = "082447d4-558c-5d27-93f4-14fc19e9eca2" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + ComponentArrays = "b0b7db55-cfe3-40fc-9ded-d10e2dbeff66" FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" GPUArrays = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" + MLUtils = "f1d291b0-491e-4a28-83b9-f70985020b54" Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + OneHotArrays = "0b1bfda6-eb8a-41d2-88d8-f5af5cad476f" + OpenCL = "08131aa3-fb12-5dee-8b74-c09406e224a2" + Reactant = "3c362404-f566-11ee-1572-e11a4b42c853" RecursiveArrayTools = "731186ca-8d62-57ce-b412-fbd966d074cd" ReverseDiff = "37e2e3b7-166d-5795-8a7a-e32c996b4267" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" @@ -1277,28 +1419,27 @@ uuid = "d8e11817-5142-5d16-987a-aa16d5891078" version = "0.4.17" [[deps.MLUtils]] -deps = ["ChainRulesCore", "Compat", "DataAPI", "DelimitedFiles", "FLoops", "NNlib", "Random", "ShowCases", "SimpleTraits", "Statistics", "StatsBase", "Tables", "Transducers"] -git-tree-sha1 = "b45738c2e3d0d402dffa32b2c1654759a2ac35a4" +deps = ["ChainRulesCore", "Compat", "DataAPI", "DelimitedFiles", "FLoops", "MLCore", "NNlib", "Random", "ShowCases", "SimpleTraits", "Statistics", "StatsBase", "Tables", "Transducers"] +git-tree-sha1 = "a772d8d1987433538a5c226f79393324b55f7846" uuid = "f1d291b0-491e-4a28-83b9-f70985020b54" -version = "0.4.4" +version = "0.4.8" [[deps.MacroTools]] -deps = ["Markdown", "Random"] -git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" +git-tree-sha1 = "1e0228a030642014fe5cfe68c2c0a818f9e3f522" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" -version = "0.5.13" +version = "0.5.16" [[deps.Makie]] -deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "Dates", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Format", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageIO", "InteractiveUtils", "IntervalSets", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun", "Unitful"] -git-tree-sha1 = "2fe1a9e0cfb8ffe846dc08b78a0cfd4746c99949" +deps = ["Animations", "Base64", "CRC32c", "ColorBrewer", "ColorSchemes", "ColorTypes", "Colors", "Contour", "Dates", "DelaunayTriangulation", "Distributions", "DocStringExtensions", "Downloads", "FFMPEG_jll", "FileIO", "FilePaths", "FixedPointNumbers", "Format", "FreeType", "FreeTypeAbstraction", "GeometryBasics", "GridLayoutBase", "ImageBase", "ImageIO", "InteractiveUtils", "Interpolations", "IntervalSets", "InverseFunctions", "Isoband", "KernelDensity", "LaTeXStrings", "LinearAlgebra", "MacroTools", "MakieCore", "Markdown", "MathTeXEngine", "Observables", "OffsetArrays", "PNGFiles", "Packing", "PlotUtils", "PolygonOps", "PrecompileTools", "Printf", "REPL", "Random", "RelocatableFolders", "Scratch", "ShaderAbstractions", "Showoff", "SignedDistanceFields", "SparseArrays", "Statistics", "StatsBase", "StatsFuns", "StructArrays", "TriplotBase", "UnicodeFun", "Unitful"] +git-tree-sha1 = "1d7d16f0e02ec063becd7a140f619b2ffe5f2b11" uuid = "ee78f7c6-11fb-53f2-987a-cfe4a2b5a57a" -version = "0.21.6" +version = "0.22.10" [[deps.MakieCore]] deps = ["ColorTypes", "GeometryBasics", "IntervalSets", "Observables"] -git-tree-sha1 = "1753d72dcf82beb1c582826d0a51a8253a719613" +git-tree-sha1 = "c3159eb1e3aa3e409edbb71f4035ed8b1fc16e23" uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" -version = "0.8.5" +version = "0.9.5" [[deps.ManualMemory]] git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" @@ -1306,24 +1447,32 @@ uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" version = "0.1.8" [[deps.MappedArrays]] -git-tree-sha1 = "2dab0221fe2b0f2cb6754eaa743cc266339f527e" +git-tree-sha1 = "0ee4497a4e80dbd29c058fcee6493f5219556f40" uuid = "dbb5928d-eab1-5f90-85c2-b9b0edb7c900" -version = "0.4.2" +version = "0.4.3" [[deps.Markdown]] -deps = ["Base64"] +deps = ["Base64", "JuliaSyntaxHighlighting", "StyledStrings"] uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" +version = "1.11.0" [[deps.MathTeXEngine]] deps = ["AbstractTrees", "Automa", "DataStructures", "FreeTypeAbstraction", "GeometryBasics", "LaTeXStrings", "REPL", "RelocatableFolders", "UnicodeFun"] -git-tree-sha1 = "e1641f32ae592e415e3dbae7f4a188b5316d4b62" +git-tree-sha1 = "7eb8cdaa6f0e8081616367c10b31b9d9b34bb02a" uuid = "0a4f8689-d25c-4efe-a92b-7142dfc1aa53" -version = "0.6.1" +version = "0.6.7" + +[[deps.MbedTLS]] +deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "NetworkOptions", "Random", "Sockets"] +git-tree-sha1 = "8785729fa736197687541f7053f6d8ab7fc44f92" +uuid = "739be429-bea8-5141-9913-cc70e7f3736d" +version = "1.1.10" [[deps.MbedTLS_jll]] -deps = ["Artifacts", "Libdl"] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "ff69a2b1330bcb730b9ac1ab7dd680176f5896b8" uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" -version = "2.28.2+1" +version = "2.28.1010+0" [[deps.MicroCollections]] deps = ["Accessors", "BangBang", "InitialValues"] @@ -1331,6 +1480,12 @@ git-tree-sha1 = "44d32db644e84c75dab479f1bc15ee76a1a3618f" uuid = "128add7d-3638-4c79-886c-908ea0c25c34" version = "0.2.0" +[[deps.MicroMamba]] +deps = ["Pkg", "Scratch", "micromamba_jll"] +git-tree-sha1 = "535656ce55266bfed0575cd051acc4f36dc869a0" +uuid = "0b3b1443-0f03-428d-bdfb-f27f9c1191ea" +version = "0.1.15" + [[deps.Missings]] deps = ["DataAPI"] git-tree-sha1 = "ec4f7fbeab05d7747bdf98eb74d130a2a2ed298d" @@ -1339,6 +1494,7 @@ version = "1.2.0" [[deps.Mmap]] uuid = "a63ad114-7e13-5084-954f-fe012c677804" +version = "1.11.0" [[deps.MosaicViews]] deps = ["MappedArrays", "OffsetArrays", "PaddedViews", "StackViews"] @@ -1348,13 +1504,18 @@ version = "0.3.4" [[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" -version = "2023.1.10" +version = "2025.11.4" + +[[deps.MuladdMacro]] +git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" +uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" +version = "0.2.4" [[deps.NNlib]] -deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Pkg", "Random", "Requires", "Statistics"] -git-tree-sha1 = "ae52c156a63bb647f80c26319b104e99e5977e51" +deps = ["Adapt", "Atomix", "ChainRulesCore", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "Random", "ScopedValues", "Statistics"] +git-tree-sha1 = "6dc9ffc3a9931e6b988f913b49630d0fb986d0a8" uuid = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" -version = "0.9.22" +version = "0.9.33" [deps.NNlib.extensions] NNlibAMDGPUExt = "AMDGPU" @@ -1362,19 +1523,25 @@ version = "0.9.22" NNlibCUDAExt = "CUDA" NNlibEnzymeCoreExt = "EnzymeCore" NNlibFFTWExt = "FFTW" + NNlibForwardDiffExt = "ForwardDiff" + NNlibMetalExt = "Metal" + NNlibSpecialFunctionsExt = "SpecialFunctions" [deps.NNlib.weakdeps] AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + Metal = "dde4c033-4e86-420c-a63e-0dd931031962" + SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" cuDNN = "02a925ec-e4fe-4b08-9a7e-0d78e3d38ccd" [[deps.NaNMath]] deps = ["OpenLibm_jll"] -git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" +git-tree-sha1 = "9b8215b1ee9e78a293f99797cd31375471b2bcae" uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" -version = "1.0.2" +version = "1.1.3" [[deps.NameResolution]] deps = ["PrettyPrint"] @@ -1390,127 +1557,134 @@ version = "1.1.1" [[deps.NetworkOptions]] uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" -version = "1.2.0" +version = "1.3.0" [[deps.ObjectFile]] deps = ["Reexport", "StructIO"] -git-tree-sha1 = "7249afa1c4dfd86bfbcc9b28939ab6ef844f4e11" +git-tree-sha1 = "22faba70c22d2f03e60fbc61da99c4ebfc3eb9ba" uuid = "d8793406-e978-5875-9003-1fc021f44a92" -version = "0.4.2" +version = "0.5.0" [[deps.Observables]] git-tree-sha1 = "7438a59546cf62428fc9d1bc94729146d37a7225" uuid = "510215fc-4207-5dde-b226-833fc4488ee2" version = "0.5.5" -[[deps.Octavian]] -deps = ["CPUSummary", "IfElse", "LoopVectorization", "ManualMemory", "PolyesterWeave", "PrecompileTools", "Static", "StaticArrayInterface", "ThreadingUtilities", "VectorizationBase"] -git-tree-sha1 = "92410e147bdcaf9e2f982a7cc9b1341fc5dd1a77" -uuid = "6fd5a793-0b7e-452c-907f-f8bfe9c57db4" -version = "0.3.28" - - [deps.Octavian.extensions] - ForwardDiffExt = "ForwardDiff" - HyperDualNumbersExt = "HyperDualNumbers" - - [deps.Octavian.weakdeps] - ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" - HyperDualNumbers = "50ceba7f-c3ee-5a84-a6e8-3ad40456ec97" - [[deps.OffsetArrays]] -git-tree-sha1 = "1a27764e945a152f7ca7efa04de513d473e9542e" +git-tree-sha1 = "117432e406b5c023f665fa73dc26e79ec3630151" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.14.1" +version = "1.17.0" weakdeps = ["Adapt"] [deps.OffsetArrays.extensions] OffsetArraysAdaptExt = "Adapt" [[deps.Ogg_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "887579a3eb005446d514ab7aeac5d1d027658b8f" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "b6aa4566bb7ae78498a5e68943863fa8b5231b59" uuid = "e7412a2a-1a6e-54c0-be00-318e2571c051" -version = "1.3.5+1" +version = "1.3.6+0" [[deps.OneHotArrays]] deps = ["Adapt", "ChainRulesCore", "Compat", "GPUArraysCore", "LinearAlgebra", "NNlib"] -git-tree-sha1 = "963a3f28a2e65bb87a68033ea4a616002406037d" +git-tree-sha1 = "bfe8e84c71972f77e775f75e6d8048ad3fdbe8bc" uuid = "0b1bfda6-eb8a-41d2-88d8-f5af5cad476f" -version = "0.2.5" +version = "0.2.10" + +[[deps.OpenBLASConsistentFPCSR_jll]] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "f2b3b9e52a5eb6a3434c8cca67ad2dde011194f4" +uuid = "6cdc7f73-28fd-5e50-80fb-958a8875b1af" +version = "0.3.30+0" [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.23+4" +version = "0.3.29+0" [[deps.OpenEXR]] deps = ["Colors", "FileIO", "OpenEXR_jll"] -git-tree-sha1 = "327f53360fdb54df7ecd01e96ef1983536d1e633" +git-tree-sha1 = "97db9e07fe2091882c765380ef58ec553074e9c7" uuid = "52e1d378-f018-4a11-a4be-720524705ac7" -version = "0.3.2" +version = "0.3.3" [[deps.OpenEXR_jll]] deps = ["Artifacts", "Imath_jll", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "8292dd5c8a38257111ada2174000a33745b06d4e" +git-tree-sha1 = "df9b7c88c2e7a2e77146223c526bf9e236d5f450" uuid = "18a262bb-aa17-5467-a713-aee519bc75cb" -version = "3.2.4+0" +version = "3.4.4+0" [[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] uuid = "05823500-19ac-5b8b-9628-191a04bc5112" -version = "0.8.1+2" +version = "0.8.7+0" + +[[deps.OpenSSL]] +deps = ["BitFlags", "Dates", "MozillaCACerts_jll", "NetworkOptions", "OpenSSL_jll", "Sockets"] +git-tree-sha1 = "1d1aaa7d449b58415f97d2839c318b70ffb525a0" +uuid = "4d8831e6-92b7-49fb-bdf8-b643e874388c" +version = "1.6.1" [[deps.OpenSSL_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "a028ee3cb5641cccc4c24e90c36b0a4f7707bdf5" +deps = ["Artifacts", "Libdl"] uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.0.14+0" +version = "3.5.4+0" [[deps.OpenSpecFun_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl"] +git-tree-sha1 = "1346c9208249809840c91b26703912dff463d335" uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" -version = "0.5.5+0" +version = "0.5.6+0" [[deps.Optimisers]] -deps = ["ChainRulesCore", "Functors", "LinearAlgebra", "Random", "Statistics"] -git-tree-sha1 = "6572fe0c5b74431aaeb0b18a4aa5ef03c84678be" +deps = ["ChainRulesCore", "ConstructionBase", "Functors", "LinearAlgebra", "Random", "Statistics"] +git-tree-sha1 = "36b5d2b9dd06290cd65fcf5bdbc3a551ed133af5" uuid = "3bd65402-5787-11e9-1adc-39752487f4e2" -version = "0.3.3" +version = "0.4.7" +weakdeps = ["Adapt", "EnzymeCore", "Reactant"] + + [deps.Optimisers.extensions] + OptimisersAdaptExt = ["Adapt"] + OptimisersEnzymeCoreExt = "EnzymeCore" + OptimisersReactantExt = "Reactant" [[deps.Opus_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "51a08fb14ec28da2ec7a927c4337e4332c2a4720" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e2bb57a313a74b8104064b7efd01406c0a50d2ff" uuid = "91d4177d-7536-5919-b921-800302f37372" -version = "1.3.2+0" +version = "1.6.1+0" [[deps.OrderedCollections]] -git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +git-tree-sha1 = "05868e21324cede2207c6f0f466b4bfef6d5e7ee" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.6.3" +version = "1.8.1" [[deps.PCRE2_jll]] deps = ["Artifacts", "Libdl"] uuid = "efcefdf7-47ab-520b-bdef-62a2eaa19f15" -version = "10.42.0+1" +version = "10.44.0+1" [[deps.PDMats]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "949347156c25054de2db3b166c52ac4728cbad65" +git-tree-sha1 = "e4cff168707d441cd6bf3ff7e4832bdf34278e4a" uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.11.31" +version = "0.11.37" +weakdeps = ["StatsBase"] + + [deps.PDMats.extensions] + StatsBaseExt = "StatsBase" [[deps.PNGFiles]] deps = ["Base64", "CEnum", "ImageCore", "IndirectArrays", "OffsetArrays", "libpng_jll"] -git-tree-sha1 = "67186a2bc9a90f9f85ff3cc8277868961fb57cbd" +git-tree-sha1 = "cf181f0b1e6a18dfeb0ee8acc4a9d1672499626c" uuid = "f57f5aa1-a3ce-4bc8-8ab9-96f992907883" -version = "0.4.3" +version = "0.4.4" [[deps.Packing]] deps = ["GeometryBasics"] -git-tree-sha1 = "ec3edfe723df33528e085e632414499f26650501" +git-tree-sha1 = "bc5bf2ea3d5351edf285a06b0016788a121ce92c" uuid = "19eb6ba3-879d-56ad-ad62-d5c202156566" -version = "0.5.0" +version = "0.5.1" [[deps.PaddedViews]] deps = ["OffsetArrays"] @@ -1520,26 +1694,36 @@ version = "0.5.12" [[deps.Pango_jll]] deps = ["Artifacts", "Cairo_jll", "Fontconfig_jll", "FreeType2_jll", "FriBidi_jll", "Glib_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl"] -git-tree-sha1 = "cb5a2ab6763464ae0f19c86c56c63d4a2b0f5bda" +git-tree-sha1 = "0662b083e11420952f2e62e17eddae7fc07d5997" uuid = "36c8627f-9965-5494-a995-c6b170f724f3" -version = "1.52.2+0" +version = "1.57.0+0" [[deps.Parsers]] deps = ["Dates", "PrecompileTools", "UUIDs"] -git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +git-tree-sha1 = "7d2f8f21da5db6a806faf7b9b292296da42b2810" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.8.1" +version = "2.8.3" + +[[deps.Pidfile]] +deps = ["FileWatching", "Test"] +git-tree-sha1 = "2d8aaf8ee10df53d0dfb9b8ee44ae7c04ced2b03" +uuid = "fa939f87-e72e-5be4-a000-7fc836dbe307" +version = "1.3.0" [[deps.Pixman_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "Libdl"] -git-tree-sha1 = "35621f10a7531bc8fa58f74610b1bfb70a3cfc6b" +git-tree-sha1 = "db76b1ecd5e9715f3d043cec13b2ec93ce015d53" uuid = "30392449-352a-5448-841d-b1acce4e97dc" -version = "0.43.4+0" +version = "0.44.2+0" [[deps.Pkg]] -deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] +deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "Random", "SHA", "TOML", "Tar", "UUIDs", "p7zip_jll"] uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -version = "1.10.0" +version = "1.12.1" +weakdeps = ["REPL"] + + [deps.Pkg.extensions] + REPLExt = "REPL" [[deps.PkgVersion]] deps = ["Pkg"] @@ -1548,16 +1732,16 @@ uuid = "eebad327-c553-4316-9ea0-9fa01ccd7688" version = "0.3.3" [[deps.PlotUtils]] -deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "Statistics"] -git-tree-sha1 = "7b1a9df27f072ac4c9c7cbe5efb198489258d1f5" +deps = ["ColorSchemes", "Colors", "Dates", "PrecompileTools", "Printf", "Random", "Reexport", "StableRNGs", "Statistics"] +git-tree-sha1 = "26ca162858917496748aad52bb5d3be4d26a228a" uuid = "995b91a9-d308-5afd-9ec6-746e21dbc043" -version = "1.4.1" +version = "1.4.4" [[deps.Polyester]] deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "6d38fea02d983051776a856b7df75b30cf9a3c1f" +git-tree-sha1 = "16bbc30b5ebea91e9ce1671adc03de2832cff552" uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.16" +version = "0.7.19" [[deps.PolyesterWeave]] deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] @@ -1572,65 +1756,111 @@ version = "0.1.2" [[deps.PrecompileTools]] deps = ["Preferences"] -git-tree-sha1 = "5aa36f7049a63a1528fe8f7c3f2113413ffd4e1f" +git-tree-sha1 = "07a921781cab75691315adc645096ed5e370cb77" uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.2.1" +version = "1.3.3" [[deps.Preferences]] deps = ["TOML"] -git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" +git-tree-sha1 = "8b770b60760d4451834fe79dd483e318eee709c4" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.4.3" +version = "1.5.2" [[deps.PrettyPrint]] git-tree-sha1 = "632eb4abab3449ab30c5e1afaa874f0b98b586e4" uuid = "8162dcfd-2161-5ef2-ae6c-7681170c5f98" version = "0.2.0" +[[deps.PrettyTables]] +deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "REPL", "Reexport", "StringManipulation", "Tables"] +git-tree-sha1 = "624de6279ab7d94fc9f672f0068107eb6619732c" +uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" +version = "3.3.2" + + [deps.PrettyTables.extensions] + PrettyTablesTypstryExt = "Typstry" + + [deps.PrettyTables.weakdeps] + Typstry = "f0ed7684-a786-439e-b1e3-3b82803b501e" + +[[deps.Primes]] +deps = ["IntegerMathUtils"] +git-tree-sha1 = "25cdd1d20cd005b52fc12cb6be3f75faaf59bb9b" +uuid = "27ebfcd6-29c5-5fa9-bf4b-fb8fc14df3ae" +version = "0.5.7" + [[deps.Printf]] deps = ["Unicode"] uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" +version = "1.11.0" [[deps.Profile]] -deps = ["Printf"] +deps = ["StyledStrings"] uuid = "9abbd945-dff8-562f-b5e8-e1ebf5ef1b79" +version = "1.11.0" [[deps.ProgressLogging]] deps = ["Logging", "SHA", "UUIDs"] -git-tree-sha1 = "80d919dee55b9c50e8d9e2da5eeafff3fe58b539" +git-tree-sha1 = "f0803bc1171e455a04124affa9c21bba5ac4db32" uuid = "33c8b6b6-d38a-422a-b730-caa89a2f386c" -version = "0.1.4" +version = "0.1.6" [[deps.ProgressMeter]] deps = ["Distributed", "Printf"] -git-tree-sha1 = "8f6bc219586aef8baf0ff9a5fe16ee9c70cb65e4" +git-tree-sha1 = "fbb92c6c56b34e1a2c4c36058f68f332bec840e7" uuid = "92933f4c-e287-5a05-a399-4b506db050ca" -version = "1.10.2" +version = "1.11.0" + +[[deps.ProtoBuf]] +deps = ["BufferedStreams", "EnumX", "TOML"] +git-tree-sha1 = "da18083a52d9d57bbe6dadaacad39731e5f7be39" +uuid = "3349acd9-ac6a-5e09-bcdb-63829b23a429" +version = "1.3.0" [[deps.PtrArrays]] -git-tree-sha1 = "f011fbb92c4d401059b2212c05c0601b70f8b759" +git-tree-sha1 = "4fbbafbc6251b883f4d2705356f3641f3652a7fe" uuid = "43287f4e-b6f4-7ad1-bb20-aadabca52c3d" -version = "1.2.0" +version = "1.4.0" + +[[deps.PythonCall]] +deps = ["CondaPkg", "Dates", "Libdl", "MacroTools", "Markdown", "Pkg", "Serialization", "Tables", "UnsafePointers"] +git-tree-sha1 = "982f3f017f08d31202574ef6bdcf8b3466430bea" +uuid = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" +version = "0.9.31" + + [deps.PythonCall.extensions] + CategoricalArraysExt = "CategoricalArrays" + PyCallExt = "PyCall" + + [deps.PythonCall.weakdeps] + CategoricalArrays = "324d7699-5711-5eae-9e2f-1d82baa6b597" + PyCall = "438e738f-606a-5dbb-bf0a-cddfbfd45ab0" [[deps.QOI]] deps = ["ColorTypes", "FileIO", "FixedPointNumbers"] -git-tree-sha1 = "18e8f4d1426e965c7b532ddd260599e1510d26ce" +git-tree-sha1 = "472daaa816895cb7aee81658d4e7aec901fa1106" uuid = "4b34888f-f399-49d4-9bb3-47ed5cae4e65" -version = "1.0.0" +version = "1.0.2" [[deps.QuadGK]] deps = ["DataStructures", "LinearAlgebra"] -git-tree-sha1 = "e237232771fdafbae3db5c31275303e056afaa9f" +git-tree-sha1 = "9da16da70037ba9d701192e27befedefb91ec284" uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" -version = "2.10.1" +version = "2.11.2" +weakdeps = ["Enzyme"] + + [deps.QuadGK.extensions] + QuadGKEnzymeExt = "Enzyme" [[deps.REPL]] -deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] +deps = ["InteractiveUtils", "JuliaSyntaxHighlighting", "Markdown", "Sockets", "StyledStrings", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" +version = "1.11.0" [[deps.Random]] deps = ["SHA"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" +version = "1.11.0" [[deps.RangeArrays]] git-tree-sha1 = "b9039e93773ddcfc828f12aadf7115b4b4d225f5" @@ -1648,23 +1878,73 @@ weakdeps = ["FixedPointNumbers"] RatiosFixedPointNumbersExt = "FixedPointNumbers" [[deps.Reactant]] -deps = ["CEnum", "Enzyme", "Libdl", "Preferences", "Reactant_jll"] -git-tree-sha1 = "e502c087b799a8d035ad36ef6d9b0309dd811270" +deps = ["Adapt", "CEnum", "Crayons", "Downloads", "EnumX", "Enzyme", "EnzymeCore", "Functors", "GPUArraysCore", "GPUCompiler", "HTTP", "JSON", "LLVM", "LLVMOpenMP_jll", "Libdl", "LinearAlgebra", "OrderedCollections", "PrecompileTools", "Preferences", "PrettyTables", "ProtoBuf", "Random", "ReactantCore", "Reactant_jll", "ScopedValues", "Scratch", "Serialization", "Setfield", "Sockets", "StableRNGs", "StructUtils", "StyledStrings", "UUIDs", "p7zip_jll"] +git-tree-sha1 = "94c849a5f821f107c74aa19952bd3e9de8ebd341" uuid = "3c362404-f566-11ee-1572-e11a4b42c853" -version = "0.1.9" -weakdeps = ["Adapt", "ArrayInterface", "NNlib", "Statistics"] +version = "0.2.240" [deps.Reactant.extensions] - ReactantAdaptExt = "Adapt" + ReactantAbstractFFTsExt = "AbstractFFTs" ReactantArrayInterfaceExt = "ArrayInterface" - ReactantNNlibExt = "NNlib" + ReactantCUDAExt = ["CUDA", "Enzyme", "GPUCompiler", "KernelAbstractions", "LLVM"] + ReactantDLFP8TypesExt = "DLFP8Types" + ReactantFFTWExt = ["FFTW", "AbstractFFTs", "LinearAlgebra"] + ReactantFillArraysExt = "FillArrays" + ReactantFloat8sExt = "Float8s" + ReactantKernelAbstractionsExt = "KernelAbstractions" + ReactantLogExpFunctionsExt = ["IrrationalConstants", "LogExpFunctions"] + ReactantMCMCDiagnosticToolsExt = ["MCMCDiagnosticTools", "Statistics"] + ReactantMPIExt = "MPI" + ReactantNNlibExt = ["NNlib", "Statistics"] + ReactantNPZExt = "NPZ" + ReactantOffsetArraysExt = "OffsetArrays" + ReactantOneHotArraysExt = "OneHotArrays" + ReactantPythonCallExt = "PythonCall" + ReactantRandom123Ext = "Random123" + ReactantSparseArraysExt = "SparseArrays" + ReactantSpecialFunctionsExt = "SpecialFunctions" ReactantStatisticsExt = "Statistics" + ReactantStructArraysExt = "StructArrays" + ReactantYaoBlocksExt = "YaoBlocks" + ReactantZygoteExt = "Zygote" + + [deps.Reactant.weakdeps] + AbstractFFTs = "621f4979-c628-5d54-868e-fcf4e3e8185c" + ArrayInterface = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" + CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + DLFP8Types = "f4c16678-4a16-415b-82ef-ed337c5d6c7c" + FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" + FillArrays = "1a297f60-69ca-5386-bcde-b61e274b549b" + Float8s = "81dfefd7-55b0-40c6-a251-db853704e186" + IrrationalConstants = "92d709cd-6900-40b7-9082-c6be49f344b6" + KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c" + LogExpFunctions = "2ab3a3ac-af41-5b50-aa03-7779005ae688" + MCMCDiagnosticTools = "be115224-59cd-429b-ad48-344e309966f0" + MPI = "da04e1cc-30fd-572f-bb4f-1f8673147195" + NNlib = "872c559c-99b0-510c-b3b7-b6c96a88d5cd" + NPZ = "15e1cf62-19b3-5cfa-8e77-841668bca605" + OffsetArrays = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" + OneHotArrays = "0b1bfda6-eb8a-41d2-88d8-f5af5cad476f" + PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" + Random123 = "74087812-796a-5b5d-8853-05524746bad3" + SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" + SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" + Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" + YaoBlocks = "418bc28f-b43b-5e0b-a6e7-61bbc1a2c1df" + Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" + +[[deps.ReactantCore]] +deps = ["ExpressionExplorer", "MacroTools"] +git-tree-sha1 = "5b9e0fe7fb2cf3794fd96ac32bf2732aa4bb9776" +uuid = "a3311ec8-5e00-46d5-b541-4f83e724a433" +version = "0.1.19" [[deps.Reactant_jll]] -deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "357fe006e7881d7aca610ae9b91570ba23e29f86" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] +git-tree-sha1 = "9aa24ec7eb8a4d3bccb440d3a736219656f5b657" uuid = "0192cb87-2b54-54ad-80e0-3be72ad8a3c0" -version = "0.0.15+0" +version = "0.0.358+0" [[deps.RealDot]] deps = ["LinearAlgebra"] @@ -1685,21 +1965,21 @@ version = "1.0.1" [[deps.Requires]] deps = ["UUIDs"] -git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" +git-tree-sha1 = "62389eeff14780bfe55195b7204c0d8738436d64" uuid = "ae029012-a4dd-5104-9daa-d747884805df" -version = "1.3.0" +version = "1.3.1" [[deps.Rmath]] deps = ["Random", "Rmath_jll"] -git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" +git-tree-sha1 = "5b3d50eb374cea306873b371d3f8d3915a018f0b" uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" -version = "0.7.1" +version = "0.9.0" [[deps.Rmath_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "e60724fd3beea548353984dc61c943ecddb0e29a" +git-tree-sha1 = "58cdd8fb2201a6267e1db87ff148dd6c1dbd8ad8" uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" -version = "0.4.3+0" +version = "0.5.1+0" [[deps.RoundingEmulator]] git-tree-sha1 = "40b9edad2e5287e05bd413a38f61a8ff55b9557b" @@ -1712,9 +1992,9 @@ version = "0.7.0" [[deps.SIMD]] deps = ["PrecompileTools"] -git-tree-sha1 = "2803cab51702db743f3fda07dd1745aadfbf43bd" +git-tree-sha1 = "e24dc23107d426a096d3eae6c165b921e74c18e4" uuid = "fdea26ae-647d-5447-a871-4b548cad5224" -version = "3.5.0" +version = "3.7.2" [[deps.SIMDTypes]] git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" @@ -1727,30 +2007,43 @@ git-tree-sha1 = "456f610ca2fbd1c14f5fcf31c6bfadc55e7d66e0" uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" version = "0.6.43" +[[deps.SciMLPublic]] +git-tree-sha1 = "0ba076dbdce87ba230fff48ca9bca62e1f345c9b" +uuid = "431bcebd-1456-4ced-9d72-93c2757fff0b" +version = "1.0.1" + +[[deps.ScopedValues]] +deps = ["HashArrayMappedTries", "Logging"] +git-tree-sha1 = "ac4b837d89a58c848e85e698e2a2514e9d59d8f6" +uuid = "7e506255-f358-4e82-b7e4-beb19740aa63" +version = "1.6.0" + [[deps.Scratch]] deps = ["Dates"] -git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +git-tree-sha1 = "9b81b8393e50b7d4e6d0a9f14e192294d3b7c109" uuid = "6c6a2e73-6563-6170-7368-637461726353" -version = "1.2.1" +version = "1.3.0" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" +version = "1.11.0" [[deps.Setfield]] deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] -git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" +git-tree-sha1 = "c5391c6ace3bc430ca630251d02ea9687169ca68" uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" -version = "1.1.1" +version = "1.1.2" [[deps.ShaderAbstractions]] -deps = ["ColorTypes", "FixedPointNumbers", "GeometryBasics", "LinearAlgebra", "Observables", "StaticArrays", "StructArrays", "Tables"] -git-tree-sha1 = "79123bc60c5507f035e6d1d9e563bb2971954ec8" +deps = ["ColorTypes", "FixedPointNumbers", "GeometryBasics", "LinearAlgebra", "Observables", "StaticArrays"] +git-tree-sha1 = "818554664a2e01fc3784becb2eb3a82326a604b6" uuid = "65257c39-d410-5151-9873-9b3e5be5013e" -version = "0.4.1" +version = "0.5.0" [[deps.SharedArrays]] deps = ["Distributed", "Mmap", "Random", "Serialization"] uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" +version = "1.11.0" [[deps.ShowCases]] git-tree-sha1 = "7f534ad62ab2bd48591bdeac81994ea8c445e4a5" @@ -1764,42 +2057,48 @@ uuid = "992d4aef-0814-514b-bc4d-f2e9a6c4116f" version = "1.0.3" [[deps.SignedDistanceFields]] -deps = ["Random", "Statistics", "Test"] -git-tree-sha1 = "d263a08ec505853a5ff1c1ebde2070419e3f28e9" +deps = ["Statistics"] +git-tree-sha1 = "3949ad92e1c9d2ff0cd4a1317d5ecbba682f4b92" uuid = "73760f76-fbc4-59ce-8f25-708e95d2df96" -version = "0.4.0" +version = "0.4.1" + +[[deps.SimpleBufferStream]] +git-tree-sha1 = "f305871d2f381d21527c770d4788c06c097c9bc1" +uuid = "777ac1f9-54b0-4bf8-805c-2214025038e7" +version = "1.2.0" [[deps.SimpleChains]] deps = ["ArrayInterface", "CPUSummary", "ChainRulesCore", "CloseOpenIntervals", "ForwardDiff", "HostCPUFeatures", "IfElse", "LayoutPointers", "LoopVectorization", "ManualMemory", "Polyester", "Random", "SIMDTypes", "SLEEFPirates", "Static", "StaticArrayInterface", "StaticArrays", "StrideArraysCore", "UnPack", "VectorizationBase", "VectorizedRNG"] -git-tree-sha1 = "a6ab9afaf404469f93346cced3030869e27c8cf0" +git-tree-sha1 = "bd3f17dc89fe287eea8f94dd771f9343443dc664" uuid = "de6bee2f-e2f4-4ec7-b6ed-219cc6f6e9e5" -version = "0.4.7" +version = "0.4.8" [[deps.SimpleTraits]] deps = ["InteractiveUtils", "MacroTools"] -git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" +git-tree-sha1 = "be8eeac05ec97d379347584fa9fe2f5f76795bcb" uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" -version = "0.9.4" +version = "0.9.5" [[deps.Sixel]] deps = ["Dates", "FileIO", "ImageCore", "IndirectArrays", "OffsetArrays", "REPL", "libsixel_jll"] -git-tree-sha1 = "2da10356e31327c7096832eb9cd86307a50b1eb6" +git-tree-sha1 = "0494aed9501e7fb65daba895fb7fd57cc38bc743" uuid = "45858cf5-a6b0-47a3-bbea-62219f50df47" -version = "0.1.3" +version = "0.1.5" [[deps.Sockets]] uuid = "6462fe0b-24de-5631-8697-dd941f90decc" +version = "1.11.0" [[deps.SortingAlgorithms]] deps = ["DataStructures"] -git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" +git-tree-sha1 = "64d974c2e6fdf07f8155b5b2ca2ffa9069b608d9" uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" -version = "1.2.1" +version = "1.2.2" [[deps.SparseArrays]] deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" -version = "1.10.0" +version = "1.12.0" [[deps.SparseInverseSubset]] deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] @@ -1809,9 +2108,9 @@ version = "0.1.2" [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "2f5d4697f21388cbe1ff299430dd169ef97d7e14" +git-tree-sha1 = "5acc6a41b3082920f79ca3c759acbcecf18a8d78" uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.4.0" +version = "2.7.1" weakdeps = ["ChainRulesCore"] [deps.SpecialFunctions.extensions] @@ -1823,23 +2122,29 @@ git-tree-sha1 = "e08a62abc517eb79667d0a29dc08a3b589516bb5" uuid = "171d559e-b47b-412a-8079-5efa626c420e" version = "0.1.15" +[[deps.StableRNGs]] +deps = ["Random"] +git-tree-sha1 = "4f96c596b8c8258cc7d3b19797854d368f243ddc" +uuid = "860ef19b-820b-49d6-a774-d7a799459cd3" +version = "1.0.4" + [[deps.StackViews]] deps = ["OffsetArrays"] -git-tree-sha1 = "46e589465204cd0c08b4bd97385e4fa79a0c770c" +git-tree-sha1 = "be1cf4eb0ac528d96f5115b4ed80c26a8d8ae621" uuid = "cae243ae-269e-4f55-b966-ac2d0dc13c15" -version = "0.1.1" +version = "0.1.2" [[deps.Static]] -deps = ["CommonWorldInvalidations", "IfElse", "PrecompileTools"] -git-tree-sha1 = "87d51a3ee9a4b0d2fe054bdd3fc2436258db2603" +deps = ["CommonWorldInvalidations", "IfElse", "PrecompileTools", "SciMLPublic"] +git-tree-sha1 = "49440414711eddc7227724ae6e570c7d5559a086" uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" -version = "1.1.1" +version = "1.3.1" [[deps.StaticArrayInterface]] -deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Static"] -git-tree-sha1 = "96381d50f1ce85f2663584c8e886a6ca97e60554" +deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "SciMLPublic", "Static"] +git-tree-sha1 = "aa1ea41b3d45ac449d10477f65e2b40e3197a0d2" uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.8.0" +version = "1.9.0" weakdeps = ["OffsetArrays", "StaticArrays"] [deps.StaticArrayInterface.extensions] @@ -1848,9 +2153,9 @@ weakdeps = ["OffsetArrays", "StaticArrays"] [[deps.StaticArrays]] deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] -git-tree-sha1 = "eeafab08ae20c62c44c8399ccb9354a04b80db50" +git-tree-sha1 = "246a8bb2e6667f832eea063c3a56aef96429a3db" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.9.7" +version = "1.9.18" weakdeps = ["ChainRulesCore", "Statistics"] [deps.StaticArrays.extensions] @@ -1858,32 +2163,37 @@ weakdeps = ["ChainRulesCore", "Statistics"] StaticArraysStatisticsExt = "Statistics" [[deps.StaticArraysCore]] -git-tree-sha1 = "192954ef1208c7019899fbf8049e717f92959682" +git-tree-sha1 = "6ab403037779dae8c514bad259f32a447262455a" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" -version = "1.4.3" +version = "1.4.4" [[deps.Statistics]] -deps = ["LinearAlgebra", "SparseArrays"] +deps = ["LinearAlgebra"] +git-tree-sha1 = "ae3bb1eb3bba077cd276bc5cfc337cc65c3075c0" uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" -version = "1.10.0" +version = "1.11.1" +weakdeps = ["SparseArrays"] + + [deps.Statistics.extensions] + SparseArraysExt = ["SparseArrays"] [[deps.StatsAPI]] deps = ["LinearAlgebra"] -git-tree-sha1 = "1ff449ad350c9c4cbc756624d6f8a8c3ef56d3ed" +git-tree-sha1 = "178ed29fd5b2a2cfc3bd31c13375ae925623ff36" uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" -version = "1.7.0" +version = "1.8.0" [[deps.StatsBase]] -deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] -git-tree-sha1 = "5cf7606d6cef84b543b483848d4ae08ad9832b21" +deps = ["AliasTables", "DataAPI", "DataStructures", "IrrationalConstants", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] +git-tree-sha1 = "aceda6f4e598d331548e04cc6b2124a6148138e3" uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -version = "0.34.3" +version = "0.34.10" [[deps.StatsFuns]] deps = ["HypergeometricFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] -git-tree-sha1 = "cef0472124fab0695b58ca35a77c6fb942fdab8a" +git-tree-sha1 = "91f091a8716a6bb38417a6e6f274602a19aaa685" uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" -version = "1.3.1" +version = "1.5.2" weakdeps = ["ChainRulesCore", "InverseFunctions"] [deps.StatsFuns.extensions] @@ -1892,20 +2202,27 @@ weakdeps = ["ChainRulesCore", "InverseFunctions"] [[deps.StrideArraysCore]] deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] -git-tree-sha1 = "f35f6ab602df8413a50c4a25ca14de821e8605fb" +git-tree-sha1 = "83151ba8065a73f53ca2ae98bc7274d817aa30f2" uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" -version = "0.5.7" +version = "0.5.8" + +[[deps.StringManipulation]] +deps = ["PrecompileTools"] +git-tree-sha1 = "d05693d339e37d6ab134c5ab53c29fce5ee5d7d5" +uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" +version = "0.4.4" [[deps.StructArrays]] deps = ["ConstructionBase", "DataAPI", "Tables"] -git-tree-sha1 = "f4dc295e983502292c4c3f951dbb4e985e35b3be" +git-tree-sha1 = "a2c37d815bf00575332b7bd0389f771cb7987214" uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" -version = "0.6.18" -weakdeps = ["Adapt", "GPUArraysCore", "SparseArrays", "StaticArrays"] +version = "0.7.2" +weakdeps = ["Adapt", "GPUArraysCore", "KernelAbstractions", "LinearAlgebra", "SparseArrays", "StaticArrays"] [deps.StructArrays.extensions] StructArraysAdaptExt = "Adapt" - StructArraysGPUArraysCoreExt = "GPUArraysCore" + StructArraysGPUArraysCoreExt = ["GPUArraysCore", "KernelAbstractions"] + StructArraysLinearAlgebraExt = "LinearAlgebra" StructArraysSparseArraysExt = "SparseArrays" StructArraysStaticArraysExt = "StaticArrays" @@ -1914,6 +2231,26 @@ git-tree-sha1 = "c581be48ae1cbf83e899b14c07a807e1787512cc" uuid = "53d494c1-5632-5724-8f4c-31dff12d585f" version = "0.3.1" +[[deps.StructUtils]] +deps = ["Dates", "UUIDs"] +git-tree-sha1 = "fa95b3b097bcef5845c142ea2e085f1b2591e92c" +uuid = "ec057cc2-7a8d-4b58-b3b3-92acb9f63b42" +version = "2.7.1" + + [deps.StructUtils.extensions] + StructUtilsMeasurementsExt = ["Measurements"] + StructUtilsStaticArraysCoreExt = ["StaticArraysCore"] + StructUtilsTablesExt = ["Tables"] + + [deps.StructUtils.weakdeps] + Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" + StaticArraysCore = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" + Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" + +[[deps.StyledStrings]] +uuid = "f489334b-da3d-4c2e-b8f0-e476e12c162b" +version = "1.11.0" + [[deps.SuiteSparse]] deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" @@ -1921,7 +2258,7 @@ uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" [[deps.SuiteSparse_jll]] deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" -version = "7.2.1+1" +version = "7.8.3+2" [[deps.TOML]] deps = ["Dates"] @@ -1936,9 +2273,9 @@ version = "1.0.1" [[deps.Tables]] deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "OrderedCollections", "TableTraits"] -git-tree-sha1 = "598cd7c1f68d1e205689b1c2fe65a9f85846f297" +git-tree-sha1 = "f2c1efbc8f3a609aadf318094f8fc5204bdaf344" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.12.0" +version = "1.12.1" [[deps.Tar]] deps = ["ArgTools", "SHA"] @@ -1954,37 +2291,45 @@ version = "0.1.1" [[deps.Test]] deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" +version = "1.11.0" [[deps.ThreadingUtilities]] deps = ["ManualMemory"] -git-tree-sha1 = "eda08f7e9818eb53661b3deb74e3159460dfbc27" +git-tree-sha1 = "d969183d3d244b6c33796b5ed01ab97328f2db85" uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" -version = "0.5.2" +version = "0.5.5" [[deps.TiffImages]] -deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "ProgressMeter", "SIMD", "UUIDs"] -git-tree-sha1 = "bc7fd5c91041f44636b2c134041f7e5263ce58ae" +deps = ["ColorTypes", "DataStructures", "DocStringExtensions", "FileIO", "FixedPointNumbers", "IndirectArrays", "Inflate", "Mmap", "OffsetArrays", "PkgVersion", "PrecompileTools", "ProgressMeter", "SIMD", "UUIDs"] +git-tree-sha1 = "08c10bc34f4e7743f530793d0985bf3c254e193d" uuid = "731e570b-9d59-4bfa-96dc-6df516fadf69" -version = "0.10.0" +version = "0.11.8" + +[[deps.Tracy]] +deps = ["ExprTools", "LibTracyClient_jll", "Libdl"] +git-tree-sha1 = "73e3ff50fd3990874c59fef0f35d10644a1487bc" +uuid = "e689c965-62c8-4b79-b2c5-8359227902fd" +version = "0.1.6" -[[deps.TimerOutputs]] -deps = ["ExprTools", "Printf"] -git-tree-sha1 = "5a13ae8a41237cff5ecf34f73eb1b8f42fff6531" -uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" -version = "0.5.24" + [deps.Tracy.extensions] + TracyProfilerExt = "TracyProfiler_jll" + + [deps.Tracy.weakdeps] + TracyProfiler_jll = "0c351ed6-8a68-550e-8b79-de6f926da83c" [[deps.TranscodingStreams]] -git-tree-sha1 = "e84b3a11b9bece70d14cce63406bbc79ed3464d2" +git-tree-sha1 = "0c45878dcfdcfa8480052b6ab162cdd138781742" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.11.2" +version = "0.11.3" [[deps.Transducers]] -deps = ["Accessors", "Adapt", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "ConstructionBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "Requires", "SplittablesBase", "Tables"] -git-tree-sha1 = "5215a069867476fc8e3469602006b9670e68da23" +deps = ["Accessors", "ArgCheck", "BangBang", "Baselet", "CompositionsBase", "ConstructionBase", "DefineSingletons", "Distributed", "InitialValues", "Logging", "Markdown", "MicroCollections", "SplittablesBase", "Tables"] +git-tree-sha1 = "4aa1fdf6c1da74661f6f5d3edfd96648321dade9" uuid = "28d57a85-8fef-5791-bfe6-a80928e7c999" -version = "0.4.82" +version = "0.4.85" [deps.Transducers.extensions] + TransducersAdaptExt = "Adapt" TransducersBlockArraysExt = "BlockArrays" TransducersDataFramesExt = "DataFrames" TransducersLazyArraysExt = "LazyArrays" @@ -1992,6 +2337,7 @@ version = "0.4.82" TransducersReferenceablesExt = "Referenceables" [deps.Transducers.weakdeps] + Adapt = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" DataFrames = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" LazyArrays = "5078a376-72f3-5289-bfd5-ec5146d43c02" @@ -2003,9 +2349,15 @@ git-tree-sha1 = "4d4ed7f294cda19382ff7de4c137d24d16adc89b" uuid = "981d1d27-644d-49a2-9326-4793e63143c3" version = "0.1.0" +[[deps.URIs]] +git-tree-sha1 = "bef26fb046d031353ef97a82e3fdb6afe7f21b1a" +uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" +version = "1.6.1" + [[deps.UUIDs]] deps = ["Random", "SHA"] uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" +version = "1.11.0" [[deps.UnPack]] git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" @@ -2014,6 +2366,7 @@ version = "1.0.2" [[deps.Unicode]] uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" +version = "1.11.0" [[deps.UnicodeFun]] deps = ["REPL"] @@ -2023,36 +2376,46 @@ version = "0.4.1" [[deps.Unitful]] deps = ["Dates", "LinearAlgebra", "Random"] -git-tree-sha1 = "d95fe458f26209c66a187b1114df96fd70839efd" +git-tree-sha1 = "57e1b2c9de4bd6f40ecb9de4ac1797b81970d008" uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" -version = "1.21.0" -weakdeps = ["ConstructionBase", "InverseFunctions"] +version = "1.28.0" [deps.Unitful.extensions] ConstructionBaseUnitfulExt = "ConstructionBase" + ForwardDiffExt = "ForwardDiff" InverseFunctionsUnitfulExt = "InverseFunctions" + LatexifyExt = ["Latexify", "LaTeXStrings"] + NaNMathExt = "NaNMath" + PrintfExt = "Printf" -[[deps.UnrolledUtilities]] -git-tree-sha1 = "b73f7a7c25a2618c5052c80ed32b07e471cc6cb0" -uuid = "0fe1646c-419e-43be-ac14-22321958931b" -version = "0.1.2" + [deps.Unitful.weakdeps] + ConstructionBase = "187b0558-2788-49d3-abe0-74a17ed4e7c9" + ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210" + InverseFunctions = "3587e190-3f89-42d0-90ee-14403ec27112" + LaTeXStrings = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" + Latexify = "23fbe1c1-3f47-55db-b15f-69d7ec21a316" + NaNMath = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" + Printf = "de0858da-6303-5e67-8744-51eddeeeb8d7" [[deps.UnsafeAtomics]] -git-tree-sha1 = "6331ac3440856ea1988316b46045303bef658278" +git-tree-sha1 = "0f30765c32d66d58e41f4cb5624d4fc8a82ec13b" uuid = "013be700-e6cd-48c3-b4a1-df204f14c38f" -version = "0.2.1" +version = "0.3.1" +weakdeps = ["LLVM"] -[[deps.UnsafeAtomicsLLVM]] -deps = ["LLVM", "UnsafeAtomics"] -git-tree-sha1 = "4073c836c2befcb041e5fe306cb6abf621eb3140" -uuid = "d80eeb9a-aca5-4d75-85e5-170c8b632249" -version = "0.2.0" + [deps.UnsafeAtomics.extensions] + UnsafeAtomicsLLVM = ["LLVM"] + +[[deps.UnsafePointers]] +git-tree-sha1 = "c81331b3b2e60a982be57c046ec91f599ede674a" +uuid = "e17b2a0c-0bdf-430a-bd0c-3a23cae4ff39" +version = "1.0.0" [[deps.VectorizationBase]] deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] -git-tree-sha1 = "e7f5b81c65eb858bed630fe006837b935518aca5" +git-tree-sha1 = "d1d9a935a26c475ebffd54e9c7ad11627c43ea85" uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" -version = "0.21.70" +version = "0.21.72" [[deps.VectorizedRNG]] deps = ["Distributed", "Random", "SLEEFPirates", "UnPack", "VectorizationBase"] @@ -2064,118 +2427,120 @@ weakdeps = ["Requires", "StaticArraysCore"] [deps.VectorizedRNG.extensions] VectorizedRNGStaticArraysExt = ["StaticArraysCore"] +[[deps.WebP]] +deps = ["CEnum", "ColorTypes", "FileIO", "FixedPointNumbers", "ImageCore", "libwebp_jll"] +git-tree-sha1 = "aa1ca3c47f119fbdae8770c29820e5e6119b83f2" +uuid = "e3aaa7dc-3e4b-44e0-be63-ffb868ccd7c1" +version = "0.1.3" + [[deps.WeightInitializers]] -deps = ["ArgCheck", "ChainRulesCore", "ConcreteStructs", "GPUArraysCore", "LinearAlgebra", "Random", "SpecialFunctions", "Statistics"] -git-tree-sha1 = "33ce5777ca44b33f708ccbc67ea51b68a68b7bdd" +deps = ["ConcreteStructs", "GPUArraysCore", "LinearAlgebra", "Random", "SpecialFunctions", "Statistics"] +git-tree-sha1 = "d79b71da9e7be904db615bdb99187d30753822a4" uuid = "d49dbf32-c5c2-4618-8acc-27bb2598ef2d" -version = "1.0.1" +version = "1.3.1" [deps.WeightInitializers.extensions] - WeightInitializersAMDGPUExt = ["AMDGPU", "GPUArrays"] - WeightInitializersCUDAExt = ["CUDA", "GPUArrays"] - WeightInitializersGPUArraysExt = "GPUArrays" - WeightInitializersMetalExt = ["Metal", "GPUArrays"] - WeightInitializersoneAPIExt = ["oneAPI", "GPUArrays"] + AMDGPUExt = "AMDGPU" + CUDAExt = "CUDA" + ChainRulesCoreExt = "ChainRulesCore" + GPUArraysExt = "GPUArrays" + ReactantExt = "Reactant" [deps.WeightInitializers.weakdeps] AMDGPU = "21141c5a-9bdb-4563-92ae-f87d6854732e" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" GPUArrays = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" - Metal = "dde4c033-4e86-420c-a63e-0dd931031962" - oneAPI = "8f75cd03-7ff8-4ecb-9b8f-daf728133b1b" + Reactant = "3c362404-f566-11ee-1572-e11a4b42c853" [[deps.WoodburyMatrices]] deps = ["LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "c1a7aa6219628fcd757dede0ca95e245c5cd9511" +git-tree-sha1 = "248a7031b3da79a127f14e5dc5f417e26f9f6db7" uuid = "efce3f68-66dc-5838-9240-27a6d6f5f9b6" -version = "1.0.0" - -[[deps.XML2_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "d9717ce3518dc68a99e6b96300813760d887a01d" -uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.13.1+0" +version = "1.1.0" -[[deps.XSLT_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Libgcrypt_jll", "Libgpg_error_jll", "Libiconv_jll", "XML2_jll", "Zlib_jll"] -git-tree-sha1 = "a54ee957f4c86b526460a720dbc882fa5edcbefc" -uuid = "aed1982a-8fda-507f-9586-7b0439959a61" -version = "1.1.41+0" +[[deps.XZ_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "9cce64c0fdd1960b597ba7ecda2950b5ed957438" +uuid = "ffd25f8a-64ca-5728-b0f7-c24cf3aae800" +version = "5.8.2+0" [[deps.Xorg_libX11_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libxcb_jll", "Xorg_xtrans_jll"] -git-tree-sha1 = "afead5aba5aa507ad5a3bf01f58f82c8d1403495" +git-tree-sha1 = "808090ede1d41644447dd5cbafced4731c56bd2f" uuid = "4f6342f7-b3d2-589e-9d20-edeb45f2b2bc" -version = "1.8.6+0" +version = "1.8.13+0" [[deps.Xorg_libXau_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "6035850dcc70518ca32f012e46015b9beeda49d8" +git-tree-sha1 = "aa1261ebbac3ccc8d16558ae6799524c450ed16b" uuid = "0c0b7dd1-d40b-584c-a123-a41640f87eec" -version = "1.0.11+0" +version = "1.0.13+0" [[deps.Xorg_libXdmcp_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "34d526d318358a859d7de23da945578e8e8727b7" +git-tree-sha1 = "52858d64353db33a56e13c341d7bf44cd0d7b309" uuid = "a3789734-cfe1-5b06-b2d0-1dd0d9d62d05" -version = "1.1.4+0" +version = "1.1.6+0" [[deps.Xorg_libXext_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] -git-tree-sha1 = "d2d1a5c49fae4ba39983f63de6afcbea47194e85" +git-tree-sha1 = "1a4a26870bf1e5d26cd585e38038d399d7e65706" uuid = "1082639a-0dae-5f34-9b06-72781eeb8cb3" -version = "1.3.6+0" +version = "1.3.8+0" [[deps.Xorg_libXrender_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libX11_jll"] -git-tree-sha1 = "47e45cd78224c53109495b3e324df0c37bb61fbe" +git-tree-sha1 = "7ed9347888fac59a618302ee38216dd0379c480d" uuid = "ea2f1a96-1ddc-540d-b46f-429655e07cfa" -version = "0.9.11+0" - -[[deps.Xorg_libpthread_stubs_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "8fdda4c692503d44d04a0603d9ac0982054635f9" -uuid = "14d82f49-176c-5ed1-bb49-ad3f5cbd8c74" -version = "0.1.1+0" +version = "0.9.12+0" [[deps.Xorg_libxcb_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "XSLT_jll", "Xorg_libXau_jll", "Xorg_libXdmcp_jll", "Xorg_libpthread_stubs_jll"] -git-tree-sha1 = "bcd466676fef0878338c61e655629fa7bbc69d8e" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Xorg_libXau_jll", "Xorg_libXdmcp_jll"] +git-tree-sha1 = "bfcaf7ec088eaba362093393fe11aa141fa15422" uuid = "c7cfdc94-dc32-55de-ac96-5a1b8d977c5b" -version = "1.17.0+0" +version = "1.17.1+0" [[deps.Xorg_xtrans_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "e92a1a012a10506618f10b7047e478403a046c77" +git-tree-sha1 = "a63799ff68005991f9d9491b6e95bd3478d783cb" uuid = "c5fb5394-a638-5e4d-96e5-b29de1b5cf10" -version = "1.5.0+0" +version = "1.6.0+0" [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" -version = "1.2.13+1" +version = "1.3.1+2" + +[[deps.Zstd_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "446b23e73536f84e8037f5dce465e92275f6a308" +uuid = "3161d3a3-bdf6-5164-811a-617609db77b4" +version = "1.5.7+1" [[deps.Zygote]] -deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArrays", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "Requires", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] -git-tree-sha1 = "19c586905e78a26f7e4e97f81716057bd6b1bc54" +deps = ["AbstractFFTs", "ChainRules", "ChainRulesCore", "DiffRules", "Distributed", "FillArrays", "ForwardDiff", "GPUArraysCore", "IRTools", "InteractiveUtils", "LinearAlgebra", "LogExpFunctions", "MacroTools", "NaNMath", "PrecompileTools", "Random", "SparseArrays", "SpecialFunctions", "Statistics", "ZygoteRules"] +git-tree-sha1 = "a29cbf3968d36022198bcc6f23fdfd70f7caf737" uuid = "e88e6eb3-aa80-5325-afca-941959d7151f" -version = "0.6.70" +version = "0.7.10" [deps.Zygote.extensions] + ZygoteAtomExt = "Atom" ZygoteColorsExt = "Colors" ZygoteDistancesExt = "Distances" ZygoteTrackerExt = "Tracker" [deps.Zygote.weakdeps] + Atom = "c52e3926-4ff0-5f6e-af25-54175e0327b1" Colors = "5ae59095-9a9b-59fe-a467-6f913c188581" Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c" [[deps.ZygoteRules]] deps = ["ChainRulesCore", "MacroTools"] -git-tree-sha1 = "27798139afc0a2afa7b1824c206d5e87ea587a00" +git-tree-sha1 = "434b3de333c75fc446aa0d19fc394edafd07ab08" uuid = "700de1a5-db45-46bc-99cf-38207098b444" -version = "0.2.5" +version = "0.2.7" [[deps.isoband_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -2185,69 +2550,81 @@ version = "0.2.3+0" [[deps.libaom_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "1827acba325fdcdf1d2647fc8d5301dd9ba43a9d" +git-tree-sha1 = "371cc681c00a3ccc3fbc5c0fb91f58ba9bec1ecf" uuid = "a4ae2306-e953-59d6-aa16-d00cac43593b" -version = "3.9.0+0" +version = "3.13.1+0" [[deps.libass_jll]] -deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Pkg", "Zlib_jll"] -git-tree-sha1 = "5982a94fcba20f02f42ace44b9894ee2b140fe47" +deps = ["Artifacts", "Bzip2_jll", "FreeType2_jll", "FriBidi_jll", "HarfBuzz_jll", "JLLWrappers", "Libdl", "Zlib_jll"] +git-tree-sha1 = "125eedcb0a4a0bba65b657251ce1d27c8714e9d6" uuid = "0ac62f75-1d6f-5e53-bd7c-93b484bb37c0" -version = "0.15.1+0" +version = "0.17.4+0" [[deps.libblastrampoline_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" -version = "5.8.0+1" +version = "5.15.0+0" [[deps.libfdk_aac_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "daacc84a041563f965be61859a36e17c4e4fcd55" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "646634dd19587a56ee2f1199563ec056c5f228df" uuid = "f638f0a6-7fb0-5443-88ba-1cc74229b280" -version = "2.0.2+0" +version = "2.0.4+0" [[deps.libpng_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Zlib_jll"] -git-tree-sha1 = "d7015d2e18a5fd9a4f47de711837e980519781a4" +git-tree-sha1 = "e015f211ebb898c8180887012b938f3851e719ac" uuid = "b53b4c65-9356-5827-b1ea-8c7a1a84506f" -version = "1.6.43+1" +version = "1.6.55+0" [[deps.libsixel_jll]] -deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Pkg", "libpng_jll"] -git-tree-sha1 = "d4f63314c8aa1e48cd22aa0c17ed76cd1ae48c3c" +deps = ["Artifacts", "JLLWrappers", "JpegTurbo_jll", "Libdl", "libpng_jll"] +git-tree-sha1 = "c1733e347283df07689d71d61e14be986e49e47a" uuid = "075b6546-f08a-558a-be8f-8157d0f608a5" -version = "1.10.3+0" +version = "1.10.5+0" [[deps.libvorbis_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll", "Pkg"] -git-tree-sha1 = "490376214c4721cdaca654041f635213c6165cb3" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Ogg_jll"] +git-tree-sha1 = "11e1772e7f3cc987e9d3de991dd4f6b2602663a5" uuid = "f27f6e37-5d2b-51aa-960f-b287f2bc3b7a" -version = "1.3.7+2" +version = "1.3.8+0" + +[[deps.libwebp_jll]] +deps = ["Artifacts", "Giflib_jll", "JLLWrappers", "JpegTurbo_jll", "Libdl", "Libglvnd_jll", "Libtiff_jll", "libpng_jll"] +git-tree-sha1 = "4e4282c4d846e11dce56d74fa8040130b7a95cb3" +uuid = "c5f90fcd-3b7e-5836-afba-fc50a0988cb2" +version = "1.6.0+0" + +[[deps.micromamba_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "717df6f6892af4ee13279a73aa58474e58a88667" +uuid = "f8abcde7-e9b7-5caa-b8af-a437887ae8e4" +version = "2.3.1+0" [[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" -version = "1.52.0+1" - -[[deps.oneTBB_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "7d0ea0f4895ef2f5cb83645fa689e52cb55cf493" -uuid = "1317d2d5-d96f-522e-a858-c73665f53c3e" -version = "2021.12.0+0" +version = "1.64.0+1" [[deps.p7zip_jll]] -deps = ["Artifacts", "Libdl"] +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" -version = "17.4.0+2" +version = "17.7.0+0" + +[[deps.pixi_jll]] +deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "f349584316617063160a947a82638f7611a8ef0f" +uuid = "4d7b5844-a134-5dcd-ac86-c8f19cd51bed" +version = "0.41.3+0" [[deps.x264_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "4fea590b89e6ec504593146bf8b988b2c00922b2" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "14cc7083fc6dff3cc44f2bc435ee96d06ed79aa7" uuid = "1270edf5-f2f9-52d2-97e9-ab00b5d0237a" -version = "2021.5.5+0" +version = "10164.0.1+0" [[deps.x265_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "ee567a171cce03570d77ad3a43e90218e38937a9" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "e7b67590c14d487e734dcb925924c5dc43ec85f3" uuid = "dfaa095f-4041-5dcd-9319-2fabd8486b76" -version = "3.5.0+0" +version = "4.1.0+0" diff --git a/benchmarks/NeuralNetworks/Project.toml b/benchmarks/NeuralNetworks/Project.toml index 7f47629b9..8a0bcf883 100644 --- a/benchmarks/NeuralNetworks/Project.toml +++ b/benchmarks/NeuralNetworks/Project.toml @@ -1,16 +1,30 @@ [deps] BenchmarkTools = "6e4b80f9-dd63-53aa-95a3-0cdb28fa8baf" CairoMakie = "13f3f980-e62b-5c42-98c6-ff1f3baf88f0" -DispatchDoctor = "8d63f2c5-f18a-4cf2-ba9d-b3f60fc568c8" +CondaPkg = "992eb4ea-22a4-4c89-a5bb-47a3300528ab" Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" Flux = "587475ba-b771-5e3f-ad9e-33799f191a9c" Lux = "b2108857-7c20-44ae-9111-449ecde12c47" -LuxLib = "82251201-b29d-42c6-8e01-566dec8acb11" +MLDataDevices = "7e8f7934-dd98-4c1a-8fe8-92b47a384d40" +Optimisers = "3bd65402-5787-11e9-1adc-39752487f4e2" +PythonCall = "6099a3de-0909-46bc-b1f4-468b9a2dfc0d" Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" Reactant = "3c362404-f566-11ee-1572-e11a4b42c853" SimpleChains = "de6bee2f-e2f4-4ec7-b6ed-219cc6f6e9e5" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f" -[extras] -LuxCore = "bb33d45b-7691-41d6-9220-0943567d0623" +[compat] +BenchmarkTools = "1" +CairoMakie = "0.12, 0.13" +CondaPkg = "0.2" +Enzyme = "0.13" +Flux = "0.16" +Lux = "1" +MLDataDevices = "1" +Optimisers = "0.4" +PythonCall = "0.9" +Reactant = "0.2" +SimpleChains = "0.4" +Statistics = "1" +Zygote = "0.6, 0.7" diff --git a/benchmarks/NeuralNetworks/benchmark_config.toml b/benchmarks/NeuralNetworks/benchmark_config.toml new file mode 100644 index 000000000..3f352d626 --- /dev/null +++ b/benchmarks/NeuralNetworks/benchmark_config.toml @@ -0,0 +1,3 @@ +# Neural network benchmarks — run on GPU runner (demeter3) +runner = ["self-hosted", "gpu", "exclusive"] +timeout = 12000 diff --git a/benchmarks/NeuralNetworks/nn_benchmark_utils.py b/benchmarks/NeuralNetworks/nn_benchmark_utils.py new file mode 100644 index 000000000..91c372571 --- /dev/null +++ b/benchmarks/NeuralNetworks/nn_benchmark_utils.py @@ -0,0 +1,288 @@ +""" +Python timing utilities and model definitions for neural network benchmarks. +All timing is done inside Python to avoid Julia-to-Python call overhead. +""" +import time +import numpy as np + +# ---- JAX ---- +import jax +import jax.numpy as jnp +from jax import random +import optax + +# ---- PyTorch ---- +import torch +import torch.nn as tnn + + +# ============================================================ +# Timing utilities +# ============================================================ + +def time_jax_inference(fn, *args, n_runs=100): + """Time a JIT-compiled JAX function, including block_until_ready.""" + for _ in range(5): + fn(*args).block_until_ready() + times = [] + for _ in range(n_runs): + start = time.perf_counter() + fn(*args).block_until_ready() + end_ = time.perf_counter() + times.append(end_ - start) + return float(np.median(times)) + + +def time_jax_train_step(train_step_fn, params, x, y, n_runs=50): + """Time a JAX training step, blocking until all outputs are ready.""" + for _ in range(3): + params, _ = train_step_fn(params, x, y) + times = [] + for _ in range(n_runs): + start = time.perf_counter() + params, loss = train_step_fn(params, x, y) + jax.tree.map(lambda t: t.block_until_ready(), params) + end_ = time.perf_counter() + times.append(end_ - start) + return float(np.median(times)) + + +def time_torch_inference(model, x, n_runs=100): + """Time a PyTorch model in eval mode.""" + model.eval() + with torch.no_grad(): + for _ in range(5): + model(x) + times = [] + for _ in range(n_runs): + start = time.perf_counter() + model(x) + end_ = time.perf_counter() + times.append(end_ - start) + return float(np.median(times)) + + +def time_torch_train_step(model, optimizer, loss_fn, x, y, n_runs=50): + """Time a full PyTorch train step (zero_grad + forward + backward + step).""" + model.train() + for _ in range(3): + optimizer.zero_grad() + out = model(x) + loss = loss_fn(out, y) + loss.backward() + optimizer.step() + times = [] + for _ in range(n_runs): + start = time.perf_counter() + optimizer.zero_grad() + out = model(x) + loss = loss_fn(out, y) + loss.backward() + optimizer.step() + end_ = time.perf_counter() + times.append(end_ - start) + return float(np.median(times)) + + +# ============================================================ +# JAX MLP helpers +# ============================================================ + +def create_jax_mlp_params(key): + """Create parameters for a 7-layer MLP (32 -> 256x6 -> 10).""" + params = [] + key, subkey = random.split(key) + params.append({"w": random.normal(subkey, (32, 256)) * 0.01, "b": jnp.zeros(256)}) + for _ in range(5): + key, subkey = random.split(key) + params.append( + {"w": random.normal(subkey, (256, 256)) * 0.01, "b": jnp.zeros(256)} + ) + key, subkey = random.split(key) + params.append({"w": random.normal(subkey, (256, 10)) * 0.01, "b": jnp.zeros(10)}) + return params + + +@jax.jit +def jax_mlp_relu_forward(params, x): + for layer in params[:-1]: + x = jax.nn.relu(x @ layer["w"] + layer["b"]) + return x @ params[-1]["w"] + params[-1]["b"] + + +@jax.jit +def jax_mlp_gelu_forward(params, x): + for layer in params[:-1]: + x = jax.nn.gelu(x @ layer["w"] + layer["b"]) + return x @ params[-1]["w"] + params[-1]["b"] + + +def make_jax_mlp_train_step(forward_fn, params): + """Create a JIT-compiled training step for a JAX MLP.""" + optimizer = optax.adam(1e-3) + opt_state = optimizer.init(params) + + def loss_fn(p, x, y): + pred = forward_fn(p, x) + return jnp.mean((pred - y) ** 2) + + @jax.jit + def train_step(params, x, y): + loss, grads = jax.value_and_grad(loss_fn)(params, x, y) + updates, _ = optimizer.update(grads, opt_state, params) + new_params = optax.apply_updates(params, updates) + return new_params, loss + + return train_step + + +# ============================================================ +# JAX LeNet helpers +# ============================================================ + +def create_jax_lenet_params(key): + params = {} + key, k1 = random.split(key) + params["conv1_w"] = random.normal(k1, (6, 1, 5, 5)) * 0.01 + params["conv1_b"] = jnp.zeros(6) + key, k2 = random.split(key) + params["conv2_w"] = random.normal(k2, (16, 6, 5, 5)) * 0.01 + params["conv2_b"] = jnp.zeros(16) + key, k3 = random.split(key) + params["fc1_w"] = random.normal(k3, (256, 120)) * 0.01 + params["fc1_b"] = jnp.zeros(120) + key, k4 = random.split(key) + params["fc2_w"] = random.normal(k4, (120, 84)) * 0.01 + params["fc2_b"] = jnp.zeros(84) + key, k5 = random.split(key) + params["fc3_w"] = random.normal(k5, (84, 10)) * 0.01 + params["fc3_b"] = jnp.zeros(10) + return params + + +@jax.jit +def jax_lenet_forward(params, x): + """LeNet-5 forward pass. x: (batch, 1, 28, 28) NCHW.""" + x = ( + jax.lax.conv(x, params["conv1_w"], (1, 1), "VALID") + + params["conv1_b"][None, :, None, None] + ) + x = jax.nn.relu(x) + x = jax.lax.reduce_window( + x, -jnp.inf, jax.lax.max, (1, 1, 2, 2), (1, 1, 2, 2), "VALID" + ) + x = ( + jax.lax.conv(x, params["conv2_w"], (1, 1), "VALID") + + params["conv2_b"][None, :, None, None] + ) + x = jax.nn.relu(x) + x = jax.lax.reduce_window( + x, -jnp.inf, jax.lax.max, (1, 1, 2, 2), (1, 1, 2, 2), "VALID" + ) + x = x.reshape(x.shape[0], -1) + x = jax.nn.relu(x @ params["fc1_w"] + params["fc1_b"]) + x = jax.nn.relu(x @ params["fc2_w"] + params["fc2_b"]) + return x @ params["fc3_w"] + params["fc3_b"] + + +def make_jax_lenet_train_step(params): + optimizer = optax.adam(1e-3) + opt_state = optimizer.init(params) + + def loss_fn(p, x, y): + pred = jax_lenet_forward(p, x) + return jnp.mean((pred - y) ** 2) + + @jax.jit + def train_step(params, x, y): + loss, grads = jax.value_and_grad(loss_fn)(params, x, y) + updates, _ = optimizer.update(grads, opt_state, params) + return optax.apply_updates(params, updates), loss + + return train_step + + +# ============================================================ +# PyTorch model definitions +# ============================================================ + +class TorchMLP(tnn.Module): + def __init__(self, activation="relu"): + super().__init__() + act_fn = tnn.ReLU() if activation == "relu" else tnn.GELU() + layers = [tnn.Linear(32, 256), act_fn] + for _ in range(5): + layers.extend([tnn.Linear(256, 256), act_fn]) + layers.append(tnn.Linear(256, 10)) + self.net = tnn.Sequential(*layers) + + def forward(self, x): + return self.net(x) + + +class TorchMLPBN(tnn.Module): + def __init__(self): + super().__init__() + layers = [tnn.Linear(32, 256), tnn.BatchNorm1d(256), tnn.ReLU()] + for _ in range(5): + layers.extend([tnn.Linear(256, 256), tnn.BatchNorm1d(256), tnn.ReLU()]) + layers.append(tnn.Linear(256, 10)) + self.net = tnn.Sequential(*layers) + + def forward(self, x): + return self.net(x) + + +class TorchLeNet(tnn.Module): + def __init__(self): + super().__init__() + self.conv1 = tnn.Conv2d(1, 6, 5) + self.conv2 = tnn.Conv2d(6, 16, 5) + self.pool = tnn.MaxPool2d(2, 2) + self.fc1 = tnn.Linear(16 * 4 * 4, 120) + self.fc2 = tnn.Linear(120, 84) + self.fc3 = tnn.Linear(84, 10) + + def forward(self, x): + x = self.pool(torch.relu(self.conv1(x))) + x = self.pool(torch.relu(self.conv2(x))) + x = x.view(x.size(0), -1) + x = torch.relu(self.fc1(x)) + x = torch.relu(self.fc2(x)) + return self.fc3(x) + + +class TorchResBlock(tnn.Module): + def __init__(self, channels): + super().__init__() + self.conv1 = tnn.Conv2d(channels, channels, 3, padding=1, bias=False) + self.bn1 = tnn.BatchNorm2d(channels) + self.conv2 = tnn.Conv2d(channels, channels, 3, padding=1, bias=False) + self.bn2 = tnn.BatchNorm2d(channels) + + def forward(self, x): + out = torch.relu(self.bn1(self.conv1(x))) + out = self.bn2(self.conv2(out)) + return torch.relu(out + x) + + +class TorchSmallResNet(tnn.Module): + def __init__(self): + super().__init__() + self.conv1 = tnn.Conv2d(3, 64, 3, padding=1, bias=False) + self.bn1 = tnn.BatchNorm2d(64) + self.block1 = TorchResBlock(64) + self.down_conv1 = tnn.Conv2d(64, 128, 3, stride=2, padding=1, bias=False) + self.down_bn1 = tnn.BatchNorm2d(128) + self.down_conv2 = tnn.Conv2d(128, 128, 3, padding=1, bias=False) + self.down_bn2 = tnn.BatchNorm2d(128) + self.pool = tnn.AdaptiveAvgPool2d(1) + self.fc = tnn.Linear(128, 10) + + def forward(self, x): + x = torch.relu(self.bn1(self.conv1(x))) + x = self.block1(x) + x = torch.relu(self.down_bn1(self.down_conv1(x))) + x = self.down_bn2(self.down_conv2(x)) + x = self.pool(x).view(x.size(0), -1) + return self.fc(x) diff --git a/benchmarks/NeuralNetworks/simple_networks.jmd b/benchmarks/NeuralNetworks/simple_networks.jmd index d98bb3b54..a01764941 100644 --- a/benchmarks/NeuralNetworks/simple_networks.jmd +++ b/benchmarks/NeuralNetworks/simple_networks.jmd @@ -1,364 +1,769 @@ --- title: Simple Neural Networks -author: Avik Pal +author: Avik Pal, Chris Rackauckas --- -This benchmark compares Julia deep learning frameworks on some common workloads. Currently -we only test our models on CPU. We compare inference using: +This benchmark compares Julia and Python deep learning frameworks on common neural +network workloads. We compare: -1. [Flux.jl](https://github.com/FluxML/Flux.jl) -2. [Lux.jl](https://github.com/LuxDL/Lux.jl) -3. [SimpleChains.jl](https://github.com/PumasAI/SimpleChains.jl) (via Lux.jl wrapper) -4. Lux model compiled using [Reactant.jl](https://github.com/EnzymeAD/Reactant.jl) +**Julia Frameworks:** +1. [Lux.jl](https://github.com/LuxDL/Lux.jl) +2. [Flux.jl](https://github.com/FluxML/Flux.jl) +3. [SimpleChains.jl](https://github.com/PumasAI/SimpleChains.jl) (via Lux.jl wrapper, CPU-optimized small networks) +4. [Reactant.jl](https://github.com/EnzymeAD/Reactant.jl) (XLA-compiled Lux models) -!!! note - - Not all benchmarks include all the 4 mentioned above. For example, SimpleChains.jl - lacks support for batch normalization layers. Additionally, Reactant.jl is being - actively developed and integration of more Lux models with Reactant is ongoing. +**Python Frameworks (via PythonCall):** +5. [JAX](https://github.com/google/jax) +6. [PyTorch](https://github.com/pytorch/pytorch) -Additionally training is compared among: +!!! note -1. [Zygote.jl](https://github.com/FluxML/Zygote.jl) + Flux.jl -2. Zygote.jl + Lux.jl -3. [Enzyme.jl](https://github.com/EnzymeAD/Enzyme.jl) + Lux.jl + Not all benchmarks include all frameworks. SimpleChains.jl does not support + batch normalization or convolutions with certain configurations. Python timing + is done entirely in Python to avoid Julia-to-Python call overhead. # Setup -Fetch required packages. - ```julia -import DispatchDoctor: allow_unstable - -using BenchmarkTools, Random -import Flux, SimpleChains, Reactant -using Lux -using Zygote, Enzyme -using Statistics +using BenchmarkTools, Random, Statistics +using Lux, Reactant, MLDataDevices +import Flux, SimpleChains +using Optimisers, Zygote, Enzyme using CairoMakie +using PythonCall, CondaPkg BenchmarkTools.DEFAULT_PARAMETERS.gcsample = true BenchmarkTools.DEFAULT_PARAMETERS.seconds = 30 + +const rng = Random.default_rng() +Random.seed!(rng, 12345) ``` -## Shared Benchmarking Functions +## Python Setup + +We load all Python models and timing utilities from a companion module. ```julia -function compile_reactant_inference(model, x, ps, st) - # FIXME: This is currently broken - cmodel = Reactant.make_tracer(IdDict(), model, (), Reactant.ArrayToConcrete) - cps = Reactant.make_tracer(IdDict(), ps, (), Reactant.ArrayToConcrete) - cst = Reactant.make_tracer(IdDict(), st, (), Reactant.ArrayToConcrete) - cx = Reactant.ConcreteRArray(x) - - lux_apply_compiled = allow_unstable() do - Reactant.compile((a, b, c, d) -> first(a(b, c, d)), (cmodel, cx, cps, cst)) +# Add benchmark directory to Python path so we can import our utilities +sys = pyimport("sys") +sys.path.insert(0, @__DIR__) + +nn_utils = pyimport("nn_benchmark_utils") +np = pyimport("numpy") +jax = pyimport("jax") +jnp = pyimport("jax.numpy") +torch = pyimport("torch") +jax_random = pyimport("jax.random") + +# Force CPU for fair comparison +jax.config.update("jax_platform_name", "cpu") +``` + +## Julia Helper Functions + +```julia +function append_timing!(results, key, time_s) + if haskey(results, key) + results[key] = (; timings=vcat(results[key].timings, time_s)) + else + results[key] = (; timings=[time_s]) end +end - return lux_apply_compiled, cmodel, cps, cst, cx +function to_row_major(x::AbstractMatrix) + # Julia is column-major (features x batch), Python expects row-major (batch x features) + np.array(Array(x')) end -function benchmark_inference(xsize::Dims, flux_model, lux_model, ps_lux, st_lux, - batch_sizes; name=nothing, use_simple_chains::Bool=false, use_reactant::Bool=false) - name !== nothing && @info "Benchmarking $name Inference" +function to_nchw(x::AbstractArray{T, 4}) where T + # Julia WHCN -> Python NCHW + np.array(permutedims(x, (4, 3, 1, 2))) +end +``` - @assert !use_reactant "Reactant inference is currently broken" +## Shared Plotting Functions - st_lux_test = Lux.testmode(st_lux) - Flux.testmode!(flux_model) +```julia +const ASPECT_RATIO = 0.7 +const WIDTH = 1200 +const HEIGHT = round(Int, WIDTH * ASPECT_RATIO) +const STROKEWIDTH = 2.5 + +const FRAMEWORK_COLORS = Dict( + "Lux" => :royalblue, "Flux" => :orange, "SimpleChains" => :green, + "Reactant" => :purple, "JAX" => :red, "PyTorch" => :brown, + "Lux+Zygote" => :royalblue, "Flux+Zygote" => :orange, +) + +const FRAMEWORK_STYLES = Dict( + "Lux" => :solid, "Flux" => :dash, "SimpleChains" => :dot, + "Reactant" => :dashdot, "JAX" => :dashdotdot, "PyTorch" => :solid, + "Lux+Zygote" => :solid, "Flux+Zygote" => :dash, +) - lux_timings = zeros(length(batch_sizes)) - lux_allocs = zeros(length(batch_sizes)) +function plot_results(results, batch_sizes, name) + fig = Figure(; size=(WIDTH, HEIGHT)) + ax = Axis(fig[1, 1]; xlabel="Batch Size (log2 scale)", ylabel="Time (s) (log2 scale)", + xscale=log2, yscale=log2, xlabelsize=22, ylabelsize=22, + xticklabelsize=20, yticklabelsize=20, xtickwidth=STROKEWIDTH, + ytickwidth=STROKEWIDTH, spinewidth=STROKEWIDTH) + + handles, labels = [], String[] + for (key, val) in sort(collect(results); by=first) + timings = val.timings + any(>(0), timings) || continue + color = get(FRAMEWORK_COLORS, key, :gray) + style = get(FRAMEWORK_STYLES, key, :solid) + l = lines!(ax, batch_sizes, timings; color, linewidth=3, linestyle=style) + sc = scatter!(ax, batch_sizes, timings; color, markersize=20) + push!(handles, [l, sc]) + push!(labels, key) + end - flux_timings = zeros(length(batch_sizes)) - flux_allocs = zeros(length(batch_sizes)) + axislegend(ax, handles, labels; framevisible=true, framewidth=STROKEWIDTH, + labelsize=16, position=:lt, patchsize=(60.0f0, 20.0f0)) + fig[0, :] = Label(fig, "$name", fontsize=24, tellwidth=false, font=:bold) + return fig +end +``` - simple_chains_timings = zeros(length(batch_sizes)) - simple_chains_allocs = zeros(length(batch_sizes)) +# 7 Layer MLP (relu) Benchmark - for (i, batch_size) in enumerate(batch_sizes) - x = randn(Float32, xsize..., batch_size) +## Setup - # Lux - lux_trial = @benchmark $(lux_model)($x, $ps_lux, $st_lux_test) - lux_trial = median(lux_trial) +```julia +lux_mlp_relu = Chain( + Dense(32, 256, relu), [Dense(256, 256, relu) for _ in 1:5]..., Dense(256, 10)) +ps_lux, st_lux = Lux.setup(rng, lux_mlp_relu) - lux_timings[i] = lux_trial.time / 1e9 - lux_allocs[i] = lux_trial.memory / (1024 * 1024) +flux_mlp_relu = Flux.Chain( + Flux.Dense(32, 256, relu), [Flux.Dense(256, 256, relu) for _ in 1:5]..., Flux.Dense(256, 10)) - # Flux - flux_trial = @benchmark $(flux_model)($x) - flux_trial = median(flux_trial) +# Python models +jax_mlp_relu_params = nn_utils.create_jax_mlp_params(jax_random.PRNGKey(0)) +torch_mlp_relu = nn_utils.TorchMLP("relu") - flux_timings[i] = flux_trial.time / 1e9 - flux_allocs[i] = flux_trial.memory / (1024 * 1024) +batch_sizes = [2, 8, 32, 128, 512, 2048] +``` - if use_simple_chains - # SimpleChains - simple_chains_model = ToSimpleChainsAdaptor(xsize)(lux_model) - ps_sc, st_sc = Lux.setup(Random.default_rng(), simple_chains_model) - simple_chains_trial = @benchmark $(simple_chains_model)($x, $ps_sc, $st_sc) - simple_chains_trial = median(simple_chains_trial) +## Inference - simple_chains_timings[i] = simple_chains_trial.time / 1e9 - simple_chains_allocs[i] = simple_chains_trial.memory / (1024 * 1024) - end +```julia +st_lux_test = Lux.testmode(st_lux) +Flux.testmode!(flux_mlp_relu) - @info "Batch Size: $batch_size, Lux: $(lux_timings[i])s [$(lux_allocs[i])MB], \ - Flux: $(flux_timings[i])s [$(flux_allocs[i])MB], \ - SimpleChains: $(simple_chains_timings[i])s [$(simple_chains_allocs[i])MB]" - end +xdev = reactant_device() +ps_ra = ps_lux |> xdev +st_ra = Lux.testmode(st_lux) |> xdev - data = Dict{String, NamedTuple}( - "Lux" => (; timings=lux_timings, allocs=lux_allocs), - "Flux" => (; timings=flux_timings, allocs=flux_allocs) - ) - if use_simple_chains - data["SimpleChains"] = (; timings=simple_chains_timings, - allocs=simple_chains_allocs) - end - return data +results = Dict{String, NamedTuple}() + +for bs in batch_sizes + x = randn(Float32, 32, bs) + + # Lux + t = @benchmark $lux_mlp_relu($x, $ps_lux, $st_lux_test) + append_timing!(results, "Lux", median(t).time / 1e9) + + # Flux + t = @benchmark $flux_mlp_relu($x) + append_timing!(results, "Flux", median(t).time / 1e9) + + # SimpleChains + sc_model = ToSimpleChainsAdaptor((32,))(lux_mlp_relu) + ps_sc, st_sc = Lux.setup(rng, sc_model) + t = @benchmark $sc_model($x, $ps_sc, $st_sc) + append_timing!(results, "SimpleChains", median(t).time / 1e9) + + # Reactant + x_ra = Reactant.ConcreteRArray(x) + compiled_fn = @compile lux_mlp_relu(x_ra, ps_ra, st_ra) + t = @benchmark $compiled_fn($x_ra, $ps_ra, $st_ra) + append_timing!(results, "Reactant", median(t).time / 1e9) + + # JAX (timed in Python) + x_py = jnp.array(to_row_major(x)) + jax_time = pyconvert(Float64, nn_utils.time_jax_inference(nn_utils.jax_mlp_relu_forward, jax_mlp_relu_params, x_py)) + append_timing!(results, "JAX", jax_time) + + # PyTorch (timed in Python) + x_torch = torch.from_numpy(to_row_major(x)) + torch_time = pyconvert(Float64, nn_utils.time_torch_inference(torch_mlp_relu, x_torch)) + append_timing!(results, "PyTorch", torch_time) + + @info "Batch $bs done" end + +plot_results(results, batch_sizes, "Inference: 7 Layer MLP (relu)") ``` -## Shared Plotting Functions +## Training ```julia -const ASPECT_RATIO = 0.7 -const WIDTH = 1000 -const HEIGHT = WIDTH * ASPECT_RATIO -const STROKEWIDTH = 2.5 - -function plot_inference_results(results, batch_sizes, name) - cycle = Cycle([:marker, :linestyle], covary=true) - colors = cgrad(:seaborn_bright6, 6; categorical=true)[1:4] - theme = Theme(Lines=(cycle=cycle,), Scatter=(cycle=cycle,)) - - key_to_color = Dict("Lux" => colors[1], "Flux" => colors[2], - "SimpleChains" => colors[3], "Reactant" => colors[4]) - key_to_linestyle = Dict("Lux" => :solid, "Flux" => :dash, "SimpleChains" => :dot, - "Reactant" => :dashdot) - - return with_theme(theme) do - fig = Figure(; size = (WIDTH, HEIGHT)) - - ax = Axis(fig[1, 1], xlabel="Batch Size (log2 scale)", - ylabel="Inference Time (s) (log2 scale)", - xscale = log2, yscale = log2, xlabelsize = 22, ylabelsize = 22, - xticklabelsize = 20, yticklabelsize = 20, xtickwidth = STROKEWIDTH, - ytickwidth = STROKEWIDTH, spinewidth = STROKEWIDTH) - - handles, labels = [], String[] - for key in keys(results) - hasproperty(results[key], :timings) || continue - timings = results[key].timings - l = lines!(ax, batch_sizes, timings, color=key_to_color[key], linewidth=3, - linestyle=key_to_linestyle[key]) - sc = scatter!(ax, batch_sizes, timings, color=key_to_color[key], markersize=20) - push!(handles, [l, sc]) - push!(labels, key) - end - - axislegend(ax, handles, labels; framevisible=true, framewidth=STROKEWIDTH, - labelsize=16, position=:lt, patchsize = (60.0f0, 20.0f0)) - - ax = Axis(fig[1, 2], xlabel="Batch Size (log2 scale)", - ylabel="Allocated Memory (MB) (log2 scale)", - xscale = log2, yscale = log2, xlabelsize = 22, ylabelsize = 22, - xticklabelsize = 20, yticklabelsize = 20, xtickwidth = STROKEWIDTH, - ytickwidth = STROKEWIDTH, spinewidth = STROKEWIDTH) - - handles, labels = [], String[] - for key in keys(results) - hasproperty(results[key], :allocs) || continue - allocs = results[key].allocs - l = lines!(ax, batch_sizes, allocs, color=key_to_color[key], linewidth=3, - linestyle=key_to_linestyle[key]) - sc = scatter!(ax, batch_sizes, allocs, color=key_to_color[key], markersize=20) - push!(handles, [l, sc]) - push!(labels, key) - end - - axislegend(ax, handles, labels; framevisible=true, framewidth=STROKEWIDTH, - labelsize=16, position=:lt, patchsize = (60.0f0, 20.0f0)) - - fig[0, :] = Label(fig, "Inference $(name)", fontsize=24, tellwidth=false, - font=:bold) - - return fig +train_batch_sizes = [32, 128, 512, 2048] +train_results = Dict{String, NamedTuple}() + +# JAX train step +jax_relu_train_step = nn_utils.make_jax_mlp_train_step( + nn_utils.jax_mlp_relu_forward, jax_mlp_relu_params) + +for bs in train_batch_sizes + x = randn(Float32, 32, bs) + y = randn(Float32, 10, bs) + + # Lux + Zygote + opt_state = Optimisers.setup(Adam(1.0f-3), ps_lux) + function lux_zygote_step(model, ps, st, opt_state, x, y) + (loss, st_new), back = Zygote.pullback(p -> begin + ypred, st_ = model(x, p, st) + sum(abs2, ypred .- y), st_ + end, ps) + gs = back((one(loss), nothing))[1] + opt_state_new, ps_new = Optimisers.update(opt_state, ps, gs) + ps_new, st_new, opt_state_new, loss + end + lux_zygote_step(lux_mlp_relu, ps_lux, st_lux, opt_state, x, y) + t = @benchmark $lux_zygote_step($lux_mlp_relu, $ps_lux, $st_lux, $opt_state, $x, $y) + append_timing!(train_results, "Lux+Zygote", median(t).time / 1e9) + + # Flux + Zygote + flux_opt = Flux.setup(Adam(1.0f-3), flux_mlp_relu) + Flux.trainmode!(flux_mlp_relu) + function flux_step(model, opt_state, x, y) + loss, grads = Flux.withgradient(m -> sum(abs2, m(x) .- y), model) + Flux.update!(opt_state, model, grads[1]) + loss end + flux_step(flux_mlp_relu, flux_opt, x, y) + t = @benchmark $flux_step($flux_mlp_relu, $flux_opt, $x, $y) + append_timing!(train_results, "Flux+Zygote", median(t).time / 1e9) + + # Reactant + x_ra = Reactant.ConcreteRArray(x) + y_ra = Reactant.ConcreteRArray(y) + ts = Training.TrainState(lux_mlp_relu, ps_ra, st_ra, Adam(1.0f-3)) + function reactant_step(ts, x, y) + _, loss, _, ts_new = Training.single_train_step!(AutoEnzyme(), MSELoss(), (x, y), ts) + ts_new, loss + end + reactant_step(ts, x_ra, y_ra) + t = @benchmark $reactant_step($ts, $x_ra, $y_ra) + append_timing!(train_results, "Reactant", median(t).time / 1e9) + + # JAX + x_py = jnp.array(to_row_major(x)) + y_py = jnp.array(to_row_major(y)) + jax_time = pyconvert(Float64, nn_utils.time_jax_train_step( + jax_relu_train_step, jax_mlp_relu_params, x_py, y_py)) + append_timing!(train_results, "JAX", jax_time) + + # PyTorch + torch_model = nn_utils.TorchMLP("relu") + torch_opt = torch.optim.Adam(torch_model.parameters(); lr=1e-3) + torch_loss_fn = nn_utils.tnn.MSELoss() + x_torch = torch.from_numpy(to_row_major(x)) + y_torch = torch.from_numpy(to_row_major(y)) + torch_time = pyconvert(Float64, nn_utils.time_torch_train_step( + torch_model, torch_opt, torch_loss_fn, x_torch, y_torch)) + append_timing!(train_results, "PyTorch", torch_time) + + @info "Training batch $bs done" end + +plot_results(train_results, train_batch_sizes, "Training Step: 7 Layer MLP (relu)") ``` -# 7 Layer MLP (relu) Benchmark +# 7 Layer MLP (gelu) Benchmark ## Setup ```julia -flux_model = Flux.Chain( - Flux.Dense(32, 256, relu), - [Flux.Dense(256, 256, relu) for _ in 1:5]..., - Flux.Dense(256, 10), -) +lux_mlp_gelu = Chain( + Dense(32, 256, gelu), [Dense(256, 256, gelu) for _ in 1:5]..., Dense(256, 10)) +ps_gelu, st_gelu = Lux.setup(rng, lux_mlp_gelu) -## Make sure parameters and states are exactly the same -lux_model = FromFluxAdaptor(; preserve_ps_st=true)(flux_model) -ps_lux, st_lux = Lux.setup(Random.default_rng(), lux_model) +flux_mlp_gelu = Flux.Chain( + Flux.Dense(32, 256, gelu), [Flux.Dense(256, 256, gelu) for _ in 1:5]..., Flux.Dense(256, 10)) -batch_sizes = [1, 2, 8, 32, 128, 512, 2048] -nothing +jax_mlp_gelu_params = nn_utils.create_jax_mlp_params(jax_random.PRNGKey(1)) +torch_mlp_gelu = nn_utils.TorchMLP("gelu") ``` ## Inference ```julia -results = benchmark_inference((32,), flux_model, lux_model, ps_lux, st_lux, batch_sizes; - name="7 Layer MLP (relu)", use_simple_chains=true) +st_gelu_test = Lux.testmode(st_gelu) +Flux.testmode!(flux_mlp_gelu) +ps_gelu_ra = ps_gelu |> xdev +st_gelu_ra = Lux.testmode(st_gelu) |> xdev -plot_inference_results(results, batch_sizes, "7 Layer MLP (relu)") -``` +gelu_results = Dict{String, NamedTuple}() -## Training +for bs in batch_sizes + x = randn(Float32, 32, bs) -# 7 Layer MLP (gelu) Benchmark + t = @benchmark $lux_mlp_gelu($x, $ps_gelu, $st_gelu_test) + append_timing!(gelu_results, "Lux", median(t).time / 1e9) -## Setup + t = @benchmark $flux_mlp_gelu($x) + append_timing!(gelu_results, "Flux", median(t).time / 1e9) -```julia -flux_model = Flux.Chain( - Flux.Dense(32, 256, gelu), - [Flux.Dense(256, 256, gelu) for _ in 1:5]..., - Flux.Dense(256, 10), -) + sc_model = ToSimpleChainsAdaptor((32,))(lux_mlp_gelu) + ps_sc, st_sc = Lux.setup(rng, sc_model) + t = @benchmark $sc_model($x, $ps_sc, $st_sc) + append_timing!(gelu_results, "SimpleChains", median(t).time / 1e9) -## Make sure parameters and states are exactly the same -lux_model = FromFluxAdaptor(; preserve_ps_st=true)(flux_model) -ps_lux, st_lux = Lux.setup(Random.default_rng(), lux_model) + x_ra = Reactant.ConcreteRArray(x) + compiled_fn = @compile lux_mlp_gelu(x_ra, ps_gelu_ra, st_gelu_ra) + t = @benchmark $compiled_fn($x_ra, $ps_gelu_ra, $st_gelu_ra) + append_timing!(gelu_results, "Reactant", median(t).time / 1e9) -batch_sizes = [1, 2, 8, 32, 128, 512, 2048] -nothing -``` + x_py = jnp.array(to_row_major(x)) + jax_time = pyconvert(Float64, nn_utils.time_jax_inference(nn_utils.jax_mlp_gelu_forward, jax_mlp_gelu_params, x_py)) + append_timing!(gelu_results, "JAX", jax_time) -## Inference + x_torch = torch.from_numpy(to_row_major(x)) + torch_time = pyconvert(Float64, nn_utils.time_torch_inference(torch_mlp_gelu, x_torch)) + append_timing!(gelu_results, "PyTorch", torch_time) -```julia -results = benchmark_inference((32,), flux_model, lux_model, ps_lux, st_lux, batch_sizes; - name="7 Layer MLP (gelu)", use_simple_chains=true) + @info "Batch $bs done" +end -plot_inference_results(results, batch_sizes, "7 Layer MLP (gelu)") +plot_results(gelu_results, batch_sizes, "Inference: 7 Layer MLP (gelu)") ``` ## Training +```julia +gelu_train_results = Dict{String, NamedTuple}() +jax_gelu_train_step = nn_utils.make_jax_mlp_train_step( + nn_utils.jax_mlp_gelu_forward, jax_mlp_gelu_params) + +for bs in train_batch_sizes + x = randn(Float32, 32, bs) + y = randn(Float32, 10, bs) + + opt_state = Optimisers.setup(Adam(1.0f-3), ps_gelu) + function lux_gelu_step(model, ps, st, opt_state, x, y) + (loss, st_new), back = Zygote.pullback(p -> begin + ypred, st_ = model(x, p, st) + sum(abs2, ypred .- y), st_ + end, ps) + gs = back((one(loss), nothing))[1] + opt_state_new, ps_new = Optimisers.update(opt_state, ps, gs) + ps_new, st_new, opt_state_new, loss + end + lux_gelu_step(lux_mlp_gelu, ps_gelu, st_gelu, opt_state, x, y) + t = @benchmark $lux_gelu_step($lux_mlp_gelu, $ps_gelu, $st_gelu, $opt_state, $x, $y) + append_timing!(gelu_train_results, "Lux+Zygote", median(t).time / 1e9) + + flux_opt = Flux.setup(Adam(1.0f-3), flux_mlp_gelu) + Flux.trainmode!(flux_mlp_gelu) + function flux_gelu_step(model, opt_state, x, y) + loss, grads = Flux.withgradient(m -> sum(abs2, m(x) .- y), model) + Flux.update!(opt_state, model, grads[1]) + loss + end + flux_gelu_step(flux_mlp_gelu, flux_opt, x, y) + t = @benchmark $flux_gelu_step($flux_mlp_gelu, $flux_opt, $x, $y) + append_timing!(gelu_train_results, "Flux+Zygote", median(t).time / 1e9) + + x_ra = Reactant.ConcreteRArray(x) + y_ra = Reactant.ConcreteRArray(y) + ts_gelu = Training.TrainState(lux_mlp_gelu, ps_gelu_ra, st_gelu_ra, Adam(1.0f-3)) + function reactant_gelu_step(ts, x, y) + _, loss, _, ts_new = Training.single_train_step!(AutoEnzyme(), MSELoss(), (x, y), ts) + ts_new, loss + end + reactant_gelu_step(ts_gelu, x_ra, y_ra) + t = @benchmark $reactant_gelu_step($ts_gelu, $x_ra, $y_ra) + append_timing!(gelu_train_results, "Reactant", median(t).time / 1e9) + + x_py = jnp.array(to_row_major(x)) + y_py = jnp.array(to_row_major(y)) + jax_time = pyconvert(Float64, nn_utils.time_jax_train_step( + jax_gelu_train_step, jax_mlp_gelu_params, x_py, y_py)) + append_timing!(gelu_train_results, "JAX", jax_time) + + torch_model = nn_utils.TorchMLP("gelu") + torch_opt = torch.optim.Adam(torch_model.parameters(); lr=1e-3) + torch_loss_fn = nn_utils.tnn.MSELoss() + x_torch = torch.from_numpy(to_row_major(x)) + y_torch = torch.from_numpy(to_row_major(y)) + torch_time = pyconvert(Float64, nn_utils.time_torch_train_step( + torch_model, torch_opt, torch_loss_fn, x_torch, y_torch)) + append_timing!(gelu_train_results, "PyTorch", torch_time) + + @info "Training batch $bs done" +end + +plot_results(gelu_train_results, train_batch_sizes, "Training Step: 7 Layer MLP (gelu)") +``` # 7 Layer MLP (relu) with Batch Normalization Benchmark ## Setup ```julia -flux_model = Flux.Chain( - Flux.Dense(32, 256), - Flux.BatchNorm(256, relu), - [ - Flux.Chain(Flux.Dense(256, 256), Flux.BatchNorm(256, relu)) - for _ in 1:5 - ]..., - Flux.Dense(256, 10), -) - -## Make sure parameters and states are exactly the same -lux_model = FromFluxAdaptor(; preserve_ps_st=true)(flux_model) -ps_lux, st_lux = Lux.setup(Random.default_rng(), lux_model) - -batch_sizes = [1, 2, 8, 32, 128, 512, 2048] -nothing +lux_mlp_bn = Chain( + Dense(32, 256), BatchNorm(256, relu), + [Chain(Dense(256, 256), BatchNorm(256, relu)) for _ in 1:5]..., + Dense(256, 10)) +ps_bn, st_bn = Lux.setup(rng, lux_mlp_bn) + +flux_mlp_bn = Flux.Chain( + Flux.Dense(32, 256), Flux.BatchNorm(256, relu), + [Flux.Chain(Flux.Dense(256, 256), Flux.BatchNorm(256, relu)) for _ in 1:5]..., + Flux.Dense(256, 10)) + +torch_mlp_bn = nn_utils.TorchMLPBN() ``` ## Inference ```julia -results = benchmark_inference((32,), flux_model, lux_model, ps_lux, st_lux, batch_sizes, - name="7 Layer MLP + BN (relu)") +st_bn_test = Lux.testmode(st_bn) +Flux.testmode!(flux_mlp_bn) +ps_bn_ra = ps_bn |> xdev +st_bn_ra = Lux.testmode(st_bn) |> xdev + +bn_batch_sizes = [2, 8, 32, 128, 512, 2048] +bn_results = Dict{String, NamedTuple}() + +for bs in bn_batch_sizes + x = randn(Float32, 32, bs) -plot_inference_results(results, batch_sizes, "7 Layer MLP + BN (relu)") + t = @benchmark $lux_mlp_bn($x, $ps_bn, $st_bn_test) + append_timing!(bn_results, "Lux", median(t).time / 1e9) + + t = @benchmark $flux_mlp_bn($x) + append_timing!(bn_results, "Flux", median(t).time / 1e9) + + x_ra = Reactant.ConcreteRArray(x) + compiled_fn = @compile lux_mlp_bn(x_ra, ps_bn_ra, st_bn_ra) + t = @benchmark $compiled_fn($x_ra, $ps_bn_ra, $st_bn_ra) + append_timing!(bn_results, "Reactant", median(t).time / 1e9) + + # PyTorch (JAX lacks a simple functional BatchNorm) + x_torch = torch.from_numpy(to_row_major(x)) + torch_time = pyconvert(Float64, nn_utils.time_torch_inference(torch_mlp_bn, x_torch)) + append_timing!(bn_results, "PyTorch", torch_time) + + @info "Batch $bs done" +end + +plot_results(bn_results, bn_batch_sizes, "Inference: 7 Layer MLP + BN (relu)") ``` ## Training -# 7 Layer MLP (gelu) with Batch Normalization Benchmark +```julia +bn_train_results = Dict{String, NamedTuple}() + +for bs in train_batch_sizes + x = randn(Float32, 32, bs) + y = randn(Float32, 10, bs) + + opt_state = Optimisers.setup(Adam(1.0f-3), ps_bn) + function lux_bn_step(model, ps, st, opt_state, x, y) + (loss, st_new), back = Zygote.pullback(p -> begin + ypred, st_ = model(x, p, st) + sum(abs2, ypred .- y), st_ + end, ps) + gs = back((one(loss), nothing))[1] + opt_state_new, ps_new = Optimisers.update(opt_state, ps, gs) + ps_new, st_new, opt_state_new, loss + end + lux_bn_step(lux_mlp_bn, ps_bn, st_bn, opt_state, x, y) + t = @benchmark $lux_bn_step($lux_mlp_bn, $ps_bn, $st_bn, $opt_state, $x, $y) + append_timing!(bn_train_results, "Lux+Zygote", median(t).time / 1e9) + + flux_opt = Flux.setup(Adam(1.0f-3), flux_mlp_bn) + Flux.trainmode!(flux_mlp_bn) + function flux_bn_step(model, opt_state, x, y) + loss, grads = Flux.withgradient(m -> sum(abs2, m(x) .- y), model) + Flux.update!(opt_state, model, grads[1]) + loss + end + flux_bn_step(flux_mlp_bn, flux_opt, x, y) + t = @benchmark $flux_bn_step($flux_mlp_bn, $flux_opt, $x, $y) + append_timing!(bn_train_results, "Flux+Zygote", median(t).time / 1e9) + + x_ra = Reactant.ConcreteRArray(x) + y_ra = Reactant.ConcreteRArray(y) + ts_bn = Training.TrainState(lux_mlp_bn, ps_bn_ra, st_bn_ra, Adam(1.0f-3)) + function reactant_bn_step(ts, x, y) + _, loss, _, ts_new = Training.single_train_step!(AutoEnzyme(), MSELoss(), (x, y), ts) + ts_new, loss + end + reactant_bn_step(ts_bn, x_ra, y_ra) + t = @benchmark $reactant_bn_step($ts_bn, $x_ra, $y_ra) + append_timing!(bn_train_results, "Reactant", median(t).time / 1e9) + + # PyTorch + torch_bn_model = nn_utils.TorchMLPBN() + torch_opt = torch.optim.Adam(torch_bn_model.parameters(); lr=1e-3) + torch_loss_fn = nn_utils.tnn.MSELoss() + x_torch = torch.from_numpy(to_row_major(x)) + y_torch = torch.from_numpy(to_row_major(y)) + torch_time = pyconvert(Float64, nn_utils.time_torch_train_step( + torch_bn_model, torch_opt, torch_loss_fn, x_torch, y_torch)) + append_timing!(bn_train_results, "PyTorch", torch_time) + + @info "Training batch $bs done" +end + +plot_results(bn_train_results, train_batch_sizes, "Training Step: 7 Layer MLP + BN (relu)") +``` + +# LeNet 5 Benchmark ## Setup ```julia -flux_model = Flux.Chain( - Flux.Dense(32, 256), - Flux.BatchNorm(256, gelu), - [ - Flux.Chain(Flux.Dense(256, 256), Flux.BatchNorm(256, gelu)) - for _ in 1:5 - ]..., - Flux.Dense(256, 10), -) +lux_lenet = Chain( + Conv((5, 5), 1 => 6, relu), MaxPool((2, 2)), + Conv((5, 5), 6 => 16, relu), MaxPool((2, 2)), + FlattenLayer(), Dense(256, 120, relu), Dense(120, 84, relu), Dense(84, 10)) +ps_lenet, st_lenet = Lux.setup(rng, lux_lenet) -## Make sure parameters and states are exactly the same -lux_model = FromFluxAdaptor(; preserve_ps_st=true)(flux_model) -ps_lux, st_lux = Lux.setup(Random.default_rng(), lux_model) +flux_lenet = Flux.Chain( + Flux.Conv((5, 5), 1 => 6, relu), Flux.MaxPool((2, 2)), + Flux.Conv((5, 5), 6 => 16, relu), Flux.MaxPool((2, 2)), + Flux.flatten, Flux.Dense(256, 120, relu), Flux.Dense(120, 84, relu), Flux.Dense(84, 10)) -batch_sizes = [1, 2, 8, 32, 128, 512, 2048] -nothing +torch_lenet = nn_utils.TorchLeNet() +jax_lenet_params = nn_utils.create_jax_lenet_params(jax_random.PRNGKey(2)) + +lenet_batch_sizes = [2, 8, 32, 128] ``` ## Inference ```julia -results = benchmark_inference((32,), flux_model, lux_model, ps_lux, st_lux, batch_sizes, - name="7 Layer MLP + BN (gelu)") +st_lenet_test = Lux.testmode(st_lenet) +Flux.testmode!(flux_lenet) +ps_lenet_ra = ps_lenet |> xdev +st_lenet_ra = Lux.testmode(st_lenet) |> xdev + +lenet_results = Dict{String, NamedTuple}() + +for bs in lenet_batch_sizes + x = randn(Float32, 28, 28, 1, bs) # WHCN + + t = @benchmark $lux_lenet($x, $ps_lenet, $st_lenet_test) + append_timing!(lenet_results, "Lux", median(t).time / 1e9) + + t = @benchmark $flux_lenet($x) + append_timing!(lenet_results, "Flux", median(t).time / 1e9) + + x_ra = Reactant.ConcreteRArray(x) + compiled_fn = @compile lux_lenet(x_ra, ps_lenet_ra, st_lenet_ra) + t = @benchmark $compiled_fn($x_ra, $ps_lenet_ra, $st_lenet_ra) + append_timing!(lenet_results, "Reactant", median(t).time / 1e9) + + # JAX/PyTorch use NCHW + x_py = to_nchw(x) + x_jnp = jnp.array(x_py) + jax_time = pyconvert(Float64, nn_utils.time_jax_inference(nn_utils.jax_lenet_forward, jax_lenet_params, x_jnp)) + append_timing!(lenet_results, "JAX", jax_time) + + x_torch = torch.from_numpy(x_py) + torch_time = pyconvert(Float64, nn_utils.time_torch_inference(torch_lenet, x_torch)) + append_timing!(lenet_results, "PyTorch", torch_time) -plot_inference_results(results, batch_sizes, "7 Layer MLP + BN (gelu)") + @info "Batch $bs done" +end + +plot_results(lenet_results, lenet_batch_sizes, "Inference: LeNet 5") ``` ## Training -# LeNet 5 Benchmark +```julia +lenet_train_results = Dict{String, NamedTuple}() +lenet_train_batch_sizes = [32, 128] +jax_lenet_train_step = nn_utils.make_jax_lenet_train_step(jax_lenet_params) + +for bs in lenet_train_batch_sizes + x = randn(Float32, 28, 28, 1, bs) + y = randn(Float32, 10, bs) + + opt_state = Optimisers.setup(Adam(1.0f-3), ps_lenet) + function lux_lenet_step(model, ps, st, opt_state, x, y) + (loss, st_new), back = Zygote.pullback(p -> begin + ypred, st_ = model(x, p, st) + sum(abs2, ypred .- y), st_ + end, ps) + gs = back((one(loss), nothing))[1] + opt_state_new, ps_new = Optimisers.update(opt_state, ps, gs) + ps_new, st_new, opt_state_new, loss + end + lux_lenet_step(lux_lenet, ps_lenet, st_lenet, opt_state, x, y) + t = @benchmark $lux_lenet_step($lux_lenet, $ps_lenet, $st_lenet, $opt_state, $x, $y) + append_timing!(lenet_train_results, "Lux+Zygote", median(t).time / 1e9) + + flux_opt = Flux.setup(Adam(1.0f-3), flux_lenet) + Flux.trainmode!(flux_lenet) + function flux_lenet_step(model, opt_state, x, y) + loss, grads = Flux.withgradient(m -> sum(abs2, m(x) .- y), model) + Flux.update!(opt_state, model, grads[1]) + loss + end + flux_lenet_step(flux_lenet, flux_opt, x, y) + t = @benchmark $flux_lenet_step($flux_lenet, $flux_opt, $x, $y) + append_timing!(lenet_train_results, "Flux+Zygote", median(t).time / 1e9) + + x_ra = Reactant.ConcreteRArray(x) + y_ra = Reactant.ConcreteRArray(y) + ts_lenet = Training.TrainState(lux_lenet, ps_lenet_ra, st_lenet_ra, Adam(1.0f-3)) + function reactant_lenet_step(ts, x, y) + _, loss, _, ts_new = Training.single_train_step!(AutoEnzyme(), MSELoss(), (x, y), ts) + ts_new, loss + end + reactant_lenet_step(ts_lenet, x_ra, y_ra) + t = @benchmark $reactant_lenet_step($ts_lenet, $x_ra, $y_ra) + append_timing!(lenet_train_results, "Reactant", median(t).time / 1e9) + + x_py = to_nchw(x) + x_jnp = jnp.array(x_py) + y_py = jnp.array(to_row_major(y)) + jax_time = pyconvert(Float64, nn_utils.time_jax_train_step( + jax_lenet_train_step, jax_lenet_params, x_jnp, y_py)) + append_timing!(lenet_train_results, "JAX", jax_time) + + torch_lenet_model = nn_utils.TorchLeNet() + torch_opt = torch.optim.Adam(torch_lenet_model.parameters(); lr=1e-3) + torch_loss_fn = nn_utils.tnn.MSELoss() + x_torch = torch.from_numpy(x_py) + y_torch = torch.from_numpy(to_row_major(y)) + torch_time = pyconvert(Float64, nn_utils.time_torch_train_step( + torch_lenet_model, torch_opt, torch_loss_fn, x_torch, y_torch)) + append_timing!(lenet_train_results, "PyTorch", torch_time) + + @info "Training batch $bs done" +end + +plot_results(lenet_train_results, lenet_train_batch_sizes, "Training Step: LeNet 5") +``` + +# Small ResNet Benchmark ## Setup ```julia -flux_model = Flux.Chain( - Flux.Conv((5, 5), 1=>6, relu), - Flux.MaxPool((2, 2)), - Flux.Conv((5, 5), 6=>16, relu), - Flux.MaxPool((2, 2)), - Flux.flatten, - Flux.Dense(256 => 120, relu), - Flux.Dense(120 => 84, relu), - Flux.Dense(84 => 10), -) +function resnet_block(channels) + main = Chain( + Conv((3, 3), channels => channels; pad=1, use_bias=false), + BatchNorm(channels, relu), + Conv((3, 3), channels => channels; pad=1, use_bias=false), + BatchNorm(channels)) + Parallel(+, main, NoOpLayer()) +end + +lux_resnet = Chain( + Conv((3, 3), 3 => 64; pad=1, use_bias=false), BatchNorm(64, relu), + resnet_block(64), + Conv((3, 3), 64 => 128; stride=2, pad=1, use_bias=false), BatchNorm(128, relu), + Conv((3, 3), 128 => 128; pad=1, use_bias=false), BatchNorm(128), + GlobalMeanPool(), FlattenLayer(), Dense(128, 10)) +ps_resnet, st_resnet = Lux.setup(rng, lux_resnet) -## Make sure parameters and states are exactly the same -lux_model = FromFluxAdaptor(; preserve_ps_st=true)(flux_model) -ps_lux, st_lux = Lux.setup(Random.default_rng(), lux_model) +torch_resnet = nn_utils.TorchSmallResNet() -batch_sizes = [1, 2, 8, 32, 128] -nothing +resnet_batch_sizes = [2, 8, 32] ``` ## Inference ```julia -# TODO: Simple Chains model will need a little massaging to work with this -results = benchmark_inference((28, 28, 1), flux_model, lux_model, ps_lux, st_lux, - batch_sizes, name="LeNet 5") +st_resnet_test = Lux.testmode(st_resnet) +ps_resnet_ra = ps_resnet |> xdev +st_resnet_ra = Lux.testmode(st_resnet) |> xdev + +resnet_results = Dict{String, NamedTuple}() + +for bs in resnet_batch_sizes + x = randn(Float32, 32, 32, 3, bs) # WHCN -plot_inference_results(results, batch_sizes, "LeNet 5") + t = @benchmark $lux_resnet($x, $ps_resnet, $st_resnet_test) + append_timing!(resnet_results, "Lux", median(t).time / 1e9) + + x_ra = Reactant.ConcreteRArray(x) + compiled_fn = @compile lux_resnet(x_ra, ps_resnet_ra, st_resnet_ra) + t = @benchmark $compiled_fn($x_ra, $ps_resnet_ra, $st_resnet_ra) + append_timing!(resnet_results, "Reactant", median(t).time / 1e9) + + x_py = to_nchw(x) + x_torch = torch.from_numpy(x_py) + torch_time = pyconvert(Float64, nn_utils.time_torch_inference(torch_resnet, x_torch)) + append_timing!(resnet_results, "PyTorch", torch_time) + + @info "Batch $bs done" +end + +plot_results(resnet_results, resnet_batch_sizes, "Inference: Small ResNet") ``` ## Training -# ResNet (Small) Benchmark +```julia +resnet_train_results = Dict{String, NamedTuple}() +resnet_train_batch_sizes = [8, 32] + +for bs in resnet_train_batch_sizes + x = randn(Float32, 32, 32, 3, bs) + y = randn(Float32, 10, bs) + + opt_state = Optimisers.setup(Adam(1.0f-3), ps_resnet) + function lux_resnet_step(model, ps, st, opt_state, x, y) + (loss, st_new), back = Zygote.pullback(p -> begin + ypred, st_ = model(x, p, st) + sum(abs2, ypred .- y), st_ + end, ps) + gs = back((one(loss), nothing))[1] + opt_state_new, ps_new = Optimisers.update(opt_state, ps, gs) + ps_new, st_new, opt_state_new, loss + end + lux_resnet_step(lux_resnet, ps_resnet, st_resnet, opt_state, x, y) + t = @benchmark $lux_resnet_step($lux_resnet, $ps_resnet, $st_resnet, $opt_state, $x, $y) + append_timing!(resnet_train_results, "Lux+Zygote", median(t).time / 1e9) + + x_ra = Reactant.ConcreteRArray(x) + y_ra = Reactant.ConcreteRArray(y) + ts_resnet = Training.TrainState(lux_resnet, ps_resnet_ra, st_resnet_ra, Adam(1.0f-3)) + function reactant_resnet_step(ts, x, y) + _, loss, _, ts_new = Training.single_train_step!(AutoEnzyme(), MSELoss(), (x, y), ts) + ts_new, loss + end + reactant_resnet_step(ts_resnet, x_ra, y_ra) + t = @benchmark $reactant_resnet_step($ts_resnet, $x_ra, $y_ra) + append_timing!(resnet_train_results, "Reactant", median(t).time / 1e9) + + torch_rn = nn_utils.TorchSmallResNet() + torch_opt = torch.optim.Adam(torch_rn.parameters(); lr=1e-3) + torch_loss_fn = nn_utils.tnn.MSELoss() + x_py = to_nchw(x) + x_torch = torch.from_numpy(x_py) + y_torch = torch.from_numpy(to_row_major(y)) + torch_time = pyconvert(Float64, nn_utils.time_torch_train_step( + torch_rn, torch_opt, torch_loss_fn, x_torch, y_torch)) + append_timing!(resnet_train_results, "PyTorch", torch_time) + + @info "Training batch $bs done" +end + +plot_results(resnet_train_results, resnet_train_batch_sizes, "Training Step: Small ResNet") +``` -## Setup +## Appendix -## Inference +```julia +using InteractiveUtils +InteractiveUtils.versioninfo() -## Training +println() +println("Python versions:") +println(" JAX: ", pyconvert(String, jax.__version__)) +println(" PyTorch: ", pyconvert(String, torch.__version__)) +``` From b870e02f2b9066d4dee02537cbc622ed4b60b731 Mon Sep 17 00:00:00 2001 From: ChrisRackauckas-Claude Date: Fri, 27 Mar 2026 04:41:12 -0400 Subject: [PATCH 3/3] Register NeuralNetworks in docs pages.jl Add "Neural Network Framework Benchmarks" section to the ordered docs navigation, placed after the PINN benchmarks. Co-Authored-By: Chris Rackauckas Co-Authored-By: Claude Opus 4.6 (1M context) --- docs/pages.jl | 119 +++++++++++++++++++++++++------------------------- 1 file changed, 60 insertions(+), 59 deletions(-) diff --git a/docs/pages.jl b/docs/pages.jl index 8bdffffc1..0871ae7b3 100644 --- a/docs/pages.jl +++ b/docs/pages.jl @@ -37,62 +37,63 @@ for folder in readdir(benchmarksdir) end -# The result is in alphabetical order, change to the wanted order - -section_titles = [ - "MultiLanguage" => "Multi-Language Wrapper Benchmarks", - "LinearSolve" => "Linear Solvers", - "IntervalNonlinearProblem" => "Interval Rootfinding", - "NonlinearProblem" => "Nonlinear Solvers", - "AutomaticDifferentiation" => "Automatic Differentiation", - "AutomaticDifferentiationSparse" => "Sparse Automatic Differentiation", - "NonStiffODE" => "Non-Stiff Ordinary Differential Equations (ODEs)", - "StiffODE" => "Stiff Ordinary Differential Equations (ODEs)", - "Bio" => "Biological Differential Equations", - "AstroChem" => "Astrochemistry Differential Equations", - "DAE" => "Differential-Algebraic Equations (DAEs)", - "NonStiffBVP" => "Non-Stiff Boundary Value Problems (BVPs)", - "StiffBVP" => "Stiff Boundary Value Problems (BVPs)", - "ModelingToolkit" => "ModelingToolkit Acausal Modeling / Symbolic-Numeric Benchmarks", - "SimpleHandwrittenPDE" => "Simple Handwritten Partial Differential Equations (PDEs) as ODEs", - "ComplicatedPDE" => "Complicated Partial Differential Equations (PDEs)", - "DynamicalODE" => "Dynamical ODEs (Hamiltonian and Second Order)", - "NBodySimulator" => "N-Body Problem Benchmarks", - "NonStiffSDE" => "Non-Stiff Stochastic Differential Equations (SDEs)", - "StiffSDE" => "Stiff Stochastic Differential Equations (SDEs)", - "NonStiffDDE" => "Non-Stiff Delay Differential Equations (DDEs)", - "StiffDDE" => "Stiff Delay Differential equations (DDEs)", - "Jumps" => "Jump Process Equations (Gillespie Benchmarks)", - "HybridJumps" => "Hybrid (Time-Dependent) Jump Processes", - "Optimization" => "Nonlinear Optimization Solver Benchmarks", - "OptimizationCUTEst" => "CUTEst Optimization Solver Benchmarks", - "GlobalOptimization" => "Global Optimization Benchmarks", - "OptimizationFrameworks" => "Optimization Framework Benchmarks", - "ParameterEstimation" => "Parameter Estimation and Inverse Problem Benchmarks", - "BayesianInference" => "Bayesian Inference and Probabilistic Inverse Problem Benchmarks", - "MethodOfLinesPDE" => "MethodOfLines.jl Partial Differential Equation (PDE) Formulations", - "PINNErrorsVsTime" => "Physics-Informed Neural Network (Neural Network PDE Solver) Cost Function Benchmarks", - "PINNOptimizers" => "Physics-Informed Neural Network (Neural Network PDE Solver) Optimizer Benchmarks", - "AdaptiveSDE" => "SDE Adaptivity Benchmarks", - "Surrogates" => "Surrogate Benchmarks", - "Symbolics" => "Symbolic Manipulation Benchmarks" -] - -renamed_index = "SciMLBenchmarks.jl: Benchmarks for Scientific Machine Learning (SciML) and Equation Solvers" => - pages[1][2] -remaining_pages = Dict{String,Any}(pages[2:end]) -ordered_pages = Any[renamed_index] - -for (folder, title) in section_titles - if haskey(remaining_pages, folder) - push!(ordered_pages, title => remaining_pages[folder]) - delete!(remaining_pages, folder) - end -end - -# Keep docs generation robust when new benchmark folders are added. -for folder in sort!(collect(keys(remaining_pages))) - push!(ordered_pages, folder => remaining_pages[folder]) -end - -pages = ordered_pages +# The result is in alphabetical order, change to the wanted order + +section_titles = [ + "MultiLanguage" => "Multi-Language Wrapper Benchmarks", + "LinearSolve" => "Linear Solvers", + "IntervalNonlinearProblem" => "Interval Rootfinding", + "NonlinearProblem" => "Nonlinear Solvers", + "AutomaticDifferentiation" => "Automatic Differentiation", + "AutomaticDifferentiationSparse" => "Sparse Automatic Differentiation", + "NonStiffODE" => "Non-Stiff Ordinary Differential Equations (ODEs)", + "StiffODE" => "Stiff Ordinary Differential Equations (ODEs)", + "Bio" => "Biological Differential Equations", + "AstroChem" => "Astrochemistry Differential Equations", + "DAE" => "Differential-Algebraic Equations (DAEs)", + "NonStiffBVP" => "Non-Stiff Boundary Value Problems (BVPs)", + "StiffBVP" => "Stiff Boundary Value Problems (BVPs)", + "ModelingToolkit" => "ModelingToolkit Acausal Modeling / Symbolic-Numeric Benchmarks", + "SimpleHandwrittenPDE" => "Simple Handwritten Partial Differential Equations (PDEs) as ODEs", + "ComplicatedPDE" => "Complicated Partial Differential Equations (PDEs)", + "DynamicalODE" => "Dynamical ODEs (Hamiltonian and Second Order)", + "NBodySimulator" => "N-Body Problem Benchmarks", + "NonStiffSDE" => "Non-Stiff Stochastic Differential Equations (SDEs)", + "StiffSDE" => "Stiff Stochastic Differential Equations (SDEs)", + "NonStiffDDE" => "Non-Stiff Delay Differential Equations (DDEs)", + "StiffDDE" => "Stiff Delay Differential equations (DDEs)", + "Jumps" => "Jump Process Equations (Gillespie Benchmarks)", + "HybridJumps" => "Hybrid (Time-Dependent) Jump Processes", + "Optimization" => "Nonlinear Optimization Solver Benchmarks", + "OptimizationCUTEst" => "CUTEst Optimization Solver Benchmarks", + "GlobalOptimization" => "Global Optimization Benchmarks", + "OptimizationFrameworks" => "Optimization Framework Benchmarks", + "ParameterEstimation" => "Parameter Estimation and Inverse Problem Benchmarks", + "BayesianInference" => "Bayesian Inference and Probabilistic Inverse Problem Benchmarks", + "MethodOfLinesPDE" => "MethodOfLines.jl Partial Differential Equation (PDE) Formulations", + "PINNErrorsVsTime" => "Physics-Informed Neural Network (Neural Network PDE Solver) Cost Function Benchmarks", + "PINNOptimizers" => "Physics-Informed Neural Network (Neural Network PDE Solver) Optimizer Benchmarks", + "NeuralNetworks" => "Neural Network Framework Benchmarks", + "AdaptiveSDE" => "SDE Adaptivity Benchmarks", + "Surrogates" => "Surrogate Benchmarks", + "Symbolics" => "Symbolic Manipulation Benchmarks" +] + +renamed_index = "SciMLBenchmarks.jl: Benchmarks for Scientific Machine Learning (SciML) and Equation Solvers" => + pages[1][2] +remaining_pages = Dict{String,Any}(pages[2:end]) +ordered_pages = Any[renamed_index] + +for (folder, title) in section_titles + if haskey(remaining_pages, folder) + push!(ordered_pages, title => remaining_pages[folder]) + delete!(remaining_pages, folder) + end +end + +# Keep docs generation robust when new benchmark folders are added. +for folder in sort!(collect(keys(remaining_pages))) + push!(ordered_pages, folder => remaining_pages[folder]) +end + +pages = ordered_pages