From 4439078315b3fcce7935158a2c12f5981c158267 Mon Sep 17 00:00:00 2001 From: jlk9 Date: Wed, 14 Feb 2024 15:44:33 -0600 Subject: [PATCH 01/37] Added test of tracer advection-diffusion --- test/test_enzyme.jl | 144 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 142 insertions(+), 2 deletions(-) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index e9b9397d68..af024900cb 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -1,13 +1,78 @@ using Oceananigans +using Oceananigans.TurbulenceClosures: with_tracers +using Oceananigans.BoundaryConditions: fill_halo_regions! +using Oceananigans.Fields: ConstantField +using Oceananigans.Models.HydrostaticFreeSurfaceModels: tracernames using Enzyme # Required presently Enzyme.API.runtimeActivity!(true) - -EnzymeRules.inactive_type(::Type{<:Oceananigans.Grids.AbstractGrid}) = true +Enzyme.API.looseTypeAnalysis!(true) +Enzyme.EnzymeRules.inactive_type(::Type{<:Oceananigans.Grids.AbstractGrid}) = true +Enzyme.EnzymeRules.inactive_type(::Type{<:Oceananigans.Clock}) = true +Enzyme.EnzymeRules.inactive_noinl(::typeof(Core._compute_sparams), args...) = nothing f(grid) = CenterField(grid) +const maximum_diffusivity = 100 + +""" + set_diffusivity!(model, diffusivity) + +Change diffusivity of model to `diffusivity`. +""" +function set_diffusivity!(model, diffusivity) + closure = VerticalScalarDiffusivity(; κ=diffusivity) + names = tuple(:c) # tracernames(model.tracers) + closure = with_tracers(names, closure) + model.closure = closure + return nothing +end + +function set_initial_condition!(model, amplitude) + # Set initial condition + amplitude = Ref(amplitude) + + # This has a "width" of 0.1 + cᵢ(x, y, z) = amplitude[] * exp(-z^2 / 0.02 - (x^2 + y^2) / 0.05) + set!(model, c=cᵢ) + + return nothing +end + +function stable_diffusion!(model, amplitude, diffusivity) + set_diffusivity!(model, diffusivity) + set_initial_condition!(model, amplitude) + + # Do time-stepping + Nx, Ny, Nz = size(model.grid) + κ_max = maximum_diffusivity + Δz = 2π / Nz + Δt = 1e-1 * Δz^2 / κ_max + + model.clock.time = 0 + model.clock.iteration = 0 + + for n = 1:10 + time_step!(model, Δt; euler=true) + end + + # Compute scalar metric + c = model.tracers.c + + # Hard way + # c² = c^2 + # sum_c² = sum(c²) + + # Another way to compute it + sum_c² = 0.0 + for i = 1:Nx, j = 1:Ny, k = 1:Nz + sum_c² += c[i, j, k]^2 + end + + return sum_c²::Float64 +end + @testset "Enzyme Unit Tests" begin arch=CPU() FT=Float64 @@ -23,3 +88,78 @@ f(grid) = CenterField(grid) @test size(primal) == size(shadow) end + + +@testset "Enzyme on advection and diffusion" begin + Nx = Ny = 64 + Nz = 8 + + x = y = (-π, π) + z = (-0.5, 0.5) + topology = (Periodic, Periodic, Bounded) + + grid = RectilinearGrid(size=(Nx, Ny, Nz); x, y, z, topology) + diffusion = VerticalScalarDiffusivity(κ=0.1) + + u = XFaceField(grid) + v = YFaceField(grid) + + U = 1 + u₀(x, y, z) = - U * cos(x + π/4) * sin(y) * (z + 0.5) + v₀(x, y, z) = + U * sin(x + π/4) * cos(y) * (z + 0.5) + + set!(u, u₀) + set!(v, v₀) + fill_halo_regions!(u) + fill_halo_regions!(v) + + @inline function tracer_flux(x, y, t, c, p) + c₀ = p.surface_tracer_concentration + u★ = p.piston_velocity + return - u★ * (c₀ - c) + end + + parameters = (surface_tracer_concentration = 1, + piston_velocity = 0.1) + + top_c_bc = FluxBoundaryCondition(tracer_flux, field_dependencies=:c; parameters) + c_bcs = FieldBoundaryConditions(top=top_c_bc) + + # TODO: + # 1. Make the velocity fields evolve + # 2. Add surface fluxes + # 3. Do a problem where we invert for the tracer fluxes (maybe with CATKE) + + model = HydrostaticFreeSurfaceModel(; grid, + tracer_advection = WENO(), + tracers = :c, + buoyancy = nothing, + velocities = PrescribedVelocityFields(; u, v), + closure = diffusion) + + # Compute derivative by hand + κ₁, κ₂ = 0.9, 1.1 + c²₁ = stable_diffusion!(model, 1, κ₁) + c²₂ = stable_diffusion!(model, 1, κ₂) + dc²_dκ_fd = (c²₂ - c²₁) / (κ₂ - κ₁) + + # Now for real + amplitude = 1.0 + κ = 1.0 + dmodel = Enzyme.make_zero(model) + set_diffusivity!(dmodel, 0) + + dc²_dκ = autodiff(Enzyme.Reverse, + stable_diffusion!, + Duplicated(model, dmodel), + Const(amplitude), + Active(κ)) + + @info """ \n + Enzyme computed $dc²_dκ + Finite differences computed $dc²_dκ_fd + """ + + tol = 0.1 + @test abs((dc²_dκ - dc²_dκ_fd) / dc²_dκ_fd) < tol +end \ No newline at end of file From 1ce897813fbf9daab132f3f8d218d05855e4916b Mon Sep 17 00:00:00 2001 From: Joseph Kump Date: Fri, 16 Feb 2024 10:36:56 -0600 Subject: [PATCH 02/37] Update test/test_enzyme.jl Co-authored-by: Navid C. Constantinou --- test/test_enzyme.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index af024900cb..27bdfade5d 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -66,7 +66,7 @@ function stable_diffusion!(model, amplitude, diffusivity) # Another way to compute it sum_c² = 0.0 - for i = 1:Nx, j = 1:Ny, k = 1:Nz + for k = 1:Nz, j = 1:Ny, i = 1:Nx sum_c² += c[i, j, k]^2 end From bc988a02a6c90c97420556c6c1f0af0e314e30a9 Mon Sep 17 00:00:00 2001 From: Joseph Kump Date: Fri, 16 Feb 2024 10:39:20 -0600 Subject: [PATCH 03/37] Update test/test_enzyme.jl Co-authored-by: Navid C. Constantinou --- test/test_enzyme.jl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index 27bdfade5d..3e32a43a5b 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -94,8 +94,11 @@ end Nx = Ny = 64 Nz = 8 - x = y = (-π, π) - z = (-0.5, 0.5) + Lx = Ly = L = 2π + Lz = 1 + + x = y = (-L/2, L/2) + z = (-Lz/2, Lz/2) topology = (Periodic, Periodic, Bounded) grid = RectilinearGrid(size=(Nx, Ny, Nz); x, y, z, topology) From 2e061d8c04b44b25f397b5a53f55955f7c5ca48f Mon Sep 17 00:00:00 2001 From: Joseph Kump Date: Fri, 16 Feb 2024 10:41:57 -0600 Subject: [PATCH 04/37] Update test/test_enzyme.jl Co-authored-by: Navid C. Constantinou --- test/test_enzyme.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index 3e32a43a5b..d10b9e2da4 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -108,8 +108,8 @@ end v = YFaceField(grid) U = 1 - u₀(x, y, z) = - U * cos(x + π/4) * sin(y) * (z + 0.5) - v₀(x, y, z) = + U * sin(x + π/4) * cos(y) * (z + 0.5) + u₀(x, y, z) = - U * cos(x + L/8) * sin(y) * (z + L/2) + v₀(x, y, z) = + U * sin(x + L/8) * cos(y) * (z + L/2) set!(u, u₀) set!(v, v₀) From 31cc3c22028fccea279d6689a41eb20b9f86dbf0 Mon Sep 17 00:00:00 2001 From: Joseph Kump Date: Fri, 16 Feb 2024 10:42:16 -0600 Subject: [PATCH 05/37] Update test/test_enzyme.jl Co-authored-by: Navid C. Constantinou --- test/test_enzyme.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index d10b9e2da4..6e930b50bc 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -123,7 +123,7 @@ end end parameters = (surface_tracer_concentration = 1, - piston_velocity = 0.1) + piston_velocity = 0.1) top_c_bc = FluxBoundaryCondition(tracer_flux, field_dependencies=:c; parameters) c_bcs = FieldBoundaryConditions(top=top_c_bc) From aea14b804802aa450b85dcdb0e28346b4e8628d1 Mon Sep 17 00:00:00 2001 From: jlk9 Date: Fri, 16 Feb 2024 10:43:53 -0600 Subject: [PATCH 06/37] Added elaboration to comment on sum --- test/test_enzyme.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index 6e930b50bc..547352adca 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -60,7 +60,7 @@ function stable_diffusion!(model, amplitude, diffusivity) # Compute scalar metric c = model.tracers.c - # Hard way + # Hard way (for enzyme - the sum function sometimes errors with AD) # c² = c^2 # sum_c² = sum(c²) From 43319061efe2c0789d93622ed1731424bc1e5c24 Mon Sep 17 00:00:00 2001 From: Joseph Kump Date: Fri, 16 Feb 2024 10:47:15 -0600 Subject: [PATCH 07/37] Update test/test_enzyme.jl Co-authored-by: Navid C. Constantinou --- test/test_enzyme.jl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index 547352adca..1bcbb183c7 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -153,10 +153,10 @@ end set_diffusivity!(dmodel, 0) dc²_dκ = autodiff(Enzyme.Reverse, - stable_diffusion!, - Duplicated(model, dmodel), - Const(amplitude), - Active(κ)) + stable_diffusion!, + Duplicated(model, dmodel), + Const(amplitude), + Active(κ)) @info """ \n Enzyme computed $dc²_dκ From e3087010cbbdd52930138a429a9d4b80c4919c3c Mon Sep 17 00:00:00 2001 From: jlk9 Date: Fri, 16 Feb 2024 11:48:01 -0600 Subject: [PATCH 08/37] Added include statement and changed @test assertion with typo --- test/test_enzyme.jl | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index 1bcbb183c7..7a8ad65c0c 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -1,3 +1,5 @@ +include("dependencies_for_runtests.jl") + using Oceananigans using Oceananigans.TurbulenceClosures: with_tracers using Oceananigans.BoundaryConditions: fill_halo_regions! @@ -162,7 +164,4 @@ end Enzyme computed $dc²_dκ Finite differences computed $dc²_dκ_fd """ - - tol = 0.1 - @test abs((dc²_dκ - dc²_dκ_fd) / dc²_dκ_fd) < tol end \ No newline at end of file From 93b0ff75a7e1e3d8721f60768ce6d34af8423971 Mon Sep 17 00:00:00 2001 From: jlk9 Date: Fri, 16 Feb 2024 11:53:13 -0600 Subject: [PATCH 09/37] Updated compat to Enzyme 0.11.16 --- Manifest.toml | 356 ++++++++++++++++++++++++++++---------------------- Project.toml | 4 +- 2 files changed, 205 insertions(+), 155 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index bf09b5977a..5af8c1e038 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -1,8 +1,8 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.9.4" +julia_version = "1.10.0-rc2" manifest_format = "2.0" -project_hash = "39afa30206a17bb59b9e4ecef8c35f280cf4701c" +project_hash = "488a2c2909c1a9300bbfd3ccbc70c83c0f1cc891" [[deps.AbstractFFTs]] deps = ["LinearAlgebra"] @@ -20,9 +20,9 @@ version = "1.5.0" [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "76289dc51920fdc6e0013c872ba9551d54961c24" +git-tree-sha1 = "cde29ddf7e5726c9fb511f340244ea3481267608" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.6.2" +version = "3.7.2" weakdeps = ["StaticArrays"] [deps.Adapt.extensions] @@ -34,9 +34,9 @@ version = "1.1.1" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "f83ec24f76d4c8f525099b2ac475fc098138ec31" +git-tree-sha1 = "c5aeb516a84459e0318a02507d2261edad97eb75" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.4.11" +version = "7.7.1" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" @@ -74,14 +74,14 @@ uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" +git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" -version = "1.0.8+0" +version = "1.0.8+1" [[deps.CEnum]] -git-tree-sha1 = "eb4cb44a499229b3b8426dcfb5dd85333951ff90" +git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" -version = "0.4.2" +version = "0.5.0" [[deps.CFTime]] deps = ["Dates", "Printf"] @@ -90,32 +90,36 @@ uuid = "179af706-886a-5703-950a-314cd64e0468" version = "0.1.2" [[deps.CUDA]] -deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "Statistics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "f062a48c26ae027f70c44f48f244862aec47bf99" +deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LLVMLoopInfo", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "Statistics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "95ac638373ac40e29c1b6d086a3698f5026ff6a6" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "5.0.0" -weakdeps = ["SpecialFunctions"] +version = "5.1.2" [deps.CUDA.extensions] + ChainRulesCoreExt = "ChainRulesCore" SpecialFunctionsExt = "SpecialFunctions" + [deps.CUDA.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" + [[deps.CUDA_Driver_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "35a37bb72b35964f2895c12c687ae263b4ac170c" +git-tree-sha1 = "d01bfc999768f0a31ed36f5d22a76161fc63079c" uuid = "4ee394cb-3365-5eb0-8335-949819d2adfc" -version = "0.6.0+3" +version = "0.7.0+1" [[deps.CUDA_Runtime_Discovery]] deps = ["Libdl"] -git-tree-sha1 = "bcc4a23cbbd99c8535a5318455dcf0f2546ec536" +git-tree-sha1 = "2cb12f6b2209f40a4b8967697689a47c50485490" uuid = "1af6417a-86b4-443c-805f-a4643ffb695f" -version = "0.2.2" +version = "0.2.3" [[deps.CUDA_Runtime_jll]] deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "178a606891f82b6d734f0eadd5336b7aad44d5df" +git-tree-sha1 = "9704e50c9158cf8896c2776b8dbc5edd136caf80" uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" -version = "0.9.2+1" +version = "0.10.1+0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] @@ -136,10 +140,10 @@ uuid = "1fbeeb36-5f17-413c-809b-666fb144f157" version = "0.2.5" [[deps.Compat]] -deps = ["UUIDs"] -git-tree-sha1 = "8a62af3e248a8c4bad6b32cbbe663ae02275e32c" +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "75bd5b6fc5089df449b5d35fa501c846c9b6549b" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.10.0" +version = "4.12.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -148,7 +152,7 @@ weakdeps = ["Dates", "LinearAlgebra"] [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.0.5+0" +version = "1.0.5+1" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] @@ -171,14 +175,14 @@ version = "4.1.1" [[deps.CubedSphere]] deps = ["Elliptic", "FFTW", "Printf", "ProgressBars", "SpecialFunctions", "TaylorSeries", "Test"] -git-tree-sha1 = "131498c78453d02b4821d8b93f6e44595399f19f" +git-tree-sha1 = "10134667d7d3569b191a65801514271b8a93b292" uuid = "7445602f-e544-4518-8976-18f8e8ae6cdb" -version = "0.2.3" +version = "0.2.5" [[deps.DataAPI]] -git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" -version = "1.15.0" +version = "1.16.0" [[deps.DataFrames]] deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] @@ -188,9 +192,9 @@ version = "1.6.1" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d" +git-tree-sha1 = "ac67408d9ddf207de5cfa9a97e114352430f01ed" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.15" +version = "0.18.16" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -202,16 +206,16 @@ deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" [[deps.DiskArrays]] -deps = ["OffsetArrays"] -git-tree-sha1 = "1bfa9de80f35ac63c6c381b2d43c590875896a1f" +deps = ["LRUCache", "OffsetArrays"] +git-tree-sha1 = "ef25c513cad08d7ebbed158c91768ae32f308336" uuid = "3c3547ce-8d99-4f5e-a174-61eb10b00ae3" -version = "0.3.22" +version = "0.3.23" [[deps.Distances]] deps = ["LinearAlgebra", "Statistics", "StatsAPI"] -git-tree-sha1 = "5225c965635d8c21168e32a12954675e7bea1151" +git-tree-sha1 = "66c4c81f259586e8f002eacebc177e1fb06363b0" uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" -version = "0.10.10" +version = "0.10.11" [deps.Distances.extensions] DistancesChainRulesCoreExt = "ChainRulesCore" @@ -248,9 +252,9 @@ version = "0.1.10" [[deps.FFTW]] deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] -git-tree-sha1 = "b4fbdd20c889804969571cc589900803edda16b7" +git-tree-sha1 = "4820348781ae578893311153d69049a93d05f39d" uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" -version = "1.7.1" +version = "1.8.0" [[deps.FFTW_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -260,9 +264,9 @@ version = "3.3.10+0" [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] -git-tree-sha1 = "299dc33549f68299137e51e6d49a13b5b1da9673" +git-tree-sha1 = "c5c28c245101bd59154f649e19b038d15901b5dc" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" -version = "1.16.1" +version = "1.16.2" [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" @@ -279,9 +283,9 @@ uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" [[deps.GPUArrays]] deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "8ad8f375ae365aa1eb2f42e2565a40b55a4b69a8" +git-tree-sha1 = "85d7fb51afb3def5dcb85ad31c3707795c8bccc1" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "9.0.0" +version = "9.1.0" [[deps.GPUArraysCore]] deps = ["Adapt"] @@ -291,9 +295,9 @@ version = "0.1.5" [[deps.GPUCompiler]] deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "5e4487558477f191c043166f8301dd0b4be4e2b2" +git-tree-sha1 = "a846f297ce9d09ccba02ead0cae70690e072a119" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.24.5" +version = "0.25.0" [[deps.Glob]] git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" @@ -301,10 +305,16 @@ uuid = "c27321d9-0574-5035-807b-f59d2c89b15c" version = "1.3.1" [[deps.HDF5_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] -git-tree-sha1 = "38c8874692d48d5440d5752d6c74b0c6b0b60739" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] +git-tree-sha1 = "e4591176488495bf44d7456bd73179d87d5e6eab" uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" -version = "1.14.2+1" +version = "1.14.3+1" + +[[deps.Hwloc_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "ca0f6bf568b4bfc807e7537f081c81e35ceca114" +uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" +version = "2.10.0+0" [[deps.IfElse]] git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" @@ -324,10 +334,10 @@ uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" version = "1.4.0" [[deps.IntelOpenMP_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "ad37c091f7d7daf900963171600d7c1c5c3ede32" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "5fdf2fe6724d8caabf43b557b84ce53f3b7e2f6b" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2023.2.0+0" +version = "2024.0.2+0" [[deps.InteractiveUtils]] deps = ["Markdown"] @@ -345,9 +355,9 @@ version = "0.2.2" [[deps.IterativeSolvers]] deps = ["LinearAlgebra", "Printf", "Random", "RecipesBase", "SparseArrays"] -git-tree-sha1 = "1169632f425f79429f245113b775a0e3d121457c" +git-tree-sha1 = "59545b0a2b27208b0650df0a46b8e3019f85055b" uuid = "42fd0dbc-a981-5370-80f2-aaf504508153" -version = "0.9.2" +version = "0.9.4" [[deps.IteratorInterfaceExtensions]] git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" @@ -355,10 +365,10 @@ uuid = "82899510-4779-5014-852e-03e436cf321d" version = "1.0.0" [[deps.JLD2]] -deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] -git-tree-sha1 = "c11d691a0dc8e90acfa4740d293ade57f68bfdbb" +deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "PrecompileTools", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] +git-tree-sha1 = "5ea6acdd53a51d897672edb694e3cc2912f3f8a7" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.35" +version = "0.4.46" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] @@ -368,9 +378,15 @@ version = "1.5.0" [[deps.JSON3]] deps = ["Dates", "Mmap", "Parsers", "PrecompileTools", "StructTypes", "UUIDs"] -git-tree-sha1 = "95220473901735a0f4df9d1ca5b171b568b2daa3" +git-tree-sha1 = "eb3edce0ed4fa32f75a0a11217433c31d56bd48b" uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" -version = "1.13.2" +version = "1.14.0" + + [deps.JSON3.extensions] + JSON3ArrowExt = ["ArrowTypes"] + + [deps.JSON3.weakdeps] + ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" [[deps.JuliaNVTXCallbacks_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -380,9 +396,9 @@ version = "0.2.1+0" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "5f1ecfddb6abde48563d08b2cc7e5116ebcd6c27" +git-tree-sha1 = "4e0cb2f5aad44dcfdc91088e85dee4ecb22c791c" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.10" +version = "0.9.16" [deps.KernelAbstractions.extensions] EnzymeExt = "EnzymeCore" @@ -391,27 +407,39 @@ version = "0.9.10" EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" [[deps.LLVM]] -deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Printf", "Unicode"] -git-tree-sha1 = "4ea2928a96acfcf8589e6cd1429eff2a3a82c366" +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] +git-tree-sha1 = "9e70165cca7459d25406367f0c55e517a9a7bfe7" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "6.3.0" +version = "6.5.0" +weakdeps = ["BFloat16s"] + + [deps.LLVM.extensions] + BFloat16sExt = "BFloat16s" [[deps.LLVMExtra_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "e7c01b69bcbcb93fd4cbc3d0fea7d229541e18d2" +git-tree-sha1 = "114e3a48f13d4c18ddd7fd6a00107b4b96f60f9c" uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.26+0" +version = "0.0.28+0" -[[deps.LLVMOpenMP_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "f689897ccbe049adb19a065c495e75f372ecd42b" -uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" -version = "15.0.4+0" +[[deps.LLVMLoopInfo]] +git-tree-sha1 = "2e5c102cfc41f48ae4740c7eca7743cc7e7b75ea" +uuid = "8b046642-f1f6-4319-8d3c-209ddc03c586" +version = "1.0.0" + +[[deps.LRUCache]] +git-tree-sha1 = "b3cc6698599b10e652832c2f23db3cab99d51b59" +uuid = "8ac3fa9e-de4c-5943-b1dc-09c6b5f20637" +version = "1.6.1" +weakdeps = ["Serialization"] + + [deps.LRUCache.extensions] + SerializationExt = ["Serialization"] [[deps.LaTeXStrings]] -git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" -version = "1.3.0" +version = "1.3.1" [[deps.LazyArtifacts]] deps = ["Artifacts", "Pkg"] @@ -428,9 +456,14 @@ uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" version = "8.4.0+0" [[deps.LibGit2]] -deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +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" @@ -451,9 +484,9 @@ uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" +git-tree-sha1 = "18144f3e9cbe9b15b070288eef858f71b291ce37" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.26" +version = "0.3.27" [deps.LogExpFunctions.extensions] LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" @@ -469,16 +502,16 @@ version = "0.3.26" uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" [[deps.MKL_jll]] -deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "eb006abbd7041c28e0d16260e50a24f8f9104913" +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2023.2.0+0" +version = "2024.0.0+0" [[deps.MPI]] deps = ["Distributed", "DocStringExtensions", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "PkgVersion", "PrecompileTools", "Requires", "Serialization", "Sockets"] -git-tree-sha1 = "b4d8707e42b693720b54f0b3434abee6dd4d947a" +git-tree-sha1 = "4e3136db3735924f96632a5b40a5979f1f53fa07" uuid = "da04e1cc-30fd-572f-bb4f-1f8673147195" -version = "0.20.16" +version = "0.20.19" [deps.MPI.extensions] AMDGPUExt = "AMDGPU" @@ -489,28 +522,28 @@ version = "0.20.16" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" [[deps.MPICH_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "8a5b4d2220377d1ece13f49438d71ad20cf1ba83" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "656036b9ed6f942d35e536e249600bc31d0f9df8" uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" -version = "4.1.2+0" +version = "4.2.0+0" [[deps.MPIPreferences]] deps = ["Libdl", "Preferences"] -git-tree-sha1 = "781916a2ebf2841467cda03b6f1af43e23839d85" +git-tree-sha1 = "8f6af051b9e8ec597fa09d8885ed79fd582f33c9" uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" -version = "0.1.9" +version = "0.1.10" [[deps.MPItrampoline_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "6979eccb6a9edbbb62681e158443e79ecc0d056a" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "77c3bd69fdb024d75af38713e883d0f249ce19c2" uuid = "f1f71cc9-e9ae-5b93-9b94-4fe0e1ad3748" -version = "5.3.1+0" +version = "5.3.2+0" [[deps.MacroTools]] deps = ["Markdown", "Random"] -git-tree-sha1 = "9ee1618cbf5240e6d4e0371d6f24065083f60c48" +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" -version = "0.5.11" +version = "0.5.13" [[deps.Markdown]] deps = ["Base64"] @@ -519,13 +552,13 @@ uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" [[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" -version = "2.28.2+0" +version = "2.28.2+1" [[deps.MicrosoftMPI_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "a7023883872e52bc29bcaac74f19adf39347d2d5" +git-tree-sha1 = "f12a29c4400ba812841c6ace3f4efbb6dbb3ba01" uuid = "9237b28f-5490-5468-be7b-bb81f5f5e6cf" -version = "10.1.4+0" +version = "10.1.4+2" [[deps.Missings]] deps = ["DataAPI"] @@ -538,19 +571,19 @@ uuid = "a63ad114-7e13-5084-954f-fe012c677804" [[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" -version = "2022.10.11" +version = "2023.1.10" [[deps.NCDatasets]] deps = ["CFTime", "CommonDataModel", "DataStructures", "Dates", "DiskArrays", "NetCDF_jll", "NetworkOptions", "Printf"] -git-tree-sha1 = "7fcb4378f9c648a186bcb996fa29acc929a179ed" +git-tree-sha1 = "173a378f357e9bb24b22019efb5e4778223ce8cf" uuid = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" -version = "0.13.1" +version = "0.13.2" [[deps.NVTX]] deps = ["Colors", "JuliaNVTXCallbacks_jll", "Libdl", "NVTX_jll"] -git-tree-sha1 = "8bc9ce4233be3c63f8dcd78ccaf1b63a9c0baa34" +git-tree-sha1 = "53046f0483375e3ed78e49190f1154fa0a4083a1" uuid = "5da4648a-3479-48b8-97b9-01cb529c0a1f" -version = "0.3.3" +version = "0.3.4" [[deps.NVTX_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -569,20 +602,23 @@ uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" [[deps.OffsetArrays]] -deps = ["Adapt"] -git-tree-sha1 = "2ac17d29c523ce1cd38e27785a7d23024853a4bb" +git-tree-sha1 = "6a731f2b5c03157418a20c12195eb4b74c8f8621" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.12.10" +version = "1.13.0" +weakdeps = ["Adapt"] + + [deps.OffsetArrays.extensions] + OffsetArraysAdaptExt = "Adapt" [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.21+4" +version = "0.3.23+2" [[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] uuid = "05823500-19ac-5b8b-9628-191a04bc5112" -version = "0.8.1+0" +version = "0.8.1+2" [[deps.OpenMPI_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] @@ -592,9 +628,9 @@ version = "4.1.6+0" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "ceeda72c9fd6bbebc4f4f598560789145a8b6c4c" +git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.0.11+0" +version = "3.0.13+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -603,9 +639,9 @@ uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" version = "0.5.5+0" [[deps.OrderedCollections]] -git-tree-sha1 = "2e73fe17cac3c62ad1aebe70d44c963c3cfdc3e3" +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.6.2" +version = "1.6.3" [[deps.PackageExtensionCompat]] git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" @@ -615,15 +651,15 @@ weakdeps = ["Requires", "TOML"] [[deps.Parsers]] deps = ["Dates", "PrecompileTools", "UUIDs"] -git-tree-sha1 = "716e24b21538abc91f6205fd1d8363f39b442851" +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.7.2" +version = "2.8.1" [[deps.PencilArrays]] deps = ["Adapt", "JSON3", "LinearAlgebra", "MPI", "OffsetArrays", "Random", "Reexport", "StaticArrayInterface", "StaticArrays", "StaticPermutations", "Strided", "TimerOutputs", "VersionParsing"] -git-tree-sha1 = "1a473d028436947e08436275ff3fcc2f3e9c5b06" +git-tree-sha1 = "6510e851700a851944f7ffa5cd990cced4802ad2" uuid = "0e08944d-e94e-41b1-9406-dcf66b6a9d2e" -version = "0.19.2" +version = "0.19.3" [deps.PencilArrays.extensions] PencilArraysDiffEqExt = ["DiffEqBase"] @@ -642,7 +678,7 @@ version = "0.15.1" [[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.9.2" +version = "1.10.0" [[deps.PkgVersion]] deps = ["Pkg"] @@ -669,10 +705,10 @@ uuid = "21216c6a-2e73-6563-6e65-726566657250" version = "1.4.1" [[deps.PrettyTables]] -deps = ["Crayons", "LaTeXStrings", "Markdown", "Printf", "Reexport", "StringManipulation", "Tables"] -git-tree-sha1 = "ee094908d720185ddbdc58dbe0c1cbe35453ec7a" +deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] +git-tree-sha1 = "88b895d13d53b5577fd53379d913b9ab9ac82660" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "2.2.7" +version = "2.3.1" [[deps.Printf]] deps = ["Unicode"] @@ -686,23 +722,23 @@ version = "1.5.1" [[deps.Quaternions]] deps = ["LinearAlgebra", "Random", "RealDot"] -git-tree-sha1 = "da095158bdc8eaccb7890f9884048555ab771019" +git-tree-sha1 = "994cc27cdacca10e68feb291673ec3a76aa2fae9" uuid = "94ee1d12-ae83-5a48-8b1c-48b8ff168ae0" -version = "0.7.4" +version = "0.7.6" [[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.Random]] -deps = ["SHA", "Serialization"] +deps = ["SHA"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [[deps.Random123]] deps = ["Random", "RandomNumbers"] -git-tree-sha1 = "552f30e847641591ba3f39fd1bed559b9deb0ef3" +git-tree-sha1 = "c860e84651f58ce240dd79e5d9e055d55234c35a" uuid = "74087812-796a-5b5d-8853-05524746bad3" -version = "1.6.1" +version = "1.6.2" [[deps.RandomNumbers]] deps = ["Random", "Requires"] @@ -735,9 +771,13 @@ version = "1.3.0" [[deps.Rotations]] deps = ["LinearAlgebra", "Quaternions", "Random", "StaticArrays"] -git-tree-sha1 = "0783924e4a332493f72490253ba4e668aeba1d73" +git-tree-sha1 = "2a0a5d8569f481ff8840e3b7c84bbf188db6a3fe" uuid = "6038ab10-8711-5258-84ad-4b1120ba62dc" -version = "1.6.0" +version = "1.7.0" +weakdeps = ["RecipesBase"] + + [deps.Rotations.extensions] + RotationsRecipesBaseExt = "RecipesBase" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" @@ -745,9 +785,9 @@ version = "0.7.0" [[deps.Scratch]] deps = ["Dates"] -git-tree-sha1 = "30449ee12237627992a99d5e30ae63e4d78cd24a" +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" uuid = "6c6a2e73-6563-6170-7368-637461726353" -version = "1.2.0" +version = "1.2.1" [[deps.SeawaterPolynomials]] git-tree-sha1 = "6d85acd6de472f8e6da81c61c7c5b6280a55e0bc" @@ -756,9 +796,9 @@ version = "0.3.4" [[deps.SentinelArrays]] deps = ["Dates", "Random"] -git-tree-sha1 = "04bdff0b09c65ff3e06a05e3eb7b120223da3d39" +git-tree-sha1 = "0e7508ff27ba32f26cd459474ca2ede1bc10991f" uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.4.0" +version = "1.4.1" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" @@ -768,13 +808,14 @@ uuid = "6462fe0b-24de-5631-8697-dd941f90decc" [[deps.SortingAlgorithms]] deps = ["DataStructures"] -git-tree-sha1 = "c60ec5c62180f27efea3ba2908480f8055e17cee" +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" -version = "1.1.1" +version = "1.2.1" [[deps.SparseArrays]] deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.10.0" [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] @@ -790,15 +831,15 @@ version = "2.3.1" [[deps.Static]] deps = ["IfElse"] -git-tree-sha1 = "f295e0a1da4ca425659c57441bcb59abb035a4bc" +git-tree-sha1 = "d2fdac9ff3906e27f7a618d47b676941baa6c80c" uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" -version = "0.8.8" +version = "0.8.10" [[deps.StaticArrayInterface]] deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] -git-tree-sha1 = "03fec6800a986d191f64f5c0996b59ed526eda25" +git-tree-sha1 = "5d66818a39bb04bf328e92bc933ec5b4ee88e436" uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.4.1" +version = "1.5.0" weakdeps = ["OffsetArrays", "StaticArrays"] [deps.StaticArrayInterface.extensions] @@ -806,15 +847,19 @@ weakdeps = ["OffsetArrays", "StaticArrays"] StaticArrayInterfaceStaticArraysExt = "StaticArrays" [[deps.StaticArrays]] -deps = ["LinearAlgebra", "Random", "StaticArraysCore"] -git-tree-sha1 = "0adf069a2a490c47273727e029371b31d44b72b2" +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "7b0e9c14c624e435076d19aea1e5cbdec2b9ca37" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.6.5" -weakdeps = ["Statistics"] +version = "1.9.2" [deps.StaticArrays.extensions] + StaticArraysChainRulesCoreExt = "ChainRulesCore" StaticArraysStatisticsExt = "Statistics" + [deps.StaticArrays.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + [[deps.StaticArraysCore]] git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" @@ -828,7 +873,7 @@ version = "0.3.0" [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" -version = "1.9.0" +version = "1.10.0" [[deps.StatsAPI]] deps = ["LinearAlgebra"] @@ -844,9 +889,9 @@ version = "2.0.4" [[deps.StridedViews]] deps = ["LinearAlgebra", "PackageExtensionCompat"] -git-tree-sha1 = "cf857ff7de76f39e5daef6d032e8a74279ddff6a" +git-tree-sha1 = "5b765c4e401693ab08981989f74a36a010aa1d8e" uuid = "4db3bf67-4bd7-4b4e-b153-31dc3fb37143" -version = "0.2.1" +version = "0.2.2" weakdeps = ["CUDA"] [deps.StridedViews.extensions] @@ -860,9 +905,9 @@ version = "0.3.4" [[deps.StructArrays]] deps = ["Adapt", "ConstructionBase", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] -git-tree-sha1 = "0a3db38e4cce3c54fe7a71f831cd7b6194a54213" +git-tree-sha1 = "1b0b1205a56dc288b71b1961d48e351520702e24" uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" -version = "0.6.16" +version = "0.6.17" [[deps.StructTypes]] deps = ["Dates", "UUIDs"] @@ -877,7 +922,7 @@ uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" [[deps.SuiteSparse_jll]] deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" -version = "5.10.1+6" +version = "7.2.1+1" [[deps.TOML]] deps = ["Dates"] @@ -892,9 +937,9 @@ version = "1.0.1" [[deps.Tables]] deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] -git-tree-sha1 = "a1f34829d5ac0ef499f6d84428bd6b4c71f02ead" +git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.11.0" +version = "1.11.1" [[deps.Tar]] deps = ["ArgTools", "SHA"] @@ -903,9 +948,9 @@ version = "1.10.0" [[deps.TaylorSeries]] deps = ["LinearAlgebra", "Markdown", "Requires", "SparseArrays"] -git-tree-sha1 = "50718b4fc1ce20cecf28d85215028c78b4d875c2" +git-tree-sha1 = "1c7170668366821b0c4c4fe03ee78f8d6cf36e2c" uuid = "6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea" -version = "0.15.2" +version = "0.16.0" [deps.TaylorSeries.extensions] TaylorSeriesIAExt = "IntervalArithmetic" @@ -924,15 +969,18 @@ uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" version = "0.5.23" [[deps.TranscodingStreams]] -deps = ["Random", "Test"] -git-tree-sha1 = "9a6ae7ed916312b41236fcef7e0af564ef934769" +git-tree-sha1 = "54194d92959d8ebaa8e26227dbe3cdefcdcd594f" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.9.13" +version = "0.10.3" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] [[deps.TupleTools]] -git-tree-sha1 = "155515ed4c4236db30049ac1495e2969cc06be9d" +git-tree-sha1 = "41d61b1c545b06279871ef1a4b5fcb2cac2191cd" uuid = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6" -version = "1.4.3" +version = "1.5.0" [[deps.UUIDs]] deps = ["Random", "SHA"] @@ -959,14 +1007,14 @@ version = "1.3.0" [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "24b81b59bd35b3c42ab84fa589086e19be919916" +git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.11.5+0" +version = "2.12.2+0" [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" -version = "1.2.13+0" +version = "1.2.13+1" [[deps.Zstd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -983,7 +1031,7 @@ version = "1.0.6+1" [[deps.libblastrampoline_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" -version = "5.8.0+0" +version = "5.8.0+1" [[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] @@ -993,4 +1041,4 @@ version = "1.52.0+1" [[deps.p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" -version = "17.4.0+0" +version = "17.4.0+2" diff --git a/Project.toml b/Project.toml index a8b480a16e..2fa7383f7e 100644 --- a/Project.toml +++ b/Project.toml @@ -11,6 +11,7 @@ CubedSphere = "7445602f-e544-4518-8976-18f8e8ae6cdb" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" Glob = "c27321d9-0574-5035-807b-f59d2c89b15c" IncompleteLU = "40713840-3770-5561-ab4c-a76e7d0d7895" @@ -34,6 +35,7 @@ SeawaterPolynomials = "d496a93d-167e-4197-9f49-d3af4ff8fe40" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" +Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [weakdeps] Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" @@ -49,7 +51,7 @@ CubedSphere = "0.1, 0.2" Dates = "1.9" Distances = "0.10" DocStringExtensions = "0.8, 0.9" -Enzyme = "0.11.14" +Enzyme = "0.11.16" FFTW = "1" Glob = "1.3" IncompleteLU = "0.2" From a887706f150fdc7f4c00fe88ebcfc6f3d054158f Mon Sep 17 00:00:00 2001 From: jlk9 Date: Fri, 16 Feb 2024 12:34:35 -0600 Subject: [PATCH 10/37] Made some more suggested edits --- test/test_enzyme.jl | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index 7a8ad65c0c..2bda7ac607 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -32,7 +32,6 @@ function set_diffusivity!(model, diffusivity) end function set_initial_condition!(model, amplitude) - # Set initial condition amplitude = Ref(amplitude) # This has a "width" of 0.1 @@ -49,13 +48,13 @@ function stable_diffusion!(model, amplitude, diffusivity) # Do time-stepping Nx, Ny, Nz = size(model.grid) κ_max = maximum_diffusivity - Δz = 2π / Nz + Δz = minimum_zspacing(model.grid) Δt = 1e-1 * Δz^2 / κ_max model.clock.time = 0 model.clock.iteration = 0 - for n = 1:10 + for _ = 1:10 time_step!(model, Δt; euler=true) end @@ -72,6 +71,7 @@ function stable_diffusion!(model, amplitude, diffusivity) sum_c² += c[i, j, k]^2 end + # Need the ::Float64 for type inference with automatic differentiation return sum_c²::Float64 end @@ -164,4 +164,4 @@ end Enzyme computed $dc²_dκ Finite differences computed $dc²_dκ_fd """ -end \ No newline at end of file +end From e45fd406e755025259af5a18da9c9252f33f9915 Mon Sep 17 00:00:00 2001 From: jlk9 Date: Fri, 16 Feb 2024 14:53:21 -0600 Subject: [PATCH 11/37] Removed call to minimum_spacing, keeping the spate and time steps constant --- test/test_enzyme.jl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index 2bda7ac607..be7cfdee6d 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -41,6 +41,8 @@ function set_initial_condition!(model, amplitude) return nothing end +destantiate(::Center) = Center + function stable_diffusion!(model, amplitude, diffusivity) set_diffusivity!(model, diffusivity) set_initial_condition!(model, amplitude) @@ -48,7 +50,7 @@ function stable_diffusion!(model, amplitude, diffusivity) # Do time-stepping Nx, Ny, Nz = size(model.grid) κ_max = maximum_diffusivity - Δz = minimum_zspacing(model.grid) + Δz = 2π / Nz Δt = 1e-1 * Δz^2 / κ_max model.clock.time = 0 From 851d1a286712f6b1e63cb850417c04a39c6b5c3d Mon Sep 17 00:00:00 2001 From: jlk9 Date: Fri, 16 Feb 2024 15:19:36 -0600 Subject: [PATCH 12/37] Removed runTimeActivity and compute_sparams (still need LooseTypeAnalysis) --- test/test_enzyme.jl | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index be7cfdee6d..2873ffc3a2 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -8,11 +8,9 @@ using Oceananigans.Models.HydrostaticFreeSurfaceModels: tracernames using Enzyme # Required presently -Enzyme.API.runtimeActivity!(true) Enzyme.API.looseTypeAnalysis!(true) Enzyme.EnzymeRules.inactive_type(::Type{<:Oceananigans.Grids.AbstractGrid}) = true Enzyme.EnzymeRules.inactive_type(::Type{<:Oceananigans.Clock}) = true -Enzyme.EnzymeRules.inactive_noinl(::typeof(Core._compute_sparams), args...) = nothing f(grid) = CenterField(grid) @@ -41,8 +39,6 @@ function set_initial_condition!(model, amplitude) return nothing end -destantiate(::Center) = Center - function stable_diffusion!(model, amplitude, diffusivity) set_diffusivity!(model, diffusivity) set_initial_condition!(model, amplitude) @@ -50,7 +46,7 @@ function stable_diffusion!(model, amplitude, diffusivity) # Do time-stepping Nx, Ny, Nz = size(model.grid) κ_max = maximum_diffusivity - Δz = 2π / Nz + Δz = 1 / Nz Δt = 1e-1 * Δz^2 / κ_max model.clock.time = 0 From cd045578e865231daecb471883615ec39d80850e Mon Sep 17 00:00:00 2001 From: "Navid C. Constantinou" Date: Mon, 19 Feb 2024 16:39:15 +0200 Subject: [PATCH 13/37] remove Enzyme and Test from core deps --- Project.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/Project.toml b/Project.toml index 2fa7383f7e..56a9cf594a 100644 --- a/Project.toml +++ b/Project.toml @@ -11,7 +11,6 @@ CubedSphere = "7445602f-e544-4518-8976-18f8e8ae6cdb" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" -Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" Glob = "c27321d9-0574-5035-807b-f59d2c89b15c" IncompleteLU = "40713840-3770-5561-ab4c-a76e7d0d7895" @@ -35,7 +34,6 @@ SeawaterPolynomials = "d496a93d-167e-4197-9f49-d3af4ff8fe40" SparseArrays = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" StructArrays = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" -Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" [weakdeps] Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" From 498efac90656a360b4f347f5583214443381881c Mon Sep 17 00:00:00 2001 From: "Navid C. Constantinou" Date: Mon, 19 Feb 2024 16:39:33 +0200 Subject: [PATCH 14/37] revert changes in Manifest + resolve deps --- Manifest.toml | 356 ++++++++++++++++++++++---------------------------- 1 file changed, 154 insertions(+), 202 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index 5af8c1e038..395bc6be06 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -1,8 +1,8 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.10.0-rc2" +julia_version = "1.9.4" manifest_format = "2.0" -project_hash = "488a2c2909c1a9300bbfd3ccbc70c83c0f1cc891" +project_hash = "65d4db58758e4c92d22659dfd7d306a6054bc0d0" [[deps.AbstractFFTs]] deps = ["LinearAlgebra"] @@ -20,9 +20,9 @@ version = "1.5.0" [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "cde29ddf7e5726c9fb511f340244ea3481267608" +git-tree-sha1 = "76289dc51920fdc6e0013c872ba9551d54961c24" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.7.2" +version = "3.6.2" weakdeps = ["StaticArrays"] [deps.Adapt.extensions] @@ -34,9 +34,9 @@ version = "1.1.1" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "c5aeb516a84459e0318a02507d2261edad97eb75" +git-tree-sha1 = "f83ec24f76d4c8f525099b2ac475fc098138ec31" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.7.1" +version = "7.4.11" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" @@ -74,14 +74,14 @@ uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" +git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" -version = "1.0.8+1" +version = "1.0.8+0" [[deps.CEnum]] -git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" +git-tree-sha1 = "eb4cb44a499229b3b8426dcfb5dd85333951ff90" uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" -version = "0.5.0" +version = "0.4.2" [[deps.CFTime]] deps = ["Dates", "Printf"] @@ -90,36 +90,32 @@ uuid = "179af706-886a-5703-950a-314cd64e0468" version = "0.1.2" [[deps.CUDA]] -deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LLVMLoopInfo", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "Statistics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "95ac638373ac40e29c1b6d086a3698f5026ff6a6" +deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "Statistics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "f062a48c26ae027f70c44f48f244862aec47bf99" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "5.1.2" +version = "5.0.0" +weakdeps = ["SpecialFunctions"] [deps.CUDA.extensions] - ChainRulesCoreExt = "ChainRulesCore" SpecialFunctionsExt = "SpecialFunctions" - [deps.CUDA.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" - [[deps.CUDA_Driver_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "d01bfc999768f0a31ed36f5d22a76161fc63079c" +git-tree-sha1 = "35a37bb72b35964f2895c12c687ae263b4ac170c" uuid = "4ee394cb-3365-5eb0-8335-949819d2adfc" -version = "0.7.0+1" +version = "0.6.0+3" [[deps.CUDA_Runtime_Discovery]] deps = ["Libdl"] -git-tree-sha1 = "2cb12f6b2209f40a4b8967697689a47c50485490" +git-tree-sha1 = "bcc4a23cbbd99c8535a5318455dcf0f2546ec536" uuid = "1af6417a-86b4-443c-805f-a4643ffb695f" -version = "0.2.3" +version = "0.2.2" [[deps.CUDA_Runtime_jll]] deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "9704e50c9158cf8896c2776b8dbc5edd136caf80" +git-tree-sha1 = "178a606891f82b6d734f0eadd5336b7aad44d5df" uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" -version = "0.10.1+0" +version = "0.9.2+1" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] @@ -140,10 +136,10 @@ uuid = "1fbeeb36-5f17-413c-809b-666fb144f157" version = "0.2.5" [[deps.Compat]] -deps = ["TOML", "UUIDs"] -git-tree-sha1 = "75bd5b6fc5089df449b5d35fa501c846c9b6549b" +deps = ["UUIDs"] +git-tree-sha1 = "8a62af3e248a8c4bad6b32cbbe663ae02275e32c" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.12.0" +version = "4.10.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -152,7 +148,7 @@ weakdeps = ["Dates", "LinearAlgebra"] [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.0.5+1" +version = "1.0.5+0" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] @@ -175,14 +171,14 @@ version = "4.1.1" [[deps.CubedSphere]] deps = ["Elliptic", "FFTW", "Printf", "ProgressBars", "SpecialFunctions", "TaylorSeries", "Test"] -git-tree-sha1 = "10134667d7d3569b191a65801514271b8a93b292" +git-tree-sha1 = "131498c78453d02b4821d8b93f6e44595399f19f" uuid = "7445602f-e544-4518-8976-18f8e8ae6cdb" -version = "0.2.5" +version = "0.2.3" [[deps.DataAPI]] -git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" +git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" -version = "1.16.0" +version = "1.15.0" [[deps.DataFrames]] deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] @@ -192,9 +188,9 @@ version = "1.6.1" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "ac67408d9ddf207de5cfa9a97e114352430f01ed" +git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.16" +version = "0.18.15" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -206,16 +202,16 @@ deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" [[deps.DiskArrays]] -deps = ["LRUCache", "OffsetArrays"] -git-tree-sha1 = "ef25c513cad08d7ebbed158c91768ae32f308336" +deps = ["OffsetArrays"] +git-tree-sha1 = "1bfa9de80f35ac63c6c381b2d43c590875896a1f" uuid = "3c3547ce-8d99-4f5e-a174-61eb10b00ae3" -version = "0.3.23" +version = "0.3.22" [[deps.Distances]] deps = ["LinearAlgebra", "Statistics", "StatsAPI"] -git-tree-sha1 = "66c4c81f259586e8f002eacebc177e1fb06363b0" +git-tree-sha1 = "5225c965635d8c21168e32a12954675e7bea1151" uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" -version = "0.10.11" +version = "0.10.10" [deps.Distances.extensions] DistancesChainRulesCoreExt = "ChainRulesCore" @@ -252,9 +248,9 @@ version = "0.1.10" [[deps.FFTW]] deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] -git-tree-sha1 = "4820348781ae578893311153d69049a93d05f39d" +git-tree-sha1 = "b4fbdd20c889804969571cc589900803edda16b7" uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" -version = "1.8.0" +version = "1.7.1" [[deps.FFTW_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -264,9 +260,9 @@ version = "3.3.10+0" [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] -git-tree-sha1 = "c5c28c245101bd59154f649e19b038d15901b5dc" +git-tree-sha1 = "299dc33549f68299137e51e6d49a13b5b1da9673" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" -version = "1.16.2" +version = "1.16.1" [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" @@ -283,9 +279,9 @@ uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" [[deps.GPUArrays]] deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "85d7fb51afb3def5dcb85ad31c3707795c8bccc1" +git-tree-sha1 = "8ad8f375ae365aa1eb2f42e2565a40b55a4b69a8" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "9.1.0" +version = "9.0.0" [[deps.GPUArraysCore]] deps = ["Adapt"] @@ -295,9 +291,9 @@ version = "0.1.5" [[deps.GPUCompiler]] deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "a846f297ce9d09ccba02ead0cae70690e072a119" +git-tree-sha1 = "5e4487558477f191c043166f8301dd0b4be4e2b2" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.25.0" +version = "0.24.5" [[deps.Glob]] git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" @@ -305,16 +301,10 @@ uuid = "c27321d9-0574-5035-807b-f59d2c89b15c" version = "1.3.1" [[deps.HDF5_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] -git-tree-sha1 = "e4591176488495bf44d7456bd73179d87d5e6eab" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] +git-tree-sha1 = "38c8874692d48d5440d5752d6c74b0c6b0b60739" uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" -version = "1.14.3+1" - -[[deps.Hwloc_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "ca0f6bf568b4bfc807e7537f081c81e35ceca114" -uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" -version = "2.10.0+0" +version = "1.14.2+1" [[deps.IfElse]] git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" @@ -334,10 +324,10 @@ uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" version = "1.4.0" [[deps.IntelOpenMP_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "5fdf2fe6724d8caabf43b557b84ce53f3b7e2f6b" +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "ad37c091f7d7daf900963171600d7c1c5c3ede32" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2024.0.2+0" +version = "2023.2.0+0" [[deps.InteractiveUtils]] deps = ["Markdown"] @@ -355,9 +345,9 @@ version = "0.2.2" [[deps.IterativeSolvers]] deps = ["LinearAlgebra", "Printf", "Random", "RecipesBase", "SparseArrays"] -git-tree-sha1 = "59545b0a2b27208b0650df0a46b8e3019f85055b" +git-tree-sha1 = "1169632f425f79429f245113b775a0e3d121457c" uuid = "42fd0dbc-a981-5370-80f2-aaf504508153" -version = "0.9.4" +version = "0.9.2" [[deps.IteratorInterfaceExtensions]] git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" @@ -365,10 +355,10 @@ uuid = "82899510-4779-5014-852e-03e436cf321d" version = "1.0.0" [[deps.JLD2]] -deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "PrecompileTools", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] -git-tree-sha1 = "5ea6acdd53a51d897672edb694e3cc2912f3f8a7" +deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] +git-tree-sha1 = "c11d691a0dc8e90acfa4740d293ade57f68bfdbb" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.46" +version = "0.4.35" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] @@ -378,15 +368,9 @@ version = "1.5.0" [[deps.JSON3]] deps = ["Dates", "Mmap", "Parsers", "PrecompileTools", "StructTypes", "UUIDs"] -git-tree-sha1 = "eb3edce0ed4fa32f75a0a11217433c31d56bd48b" +git-tree-sha1 = "95220473901735a0f4df9d1ca5b171b568b2daa3" uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" -version = "1.14.0" - - [deps.JSON3.extensions] - JSON3ArrowExt = ["ArrowTypes"] - - [deps.JSON3.weakdeps] - ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" +version = "1.13.2" [[deps.JuliaNVTXCallbacks_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -396,9 +380,9 @@ version = "0.2.1+0" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "4e0cb2f5aad44dcfdc91088e85dee4ecb22c791c" +git-tree-sha1 = "5f1ecfddb6abde48563d08b2cc7e5116ebcd6c27" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.16" +version = "0.9.10" [deps.KernelAbstractions.extensions] EnzymeExt = "EnzymeCore" @@ -407,39 +391,27 @@ version = "0.9.16" EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" [[deps.LLVM]] -deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] -git-tree-sha1 = "9e70165cca7459d25406367f0c55e517a9a7bfe7" +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Printf", "Unicode"] +git-tree-sha1 = "4ea2928a96acfcf8589e6cd1429eff2a3a82c366" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "6.5.0" -weakdeps = ["BFloat16s"] - - [deps.LLVM.extensions] - BFloat16sExt = "BFloat16s" +version = "6.3.0" [[deps.LLVMExtra_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "114e3a48f13d4c18ddd7fd6a00107b4b96f60f9c" +git-tree-sha1 = "e7c01b69bcbcb93fd4cbc3d0fea7d229541e18d2" uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.28+0" - -[[deps.LLVMLoopInfo]] -git-tree-sha1 = "2e5c102cfc41f48ae4740c7eca7743cc7e7b75ea" -uuid = "8b046642-f1f6-4319-8d3c-209ddc03c586" -version = "1.0.0" +version = "0.0.26+0" -[[deps.LRUCache]] -git-tree-sha1 = "b3cc6698599b10e652832c2f23db3cab99d51b59" -uuid = "8ac3fa9e-de4c-5943-b1dc-09c6b5f20637" -version = "1.6.1" -weakdeps = ["Serialization"] - - [deps.LRUCache.extensions] - SerializationExt = ["Serialization"] +[[deps.LLVMOpenMP_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] +git-tree-sha1 = "f689897ccbe049adb19a065c495e75f372ecd42b" +uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" +version = "15.0.4+0" [[deps.LaTeXStrings]] -git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" +git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" -version = "1.3.1" +version = "1.3.0" [[deps.LazyArtifacts]] deps = ["Artifacts", "Pkg"] @@ -456,14 +428,9 @@ uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" version = "8.4.0+0" [[deps.LibGit2]] -deps = ["Base64", "LibGit2_jll", "NetworkOptions", "Printf", "SHA"] +deps = ["Base64", "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" @@ -484,9 +451,9 @@ uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "18144f3e9cbe9b15b070288eef858f71b291ce37" +git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.27" +version = "0.3.26" [deps.LogExpFunctions.extensions] LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" @@ -502,16 +469,16 @@ version = "0.3.27" uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" [[deps.MKL_jll]] -deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] -git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] +git-tree-sha1 = "eb006abbd7041c28e0d16260e50a24f8f9104913" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2024.0.0+0" +version = "2023.2.0+0" [[deps.MPI]] deps = ["Distributed", "DocStringExtensions", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "PkgVersion", "PrecompileTools", "Requires", "Serialization", "Sockets"] -git-tree-sha1 = "4e3136db3735924f96632a5b40a5979f1f53fa07" +git-tree-sha1 = "b4d8707e42b693720b54f0b3434abee6dd4d947a" uuid = "da04e1cc-30fd-572f-bb4f-1f8673147195" -version = "0.20.19" +version = "0.20.16" [deps.MPI.extensions] AMDGPUExt = "AMDGPU" @@ -522,28 +489,28 @@ version = "0.20.19" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" [[deps.MPICH_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "656036b9ed6f942d35e536e249600bc31d0f9df8" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "8a5b4d2220377d1ece13f49438d71ad20cf1ba83" uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" -version = "4.2.0+0" +version = "4.1.2+0" [[deps.MPIPreferences]] deps = ["Libdl", "Preferences"] -git-tree-sha1 = "8f6af051b9e8ec597fa09d8885ed79fd582f33c9" +git-tree-sha1 = "781916a2ebf2841467cda03b6f1af43e23839d85" uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" -version = "0.1.10" +version = "0.1.9" [[deps.MPItrampoline_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "77c3bd69fdb024d75af38713e883d0f249ce19c2" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "6979eccb6a9edbbb62681e158443e79ecc0d056a" uuid = "f1f71cc9-e9ae-5b93-9b94-4fe0e1ad3748" -version = "5.3.2+0" +version = "5.3.1+0" [[deps.MacroTools]] deps = ["Markdown", "Random"] -git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" +git-tree-sha1 = "9ee1618cbf5240e6d4e0371d6f24065083f60c48" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" -version = "0.5.13" +version = "0.5.11" [[deps.Markdown]] deps = ["Base64"] @@ -552,13 +519,13 @@ uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" [[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" -version = "2.28.2+1" +version = "2.28.2+0" [[deps.MicrosoftMPI_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "f12a29c4400ba812841c6ace3f4efbb6dbb3ba01" +git-tree-sha1 = "a7023883872e52bc29bcaac74f19adf39347d2d5" uuid = "9237b28f-5490-5468-be7b-bb81f5f5e6cf" -version = "10.1.4+2" +version = "10.1.4+0" [[deps.Missings]] deps = ["DataAPI"] @@ -571,19 +538,19 @@ uuid = "a63ad114-7e13-5084-954f-fe012c677804" [[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" -version = "2023.1.10" +version = "2022.10.11" [[deps.NCDatasets]] deps = ["CFTime", "CommonDataModel", "DataStructures", "Dates", "DiskArrays", "NetCDF_jll", "NetworkOptions", "Printf"] -git-tree-sha1 = "173a378f357e9bb24b22019efb5e4778223ce8cf" +git-tree-sha1 = "7fcb4378f9c648a186bcb996fa29acc929a179ed" uuid = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" -version = "0.13.2" +version = "0.13.1" [[deps.NVTX]] deps = ["Colors", "JuliaNVTXCallbacks_jll", "Libdl", "NVTX_jll"] -git-tree-sha1 = "53046f0483375e3ed78e49190f1154fa0a4083a1" +git-tree-sha1 = "8bc9ce4233be3c63f8dcd78ccaf1b63a9c0baa34" uuid = "5da4648a-3479-48b8-97b9-01cb529c0a1f" -version = "0.3.4" +version = "0.3.3" [[deps.NVTX_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -602,23 +569,20 @@ uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" [[deps.OffsetArrays]] -git-tree-sha1 = "6a731f2b5c03157418a20c12195eb4b74c8f8621" +deps = ["Adapt"] +git-tree-sha1 = "2ac17d29c523ce1cd38e27785a7d23024853a4bb" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.13.0" -weakdeps = ["Adapt"] - - [deps.OffsetArrays.extensions] - OffsetArraysAdaptExt = "Adapt" +version = "1.12.10" [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.23+2" +version = "0.3.21+4" [[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] uuid = "05823500-19ac-5b8b-9628-191a04bc5112" -version = "0.8.1+2" +version = "0.8.1+0" [[deps.OpenMPI_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] @@ -628,9 +592,9 @@ version = "4.1.6+0" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" +git-tree-sha1 = "ceeda72c9fd6bbebc4f4f598560789145a8b6c4c" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.0.13+0" +version = "3.0.11+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -639,9 +603,9 @@ uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" version = "0.5.5+0" [[deps.OrderedCollections]] -git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" +git-tree-sha1 = "2e73fe17cac3c62ad1aebe70d44c963c3cfdc3e3" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.6.3" +version = "1.6.2" [[deps.PackageExtensionCompat]] git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" @@ -651,15 +615,15 @@ weakdeps = ["Requires", "TOML"] [[deps.Parsers]] deps = ["Dates", "PrecompileTools", "UUIDs"] -git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" +git-tree-sha1 = "716e24b21538abc91f6205fd1d8363f39b442851" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.8.1" +version = "2.7.2" [[deps.PencilArrays]] deps = ["Adapt", "JSON3", "LinearAlgebra", "MPI", "OffsetArrays", "Random", "Reexport", "StaticArrayInterface", "StaticArrays", "StaticPermutations", "Strided", "TimerOutputs", "VersionParsing"] -git-tree-sha1 = "6510e851700a851944f7ffa5cd990cced4802ad2" +git-tree-sha1 = "1a473d028436947e08436275ff3fcc2f3e9c5b06" uuid = "0e08944d-e94e-41b1-9406-dcf66b6a9d2e" -version = "0.19.3" +version = "0.19.2" [deps.PencilArrays.extensions] PencilArraysDiffEqExt = ["DiffEqBase"] @@ -678,7 +642,7 @@ version = "0.15.1" [[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" +version = "1.9.2" [[deps.PkgVersion]] deps = ["Pkg"] @@ -705,10 +669,10 @@ uuid = "21216c6a-2e73-6563-6e65-726566657250" version = "1.4.1" [[deps.PrettyTables]] -deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] -git-tree-sha1 = "88b895d13d53b5577fd53379d913b9ab9ac82660" +deps = ["Crayons", "LaTeXStrings", "Markdown", "Printf", "Reexport", "StringManipulation", "Tables"] +git-tree-sha1 = "ee094908d720185ddbdc58dbe0c1cbe35453ec7a" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "2.3.1" +version = "2.2.7" [[deps.Printf]] deps = ["Unicode"] @@ -722,23 +686,23 @@ version = "1.5.1" [[deps.Quaternions]] deps = ["LinearAlgebra", "Random", "RealDot"] -git-tree-sha1 = "994cc27cdacca10e68feb291673ec3a76aa2fae9" +git-tree-sha1 = "da095158bdc8eaccb7890f9884048555ab771019" uuid = "94ee1d12-ae83-5a48-8b1c-48b8ff168ae0" -version = "0.7.6" +version = "0.7.4" [[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.Random]] -deps = ["SHA"] +deps = ["SHA", "Serialization"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [[deps.Random123]] deps = ["Random", "RandomNumbers"] -git-tree-sha1 = "c860e84651f58ce240dd79e5d9e055d55234c35a" +git-tree-sha1 = "552f30e847641591ba3f39fd1bed559b9deb0ef3" uuid = "74087812-796a-5b5d-8853-05524746bad3" -version = "1.6.2" +version = "1.6.1" [[deps.RandomNumbers]] deps = ["Random", "Requires"] @@ -771,13 +735,9 @@ version = "1.3.0" [[deps.Rotations]] deps = ["LinearAlgebra", "Quaternions", "Random", "StaticArrays"] -git-tree-sha1 = "2a0a5d8569f481ff8840e3b7c84bbf188db6a3fe" +git-tree-sha1 = "0783924e4a332493f72490253ba4e668aeba1d73" uuid = "6038ab10-8711-5258-84ad-4b1120ba62dc" -version = "1.7.0" -weakdeps = ["RecipesBase"] - - [deps.Rotations.extensions] - RotationsRecipesBaseExt = "RecipesBase" +version = "1.6.0" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" @@ -785,9 +745,9 @@ version = "0.7.0" [[deps.Scratch]] deps = ["Dates"] -git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" +git-tree-sha1 = "30449ee12237627992a99d5e30ae63e4d78cd24a" uuid = "6c6a2e73-6563-6170-7368-637461726353" -version = "1.2.1" +version = "1.2.0" [[deps.SeawaterPolynomials]] git-tree-sha1 = "6d85acd6de472f8e6da81c61c7c5b6280a55e0bc" @@ -796,9 +756,9 @@ version = "0.3.4" [[deps.SentinelArrays]] deps = ["Dates", "Random"] -git-tree-sha1 = "0e7508ff27ba32f26cd459474ca2ede1bc10991f" +git-tree-sha1 = "04bdff0b09c65ff3e06a05e3eb7b120223da3d39" uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.4.1" +version = "1.4.0" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" @@ -808,14 +768,13 @@ uuid = "6462fe0b-24de-5631-8697-dd941f90decc" [[deps.SortingAlgorithms]] deps = ["DataStructures"] -git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" +git-tree-sha1 = "c60ec5c62180f27efea3ba2908480f8055e17cee" uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" -version = "1.2.1" +version = "1.1.1" [[deps.SparseArrays]] deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" -version = "1.10.0" [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] @@ -831,15 +790,15 @@ version = "2.3.1" [[deps.Static]] deps = ["IfElse"] -git-tree-sha1 = "d2fdac9ff3906e27f7a618d47b676941baa6c80c" +git-tree-sha1 = "f295e0a1da4ca425659c57441bcb59abb035a4bc" uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" -version = "0.8.10" +version = "0.8.8" [[deps.StaticArrayInterface]] deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] -git-tree-sha1 = "5d66818a39bb04bf328e92bc933ec5b4ee88e436" +git-tree-sha1 = "03fec6800a986d191f64f5c0996b59ed526eda25" uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.5.0" +version = "1.4.1" weakdeps = ["OffsetArrays", "StaticArrays"] [deps.StaticArrayInterface.extensions] @@ -847,19 +806,15 @@ weakdeps = ["OffsetArrays", "StaticArrays"] StaticArrayInterfaceStaticArraysExt = "StaticArrays" [[deps.StaticArrays]] -deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] -git-tree-sha1 = "7b0e9c14c624e435076d19aea1e5cbdec2b9ca37" +deps = ["LinearAlgebra", "Random", "StaticArraysCore"] +git-tree-sha1 = "0adf069a2a490c47273727e029371b31d44b72b2" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.9.2" +version = "1.6.5" +weakdeps = ["Statistics"] [deps.StaticArrays.extensions] - StaticArraysChainRulesCoreExt = "ChainRulesCore" StaticArraysStatisticsExt = "Statistics" - [deps.StaticArrays.weakdeps] - ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" - Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" - [[deps.StaticArraysCore]] git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" @@ -873,7 +828,7 @@ version = "0.3.0" [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" -version = "1.10.0" +version = "1.9.0" [[deps.StatsAPI]] deps = ["LinearAlgebra"] @@ -889,9 +844,9 @@ version = "2.0.4" [[deps.StridedViews]] deps = ["LinearAlgebra", "PackageExtensionCompat"] -git-tree-sha1 = "5b765c4e401693ab08981989f74a36a010aa1d8e" +git-tree-sha1 = "cf857ff7de76f39e5daef6d032e8a74279ddff6a" uuid = "4db3bf67-4bd7-4b4e-b153-31dc3fb37143" -version = "0.2.2" +version = "0.2.1" weakdeps = ["CUDA"] [deps.StridedViews.extensions] @@ -905,9 +860,9 @@ version = "0.3.4" [[deps.StructArrays]] deps = ["Adapt", "ConstructionBase", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] -git-tree-sha1 = "1b0b1205a56dc288b71b1961d48e351520702e24" +git-tree-sha1 = "0a3db38e4cce3c54fe7a71f831cd7b6194a54213" uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" -version = "0.6.17" +version = "0.6.16" [[deps.StructTypes]] deps = ["Dates", "UUIDs"] @@ -922,7 +877,7 @@ uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" [[deps.SuiteSparse_jll]] deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" -version = "7.2.1+1" +version = "5.10.1+6" [[deps.TOML]] deps = ["Dates"] @@ -937,9 +892,9 @@ version = "1.0.1" [[deps.Tables]] deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] -git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" +git-tree-sha1 = "a1f34829d5ac0ef499f6d84428bd6b4c71f02ead" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.11.1" +version = "1.11.0" [[deps.Tar]] deps = ["ArgTools", "SHA"] @@ -948,9 +903,9 @@ version = "1.10.0" [[deps.TaylorSeries]] deps = ["LinearAlgebra", "Markdown", "Requires", "SparseArrays"] -git-tree-sha1 = "1c7170668366821b0c4c4fe03ee78f8d6cf36e2c" +git-tree-sha1 = "50718b4fc1ce20cecf28d85215028c78b4d875c2" uuid = "6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea" -version = "0.16.0" +version = "0.15.2" [deps.TaylorSeries.extensions] TaylorSeriesIAExt = "IntervalArithmetic" @@ -969,18 +924,15 @@ uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" version = "0.5.23" [[deps.TranscodingStreams]] -git-tree-sha1 = "54194d92959d8ebaa8e26227dbe3cdefcdcd594f" +deps = ["Random", "Test"] +git-tree-sha1 = "9a6ae7ed916312b41236fcef7e0af564ef934769" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.10.3" -weakdeps = ["Random", "Test"] - - [deps.TranscodingStreams.extensions] - TestExt = ["Test", "Random"] +version = "0.9.13" [[deps.TupleTools]] -git-tree-sha1 = "41d61b1c545b06279871ef1a4b5fcb2cac2191cd" +git-tree-sha1 = "155515ed4c4236db30049ac1495e2969cc06be9d" uuid = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6" -version = "1.5.0" +version = "1.4.3" [[deps.UUIDs]] deps = ["Random", "SHA"] @@ -1007,14 +959,14 @@ version = "1.3.0" [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "801cbe47eae69adc50f36c3caec4758d2650741b" +git-tree-sha1 = "24b81b59bd35b3c42ab84fa589086e19be919916" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.12.2+0" +version = "2.11.5+0" [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" -version = "1.2.13+1" +version = "1.2.13+0" [[deps.Zstd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -1031,7 +983,7 @@ version = "1.0.6+1" [[deps.libblastrampoline_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" -version = "5.8.0+1" +version = "5.8.0+0" [[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] @@ -1041,4 +993,4 @@ version = "1.52.0+1" [[deps.p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" -version = "17.4.0+2" +version = "17.4.0+0" From b45220743130d80314fef91559d6f816e9a86eec Mon Sep 17 00:00:00 2001 From: jlk9 Date: Mon, 19 Feb 2024 16:30:20 -0600 Subject: [PATCH 15/37] Added updated @test to verify the AD and FD generated derivatives are low --- test/test_enzyme.jl | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index 2873ffc3a2..663421e627 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -162,4 +162,9 @@ end Enzyme computed $dc²_dκ Finite differences computed $dc²_dκ_fd """ + + tol = 0.01 + rel_error = abs(dc²_dκ[1][3] - dc²_dκ_fd) / abs(dc²_dκ_fd) + @test rel_error < tol + end From fc16f9332638777dc3beba1e171413ea65828888 Mon Sep 17 00:00:00 2001 From: jlk9 Date: Mon, 19 Feb 2024 16:38:02 -0600 Subject: [PATCH 16/37] Trying Vararg argument for differentiability without catastrophic performance effects --- ...ute_hydrostatic_free_surface_tendencies.jl | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl b/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl index 447d0efdf3..2a40fd0833 100644 --- a/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl +++ b/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl @@ -122,8 +122,8 @@ function compute_hydrostatic_free_surface_tendency_contributions!(model, kernel_ c_tendency, grid, only_active_cells, - args; - only_active_cells) + args::Vararg{N, T} + only_active_cells) where {N, T}; end end @@ -134,7 +134,7 @@ end ##### Boundary condributions to hydrostatic free surface model ##### -function apply_flux_bcs!(Gcⁿ, c, arch, args) +function apply_flux_bcs!(Gcⁿ, c, arch, args::Vararg{N, T}) where {N, T}; apply_x_bcs!(Gcⁿ, c, arch, args...) apply_y_bcs!(Gcⁿ, c, arch, args...) apply_z_bcs!(Gcⁿ, c, arch, args...) @@ -154,7 +154,7 @@ function compute_free_surface_tendency!(grid, model, kernel_parameters) launch!(arch, grid, kernel_parameters, compute_hydrostatic_free_surface_Gη!, model.timestepper.Gⁿ.η, - grid, args) + grid, args::Vararg{N, T}) where {N, T}; return nothing end @@ -188,13 +188,13 @@ function compute_hydrostatic_momentum_tendencies!(model, velocities, kernel_para for parameters in kernel_parameters launch!(arch, grid, parameters, compute_hydrostatic_free_surface_Gu!, model.timestepper.Gⁿ.u, grid, - only_active_cells, u_kernel_args; - only_active_cells) + only_active_cells, u_kernel_args::Vararg{N, T} + only_active_cells) where {N, T}; launch!(arch, grid, parameters, compute_hydrostatic_free_surface_Gv!, model.timestepper.Gⁿ.v, grid, - only_active_cells, v_kernel_args; - only_active_cells) + only_active_cells, v_kernel_args::Vararg{N, T}; + only_active_cells) where {N, T}; end compute_free_surface_tendency!(grid, model, :xy) @@ -209,15 +209,15 @@ function compute_hydrostatic_boundary_tendency_contributions!(Gⁿ, arch, veloci # Velocity fields for i in (:u, :v) - apply_flux_bcs!(Gⁿ[i], velocities[i], arch, args) + apply_flux_bcs!(Gⁿ[i], velocities[i], arch, args::Vararg{N, T}) where {N, T}; end # Free surface - apply_flux_bcs!(Gⁿ.η, displacement(free_surface), arch, args) + apply_flux_bcs!(Gⁿ.η, displacement(free_surface), arch, args::Vararg{N, T}) where {N, T}; # Tracer fields for i in propertynames(tracers) - apply_flux_bcs!(Gⁿ[i], tracers[i], arch, args) + apply_flux_bcs!(Gⁿ[i], tracers[i], arch, args::Vararg{N, T}) where {N, T}; end return nothing @@ -228,24 +228,24 @@ end ##### """ Calculate the right-hand-side of the u-velocity equation. """ -@kernel function compute_hydrostatic_free_surface_Gu!(Gu, grid, interior_map, args) +@kernel function compute_hydrostatic_free_surface_Gu!(Gu, grid, interior_map, args::Vararg{N, T}) where {N, T}; i, j, k = @index(Global, NTuple) @inbounds Gu[i, j, k] = hydrostatic_free_surface_u_velocity_tendency(i, j, k, grid, args...) end -@kernel function compute_hydrostatic_free_surface_Gu!(Gu, grid::ActiveCellsIBG, ::InteriorMap, args) +@kernel function compute_hydrostatic_free_surface_Gu!(Gu, grid::ActiveCellsIBG, ::InteriorMap, args::Vararg{N, T}) where {N, T}; idx = @index(Global, Linear) i, j, k = active_linear_index_to_interior_tuple(idx, grid) @inbounds Gu[i, j, k] = hydrostatic_free_surface_u_velocity_tendency(i, j, k, grid, args...) end """ Calculate the right-hand-side of the v-velocity equation. """ -@kernel function compute_hydrostatic_free_surface_Gv!(Gv, grid, interior_map, args) +@kernel function compute_hydrostatic_free_surface_Gv!(Gv, grid, interior_map, args::Vararg{N, T}) where {N, T}; i, j, k = @index(Global, NTuple) @inbounds Gv[i, j, k] = hydrostatic_free_surface_v_velocity_tendency(i, j, k, grid, args...) end -@kernel function compute_hydrostatic_free_surface_Gv!(Gv, grid::ActiveCellsIBG, ::InteriorMap, args) +@kernel function compute_hydrostatic_free_surface_Gv!(Gv, grid::ActiveCellsIBG, ::InteriorMap, args::Vararg{N, T}) where {N, T}; idx = @index(Global, Linear) i, j, k = active_linear_index_to_interior_tuple(idx, grid) @inbounds Gv[i, j, k] = hydrostatic_free_surface_v_velocity_tendency(i, j, k, grid, args...) @@ -256,24 +256,24 @@ end ##### """ Calculate the right-hand-side of the tracer advection-diffusion equation. """ -@kernel function compute_hydrostatic_free_surface_Gc!(Gc, grid, interior_map, args) +@kernel function compute_hydrostatic_free_surface_Gc!(Gc, grid, interior_map, args::Vararg{N, T}) where {N, T}; i, j, k = @index(Global, NTuple) @inbounds Gc[i, j, k] = hydrostatic_free_surface_tracer_tendency(i, j, k, grid, args...) end -@kernel function compute_hydrostatic_free_surface_Gc!(Gc, grid::ActiveCellsIBG, ::InteriorMap, args) +@kernel function compute_hydrostatic_free_surface_Gc!(Gc, grid::ActiveCellsIBG, ::InteriorMap, args::Vararg{N, T}) where {N, T}; idx = @index(Global, Linear) i, j, k = active_linear_index_to_interior_tuple(idx, grid) @inbounds Gc[i, j, k] = hydrostatic_free_surface_tracer_tendency(i, j, k, grid, args...) end """ Calculate the right-hand-side of the subgrid scale energy equation. """ -@kernel function compute_hydrostatic_free_surface_Ge!(Ge, grid, interior_map, args) +@kernel function compute_hydrostatic_free_surface_Ge!(Ge, grid, interior_map, args::Vararg{N, T}) where {N, T}; i, j, k = @index(Global, NTuple) @inbounds Ge[i, j, k] = hydrostatic_turbulent_kinetic_energy_tendency(i, j, k, grid, args...) end -@kernel function compute_hydrostatic_free_surface_Ge!(Ge, grid::ActiveCellsIBG, ::InteriorMap, args) +@kernel function compute_hydrostatic_free_surface_Ge!(Ge, grid::ActiveCellsIBG, ::InteriorMap, args::Vararg{N, T}) where {N, T}; idx = @index(Global, Linear) i, j, k = active_linear_index_to_interior_tuple(idx, grid) @inbounds Ge[i, j, k] = hydrostatic_turbulent_kinetic_energy_tendency(i, j, k, grid, args...) @@ -284,7 +284,7 @@ end ##### """ Calculate the right-hand-side of the free surface displacement (``η``) equation. """ -@kernel function compute_hydrostatic_free_surface_Gη!(Gη, grid, args) +@kernel function compute_hydrostatic_free_surface_Gη!(Gη, grid, args::Vararg{N, T}) where {N, T}; i, j = @index(Global, NTuple) @inbounds Gη[i, j, grid.Nz+1] = free_surface_tendency(i, j, grid, args...) end From 7421aa2face75cbf6597bd266fe72e01968ef018 Mon Sep 17 00:00:00 2001 From: jlk9 Date: Mon, 19 Feb 2024 16:50:57 -0600 Subject: [PATCH 17/37] Reverted back to splat operators for the args. This is not intended to be pushed onto main! I'm just setting making sure we have a working test before I try changing to the vararg approach --- ...ute_hydrostatic_free_surface_tendencies.jl | 40 +++++++++---------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl b/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl index 2a40fd0833..9ca6d207fd 100644 --- a/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl +++ b/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl @@ -122,8 +122,8 @@ function compute_hydrostatic_free_surface_tendency_contributions!(model, kernel_ c_tendency, grid, only_active_cells, - args::Vararg{N, T} - only_active_cells) where {N, T}; + args...; + only_active_cells) end end @@ -134,7 +134,7 @@ end ##### Boundary condributions to hydrostatic free surface model ##### -function apply_flux_bcs!(Gcⁿ, c, arch, args::Vararg{N, T}) where {N, T}; +function apply_flux_bcs!(Gcⁿ, c, arch, args...) apply_x_bcs!(Gcⁿ, c, arch, args...) apply_y_bcs!(Gcⁿ, c, arch, args...) apply_z_bcs!(Gcⁿ, c, arch, args...) @@ -154,7 +154,7 @@ function compute_free_surface_tendency!(grid, model, kernel_parameters) launch!(arch, grid, kernel_parameters, compute_hydrostatic_free_surface_Gη!, model.timestepper.Gⁿ.η, - grid, args::Vararg{N, T}) where {N, T}; + grid, args...) return nothing end @@ -188,13 +188,13 @@ function compute_hydrostatic_momentum_tendencies!(model, velocities, kernel_para for parameters in kernel_parameters launch!(arch, grid, parameters, compute_hydrostatic_free_surface_Gu!, model.timestepper.Gⁿ.u, grid, - only_active_cells, u_kernel_args::Vararg{N, T} - only_active_cells) where {N, T}; + only_active_cells, u_kernel_args...; + only_active_cells) launch!(arch, grid, parameters, compute_hydrostatic_free_surface_Gv!, model.timestepper.Gⁿ.v, grid, - only_active_cells, v_kernel_args::Vararg{N, T}; - only_active_cells) where {N, T}; + only_active_cells, v_kernel_args...; + only_active_cells) end compute_free_surface_tendency!(grid, model, :xy) @@ -209,15 +209,15 @@ function compute_hydrostatic_boundary_tendency_contributions!(Gⁿ, arch, veloci # Velocity fields for i in (:u, :v) - apply_flux_bcs!(Gⁿ[i], velocities[i], arch, args::Vararg{N, T}) where {N, T}; + apply_flux_bcs!(Gⁿ[i], velocities[i], arch, args...) end # Free surface - apply_flux_bcs!(Gⁿ.η, displacement(free_surface), arch, args::Vararg{N, T}) where {N, T}; + apply_flux_bcs!(Gⁿ.η, displacement(free_surface), arch, args...) # Tracer fields for i in propertynames(tracers) - apply_flux_bcs!(Gⁿ[i], tracers[i], arch, args::Vararg{N, T}) where {N, T}; + apply_flux_bcs!(Gⁿ[i], tracers[i], arch, args...) end return nothing @@ -228,24 +228,24 @@ end ##### """ Calculate the right-hand-side of the u-velocity equation. """ -@kernel function compute_hydrostatic_free_surface_Gu!(Gu, grid, interior_map, args::Vararg{N, T}) where {N, T}; +@kernel function compute_hydrostatic_free_surface_Gu!(Gu, grid, interior_map, args...) i, j, k = @index(Global, NTuple) @inbounds Gu[i, j, k] = hydrostatic_free_surface_u_velocity_tendency(i, j, k, grid, args...) end -@kernel function compute_hydrostatic_free_surface_Gu!(Gu, grid::ActiveCellsIBG, ::InteriorMap, args::Vararg{N, T}) where {N, T}; +@kernel function compute_hydrostatic_free_surface_Gu!(Gu, grid::ActiveCellsIBG, ::InteriorMap, args...) idx = @index(Global, Linear) i, j, k = active_linear_index_to_interior_tuple(idx, grid) @inbounds Gu[i, j, k] = hydrostatic_free_surface_u_velocity_tendency(i, j, k, grid, args...) end """ Calculate the right-hand-side of the v-velocity equation. """ -@kernel function compute_hydrostatic_free_surface_Gv!(Gv, grid, interior_map, args::Vararg{N, T}) where {N, T}; +@kernel function compute_hydrostatic_free_surface_Gv!(Gv, grid, interior_map, args...) i, j, k = @index(Global, NTuple) @inbounds Gv[i, j, k] = hydrostatic_free_surface_v_velocity_tendency(i, j, k, grid, args...) end -@kernel function compute_hydrostatic_free_surface_Gv!(Gv, grid::ActiveCellsIBG, ::InteriorMap, args::Vararg{N, T}) where {N, T}; +@kernel function compute_hydrostatic_free_surface_Gv!(Gv, grid::ActiveCellsIBG, ::InteriorMap, args...) idx = @index(Global, Linear) i, j, k = active_linear_index_to_interior_tuple(idx, grid) @inbounds Gv[i, j, k] = hydrostatic_free_surface_v_velocity_tendency(i, j, k, grid, args...) @@ -256,24 +256,24 @@ end ##### """ Calculate the right-hand-side of the tracer advection-diffusion equation. """ -@kernel function compute_hydrostatic_free_surface_Gc!(Gc, grid, interior_map, args::Vararg{N, T}) where {N, T}; +@kernel function compute_hydrostatic_free_surface_Gc!(Gc, grid, interior_map, args...) i, j, k = @index(Global, NTuple) @inbounds Gc[i, j, k] = hydrostatic_free_surface_tracer_tendency(i, j, k, grid, args...) end -@kernel function compute_hydrostatic_free_surface_Gc!(Gc, grid::ActiveCellsIBG, ::InteriorMap, args::Vararg{N, T}) where {N, T}; +@kernel function compute_hydrostatic_free_surface_Gc!(Gc, grid::ActiveCellsIBG, ::InteriorMap, args...) idx = @index(Global, Linear) i, j, k = active_linear_index_to_interior_tuple(idx, grid) @inbounds Gc[i, j, k] = hydrostatic_free_surface_tracer_tendency(i, j, k, grid, args...) end """ Calculate the right-hand-side of the subgrid scale energy equation. """ -@kernel function compute_hydrostatic_free_surface_Ge!(Ge, grid, interior_map, args::Vararg{N, T}) where {N, T}; +@kernel function compute_hydrostatic_free_surface_Ge!(Ge, grid, interior_map, args...) i, j, k = @index(Global, NTuple) @inbounds Ge[i, j, k] = hydrostatic_turbulent_kinetic_energy_tendency(i, j, k, grid, args...) end -@kernel function compute_hydrostatic_free_surface_Ge!(Ge, grid::ActiveCellsIBG, ::InteriorMap, args::Vararg{N, T}) where {N, T}; +@kernel function compute_hydrostatic_free_surface_Ge!(Ge, grid::ActiveCellsIBG, ::InteriorMap, args...) idx = @index(Global, Linear) i, j, k = active_linear_index_to_interior_tuple(idx, grid) @inbounds Ge[i, j, k] = hydrostatic_turbulent_kinetic_energy_tendency(i, j, k, grid, args...) @@ -284,7 +284,7 @@ end ##### """ Calculate the right-hand-side of the free surface displacement (``η``) equation. """ -@kernel function compute_hydrostatic_free_surface_Gη!(Gη, grid, args::Vararg{N, T}) where {N, T}; +@kernel function compute_hydrostatic_free_surface_Gη!(Gη, grid, args...) i, j = @index(Global, NTuple) @inbounds Gη[i, j, grid.Nz+1] = free_surface_tendency(i, j, grid, args...) end From e13abd9066a7ea2b4c025662a929cf6fff499c0e Mon Sep 17 00:00:00 2001 From: "Navid C. Constantinou" Date: Tue, 20 Feb 2024 08:52:02 +0200 Subject: [PATCH 18/37] update KernelAbstractions to v0.9.16 --- Manifest.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index 395bc6be06..562ef98710 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -380,9 +380,9 @@ version = "0.2.1+0" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "5f1ecfddb6abde48563d08b2cc7e5116ebcd6c27" +git-tree-sha1 = "4e0cb2f5aad44dcfdc91088e85dee4ecb22c791c" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.10" +version = "0.9.16" [deps.KernelAbstractions.extensions] EnzymeExt = "EnzymeCore" From 63995aed73d8d41c761b29c6d8000accc5277b36 Mon Sep 17 00:00:00 2001 From: jlk9 Date: Wed, 21 Feb 2024 16:01:02 -0600 Subject: [PATCH 19/37] Replaced tuple splats in function declarations in compute_hydrostatic_free_surface_tendencies.jl with use of Varargs --- src/Fields/set!.jl | 4 +++- ...ute_hydrostatic_free_surface_tendencies.jl | 24 +++++++++---------- src/Utils/kernel_launching.jl | 4 ++-- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/src/Fields/set!.jl b/src/Fields/set!.jl index f6e8a8eb78..1a91d97f46 100644 --- a/src/Fields/set!.jl +++ b/src/Fields/set!.jl @@ -41,6 +41,8 @@ function set!(u::Field, f::Function) f_field = field(location(u), f, cpu_grid) # Try to set the FuncitonField to cpu_u + set!(cpu_u, f_field) + #= try set!(cpu_u, f_field) catch err @@ -60,7 +62,7 @@ function set!(u::Field, f::Function) @warn msg throw(err) end - + =# # Transfer data to GPU if u is on the GPU if architecture(u) isa GPU set!(u, cpu_u) diff --git a/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl b/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl index 9ca6d207fd..d3e6eca43b 100644 --- a/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl +++ b/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl @@ -134,7 +134,7 @@ end ##### Boundary condributions to hydrostatic free surface model ##### -function apply_flux_bcs!(Gcⁿ, c, arch, args...) +function apply_flux_bcs!(Gcⁿ, c, arch, args::Vararg{Any, N}) where {N} apply_x_bcs!(Gcⁿ, c, arch, args...) apply_y_bcs!(Gcⁿ, c, arch, args...) apply_z_bcs!(Gcⁿ, c, arch, args...) @@ -188,12 +188,12 @@ function compute_hydrostatic_momentum_tendencies!(model, velocities, kernel_para for parameters in kernel_parameters launch!(arch, grid, parameters, compute_hydrostatic_free_surface_Gu!, model.timestepper.Gⁿ.u, grid, - only_active_cells, u_kernel_args...; + only_active_cells, u_kernel_args; only_active_cells) launch!(arch, grid, parameters, compute_hydrostatic_free_surface_Gv!, model.timestepper.Gⁿ.v, grid, - only_active_cells, v_kernel_args...; + only_active_cells, v_kernel_args; only_active_cells) end @@ -228,24 +228,24 @@ end ##### """ Calculate the right-hand-side of the u-velocity equation. """ -@kernel function compute_hydrostatic_free_surface_Gu!(Gu, grid, interior_map, args...) +@kernel function compute_hydrostatic_free_surface_Gu!(Gu, grid, interior_map, args::Vararg{Any, N}) where {N} i, j, k = @index(Global, NTuple) @inbounds Gu[i, j, k] = hydrostatic_free_surface_u_velocity_tendency(i, j, k, grid, args...) end -@kernel function compute_hydrostatic_free_surface_Gu!(Gu, grid::ActiveCellsIBG, ::InteriorMap, args...) +@kernel function compute_hydrostatic_free_surface_Gu!(Gu, grid::ActiveCellsIBG, ::InteriorMap, args::Vararg{Any, N}) where {N} idx = @index(Global, Linear) i, j, k = active_linear_index_to_interior_tuple(idx, grid) @inbounds Gu[i, j, k] = hydrostatic_free_surface_u_velocity_tendency(i, j, k, grid, args...) end """ Calculate the right-hand-side of the v-velocity equation. """ -@kernel function compute_hydrostatic_free_surface_Gv!(Gv, grid, interior_map, args...) +@kernel function compute_hydrostatic_free_surface_Gv!(Gv, grid, interior_map, args::Vararg{Any, N}) where {N} i, j, k = @index(Global, NTuple) @inbounds Gv[i, j, k] = hydrostatic_free_surface_v_velocity_tendency(i, j, k, grid, args...) end -@kernel function compute_hydrostatic_free_surface_Gv!(Gv, grid::ActiveCellsIBG, ::InteriorMap, args...) +@kernel function compute_hydrostatic_free_surface_Gv!(Gv, grid::ActiveCellsIBG, ::InteriorMap, args::Vararg{Any, N}) where {N} idx = @index(Global, Linear) i, j, k = active_linear_index_to_interior_tuple(idx, grid) @inbounds Gv[i, j, k] = hydrostatic_free_surface_v_velocity_tendency(i, j, k, grid, args...) @@ -256,24 +256,24 @@ end ##### """ Calculate the right-hand-side of the tracer advection-diffusion equation. """ -@kernel function compute_hydrostatic_free_surface_Gc!(Gc, grid, interior_map, args...) +@kernel function compute_hydrostatic_free_surface_Gc!(Gc, grid, interior_map, args::Vararg{Any, N}) where {N} i, j, k = @index(Global, NTuple) @inbounds Gc[i, j, k] = hydrostatic_free_surface_tracer_tendency(i, j, k, grid, args...) end -@kernel function compute_hydrostatic_free_surface_Gc!(Gc, grid::ActiveCellsIBG, ::InteriorMap, args...) +@kernel function compute_hydrostatic_free_surface_Gc!(Gc, grid::ActiveCellsIBG, ::InteriorMap, args::Vararg{Any, N}) where {N} idx = @index(Global, Linear) i, j, k = active_linear_index_to_interior_tuple(idx, grid) @inbounds Gc[i, j, k] = hydrostatic_free_surface_tracer_tendency(i, j, k, grid, args...) end """ Calculate the right-hand-side of the subgrid scale energy equation. """ -@kernel function compute_hydrostatic_free_surface_Ge!(Ge, grid, interior_map, args...) +@kernel function compute_hydrostatic_free_surface_Ge!(Ge, grid, interior_map, args::Vararg{Any, N}) where {N} i, j, k = @index(Global, NTuple) @inbounds Ge[i, j, k] = hydrostatic_turbulent_kinetic_energy_tendency(i, j, k, grid, args...) end -@kernel function compute_hydrostatic_free_surface_Ge!(Ge, grid::ActiveCellsIBG, ::InteriorMap, args...) +@kernel function compute_hydrostatic_free_surface_Ge!(Ge, grid::ActiveCellsIBG, ::InteriorMap, args::Vararg{Any, N}) where {N} idx = @index(Global, Linear) i, j, k = active_linear_index_to_interior_tuple(idx, grid) @inbounds Ge[i, j, k] = hydrostatic_turbulent_kinetic_energy_tendency(i, j, k, grid, args...) @@ -284,7 +284,7 @@ end ##### """ Calculate the right-hand-side of the free surface displacement (``η``) equation. """ -@kernel function compute_hydrostatic_free_surface_Gη!(Gη, grid, args...) +@kernel function compute_hydrostatic_free_surface_Gη!(Gη, grid, args::Vararg{Any, N}) where {N} i, j = @index(Global, NTuple) @inbounds Gη[i, j, grid.Nz+1] = free_surface_tendency(i, j, grid, args...) end diff --git a/src/Utils/kernel_launching.jl b/src/Utils/kernel_launching.jl index 5a2589c5e1..bbd86431f8 100644 --- a/src/Utils/kernel_launching.jl +++ b/src/Utils/kernel_launching.jl @@ -115,12 +115,12 @@ end Launches `kernel!`, with arguments `args` and keyword arguments `kwargs`, over the `dims` of `grid` on the architecture `arch`. kernels run on the default stream """ -function launch!(arch, grid, workspec, kernel!, kernel_args...; +@inline function launch!(arch, grid, workspec, kernel!, kernel_args::Vararg{Any, N}; include_right_boundaries = false, reduced_dimensions = (), location = nothing, only_active_cells = nothing, - kwargs...) + kwargs...) where {N} workgroup, worksize = work_layout(grid, workspec; include_right_boundaries, From cb07dd40dd9e4b6cb8cee64b5d8f6fd8cbbe3659 Mon Sep 17 00:00:00 2001 From: jlk9 Date: Wed, 21 Feb 2024 16:03:12 -0600 Subject: [PATCH 20/37] Reinstated try-catch in set.jl --- src/Fields/set!.jl | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/Fields/set!.jl b/src/Fields/set!.jl index 1a91d97f46..f6e8a8eb78 100644 --- a/src/Fields/set!.jl +++ b/src/Fields/set!.jl @@ -41,8 +41,6 @@ function set!(u::Field, f::Function) f_field = field(location(u), f, cpu_grid) # Try to set the FuncitonField to cpu_u - set!(cpu_u, f_field) - #= try set!(cpu_u, f_field) catch err @@ -62,7 +60,7 @@ function set!(u::Field, f::Function) @warn msg throw(err) end - =# + # Transfer data to GPU if u is on the GPU if architecture(u) isa GPU set!(u, cpu_u) From 44ebc7ad87cbc16a266510246f18b46ec3dda6d1 Mon Sep 17 00:00:00 2001 From: jlk9 Date: Mon, 26 Feb 2024 16:22:49 -0600 Subject: [PATCH 21/37] Added splats to compuation of momentum tendencies --- .../compute_hydrostatic_free_surface_tendencies.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl b/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl index d3e6eca43b..54b97b77b3 100644 --- a/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl +++ b/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl @@ -188,12 +188,12 @@ function compute_hydrostatic_momentum_tendencies!(model, velocities, kernel_para for parameters in kernel_parameters launch!(arch, grid, parameters, compute_hydrostatic_free_surface_Gu!, model.timestepper.Gⁿ.u, grid, - only_active_cells, u_kernel_args; + only_active_cells, u_kernel_args...; only_active_cells) launch!(arch, grid, parameters, compute_hydrostatic_free_surface_Gv!, model.timestepper.Gⁿ.v, grid, - only_active_cells, v_kernel_args; + only_active_cells, v_kernel_args...; only_active_cells) end From a3d9f59eb5e9ad085f2070af8820b2adf2c12334 Mon Sep 17 00:00:00 2001 From: jlk9 Date: Tue, 27 Feb 2024 11:26:46 -0600 Subject: [PATCH 22/37] Let's try CI again --- .../compute_hydrostatic_free_surface_tendencies.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl b/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl index 54b97b77b3..84be8d9ca8 100644 --- a/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl +++ b/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl @@ -283,7 +283,7 @@ end ##### Tendency calculators for an explicit free surface ##### -""" Calculate the right-hand-side of the free surface displacement (``η``) equation. """ +""" Calculate the right-hand-side of the free surface displacement equation. (``η``) """ @kernel function compute_hydrostatic_free_surface_Gη!(Gη, grid, args::Vararg{Any, N}) where {N} i, j = @index(Global, NTuple) @inbounds Gη[i, j, grid.Nz+1] = free_surface_tendency(i, j, grid, args...) From db8de019afd508249200df550cf719c9040280a4 Mon Sep 17 00:00:00 2001 From: jlk9 Date: Mon, 4 Mar 2024 18:43:59 -0600 Subject: [PATCH 23/37] An excuse to test CI again :) --- .../compute_hydrostatic_free_surface_tendencies.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl b/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl index 84be8d9ca8..54b97b77b3 100644 --- a/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl +++ b/src/Models/HydrostaticFreeSurfaceModels/compute_hydrostatic_free_surface_tendencies.jl @@ -283,7 +283,7 @@ end ##### Tendency calculators for an explicit free surface ##### -""" Calculate the right-hand-side of the free surface displacement equation. (``η``) """ +""" Calculate the right-hand-side of the free surface displacement (``η``) equation. """ @kernel function compute_hydrostatic_free_surface_Gη!(Gη, grid, args::Vararg{Any, N}) where {N} i, j = @index(Global, NTuple) @inbounds Gη[i, j, grid.Nz+1] = free_surface_tendency(i, j, grid, args...) From f0df4da958cd9f6e9ea9dd15c9d0d5313fcdbbaa Mon Sep 17 00:00:00 2001 From: jlk9 Date: Mon, 4 Mar 2024 20:25:14 -0600 Subject: [PATCH 24/37] Updated dependencies --- Manifest.toml | 379 +++++++++++++++++++++++++++++--------------------- Project.toml | 3 +- 2 files changed, 220 insertions(+), 162 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index 562ef98710..f20ceb5e9d 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -1,8 +1,8 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.9.4" +julia_version = "1.10.0-rc2" manifest_format = "2.0" -project_hash = "65d4db58758e4c92d22659dfd7d306a6054bc0d0" +project_hash = "b4feb8e6972d21e12dedd479e4b52a7e52746c01" [[deps.AbstractFFTs]] deps = ["LinearAlgebra"] @@ -20,9 +20,9 @@ version = "1.5.0" [[deps.Adapt]] deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "76289dc51920fdc6e0013c872ba9551d54961c24" +git-tree-sha1 = "cde29ddf7e5726c9fb511f340244ea3481267608" uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.6.2" +version = "3.7.2" weakdeps = ["StaticArrays"] [deps.Adapt.extensions] @@ -34,9 +34,9 @@ version = "1.1.1" [[deps.ArrayInterface]] deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "f83ec24f76d4c8f525099b2ac475fc098138ec31" +git-tree-sha1 = "c5aeb516a84459e0318a02507d2261edad97eb75" uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.4.11" +version = "7.7.1" [deps.ArrayInterface.extensions] ArrayInterfaceBandedMatricesExt = "BandedMatrices" @@ -74,48 +74,52 @@ uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" [[deps.Bzip2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "19a35467a82e236ff51bc17a3a44b69ef35185a2" +git-tree-sha1 = "9e2a6b69137e6969bab0152632dcb3bc108c8bdd" uuid = "6e34b625-4abd-537c-b88f-471c36dfa7a0" -version = "1.0.8+0" +version = "1.0.8+1" [[deps.CEnum]] -git-tree-sha1 = "eb4cb44a499229b3b8426dcfb5dd85333951ff90" +git-tree-sha1 = "389ad5c84de1ae7cf0e28e381131c98ea87d54fc" uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" -version = "0.4.2" +version = "0.5.0" [[deps.CFTime]] deps = ["Dates", "Printf"] -git-tree-sha1 = "ed2e76c1c3c43fd9d0cb9248674620b29d71f2d1" +git-tree-sha1 = "5afb5c5ba2688ca43a9ad2e5a91cbb93921ccfa1" uuid = "179af706-886a-5703-950a-314cd64e0468" -version = "0.1.2" +version = "0.1.3" [[deps.CUDA]] -deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "Statistics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "f062a48c26ae027f70c44f48f244862aec47bf99" +deps = ["AbstractFFTs", "Adapt", "BFloat16s", "CEnum", "CUDA_Driver_jll", "CUDA_Runtime_Discovery", "CUDA_Runtime_jll", "Crayons", "DataFrames", "ExprTools", "GPUArrays", "GPUCompiler", "KernelAbstractions", "LLVM", "LLVMLoopInfo", "LazyArtifacts", "Libdl", "LinearAlgebra", "Logging", "NVTX", "Preferences", "PrettyTables", "Printf", "Random", "Random123", "RandomNumbers", "Reexport", "Requires", "SparseArrays", "Statistics", "UnsafeAtomicsLLVM"] +git-tree-sha1 = "95ac638373ac40e29c1b6d086a3698f5026ff6a6" uuid = "052768ef-5323-5732-b1bb-66c8b64840ba" -version = "5.0.0" -weakdeps = ["SpecialFunctions"] +version = "5.1.2" [deps.CUDA.extensions] + ChainRulesCoreExt = "ChainRulesCore" SpecialFunctionsExt = "SpecialFunctions" + [deps.CUDA.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b" + [[deps.CUDA_Driver_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "35a37bb72b35964f2895c12c687ae263b4ac170c" +git-tree-sha1 = "d01bfc999768f0a31ed36f5d22a76161fc63079c" uuid = "4ee394cb-3365-5eb0-8335-949819d2adfc" -version = "0.6.0+3" +version = "0.7.0+1" [[deps.CUDA_Runtime_Discovery]] deps = ["Libdl"] -git-tree-sha1 = "bcc4a23cbbd99c8535a5318455dcf0f2546ec536" +git-tree-sha1 = "2cb12f6b2209f40a4b8967697689a47c50485490" uuid = "1af6417a-86b4-443c-805f-a4643ffb695f" -version = "0.2.2" +version = "0.2.3" [[deps.CUDA_Runtime_jll]] deps = ["Artifacts", "CUDA_Driver_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "178a606891f82b6d734f0eadd5336b7aad44d5df" +git-tree-sha1 = "9704e50c9158cf8896c2776b8dbc5edd136caf80" uuid = "76a88914-d11a-5bdc-97e0-2f5a05c973a2" -version = "0.9.2+1" +version = "0.10.1+0" [[deps.ColorTypes]] deps = ["FixedPointNumbers", "Random"] @@ -136,10 +140,10 @@ uuid = "1fbeeb36-5f17-413c-809b-666fb144f157" version = "0.2.5" [[deps.Compat]] -deps = ["UUIDs"] -git-tree-sha1 = "8a62af3e248a8c4bad6b32cbbe663ae02275e32c" +deps = ["TOML", "UUIDs"] +git-tree-sha1 = "c955881e3c981181362ae4088b35995446298b80" uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.10.0" +version = "4.14.0" weakdeps = ["Dates", "LinearAlgebra"] [deps.Compat.extensions] @@ -148,7 +152,7 @@ weakdeps = ["Dates", "LinearAlgebra"] [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.0.5+0" +version = "1.0.5+1" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] @@ -171,14 +175,14 @@ version = "4.1.1" [[deps.CubedSphere]] deps = ["Elliptic", "FFTW", "Printf", "ProgressBars", "SpecialFunctions", "TaylorSeries", "Test"] -git-tree-sha1 = "131498c78453d02b4821d8b93f6e44595399f19f" +git-tree-sha1 = "10134667d7d3569b191a65801514271b8a93b292" uuid = "7445602f-e544-4518-8976-18f8e8ae6cdb" -version = "0.2.3" +version = "0.2.5" [[deps.DataAPI]] -git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" +git-tree-sha1 = "abe83f3a2f1b857aac70ef8b269080af17764bbe" uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" -version = "1.15.0" +version = "1.16.0" [[deps.DataFrames]] deps = ["Compat", "DataAPI", "DataStructures", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrecompileTools", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] @@ -188,9 +192,9 @@ version = "1.6.1" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "3dbd312d370723b6bb43ba9d02fc36abade4518d" +git-tree-sha1 = "1fb174f0d48fe7d142e1109a10636bc1d14f5ac2" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.15" +version = "0.18.17" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -202,16 +206,16 @@ deps = ["Printf"] uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" [[deps.DiskArrays]] -deps = ["OffsetArrays"] -git-tree-sha1 = "1bfa9de80f35ac63c6c381b2d43c590875896a1f" +deps = ["LRUCache", "OffsetArrays"] +git-tree-sha1 = "ef25c513cad08d7ebbed158c91768ae32f308336" uuid = "3c3547ce-8d99-4f5e-a174-61eb10b00ae3" -version = "0.3.22" +version = "0.3.23" [[deps.Distances]] deps = ["LinearAlgebra", "Statistics", "StatsAPI"] -git-tree-sha1 = "5225c965635d8c21168e32a12954675e7bea1151" +git-tree-sha1 = "66c4c81f259586e8f002eacebc177e1fb06363b0" uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" -version = "0.10.10" +version = "0.10.11" [deps.Distances.extensions] DistancesChainRulesCoreExt = "ChainRulesCore" @@ -248,9 +252,9 @@ version = "0.1.10" [[deps.FFTW]] deps = ["AbstractFFTs", "FFTW_jll", "LinearAlgebra", "MKL_jll", "Preferences", "Reexport"] -git-tree-sha1 = "b4fbdd20c889804969571cc589900803edda16b7" +git-tree-sha1 = "4820348781ae578893311153d69049a93d05f39d" uuid = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" -version = "1.7.1" +version = "1.8.0" [[deps.FFTW_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -260,9 +264,9 @@ version = "3.3.10+0" [[deps.FileIO]] deps = ["Pkg", "Requires", "UUIDs"] -git-tree-sha1 = "299dc33549f68299137e51e6d49a13b5b1da9673" +git-tree-sha1 = "c5c28c245101bd59154f649e19b038d15901b5dc" uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" -version = "1.16.1" +version = "1.16.2" [[deps.FileWatching]] uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" @@ -279,9 +283,9 @@ uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" [[deps.GPUArrays]] deps = ["Adapt", "GPUArraysCore", "LLVM", "LinearAlgebra", "Printf", "Random", "Reexport", "Serialization", "Statistics"] -git-tree-sha1 = "8ad8f375ae365aa1eb2f42e2565a40b55a4b69a8" +git-tree-sha1 = "85d7fb51afb3def5dcb85ad31c3707795c8bccc1" uuid = "0c68f7d7-f131-5f86-a1c3-88cf8149b2d7" -version = "9.0.0" +version = "9.1.0" [[deps.GPUArraysCore]] deps = ["Adapt"] @@ -291,9 +295,9 @@ version = "0.1.5" [[deps.GPUCompiler]] deps = ["ExprTools", "InteractiveUtils", "LLVM", "Libdl", "Logging", "Scratch", "TimerOutputs", "UUIDs"] -git-tree-sha1 = "5e4487558477f191c043166f8301dd0b4be4e2b2" +git-tree-sha1 = "a846f297ce9d09ccba02ead0cae70690e072a119" uuid = "61eb1bfa-7361-4325-ad38-22787b887f55" -version = "0.24.5" +version = "0.25.0" [[deps.Glob]] git-tree-sha1 = "97285bbd5230dd766e9ef6749b80fc617126d496" @@ -301,10 +305,16 @@ uuid = "c27321d9-0574-5035-807b-f59d2c89b15c" version = "1.3.1" [[deps.HDF5_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LLVMOpenMP_jll", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] -git-tree-sha1 = "38c8874692d48d5440d5752d6c74b0c6b0b60739" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "LibCURL_jll", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "OpenSSL_jll", "TOML", "Zlib_jll", "libaec_jll"] +git-tree-sha1 = "e4591176488495bf44d7456bd73179d87d5e6eab" uuid = "0234f1f7-429e-5d53-9886-15a909be8d59" -version = "1.14.2+1" +version = "1.14.3+1" + +[[deps.Hwloc_jll]] +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "ca0f6bf568b4bfc807e7537f081c81e35ceca114" +uuid = "e33a78d0-f292-5ffc-b300-72abe9b543c8" +version = "2.10.0+0" [[deps.IfElse]] git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" @@ -324,10 +334,10 @@ uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" version = "1.4.0" [[deps.IntelOpenMP_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "ad37c091f7d7daf900963171600d7c1c5c3ede32" +deps = ["Artifacts", "JLLWrappers", "Libdl"] +git-tree-sha1 = "5fdf2fe6724d8caabf43b557b84ce53f3b7e2f6b" uuid = "1d5cc7b8-4909-519e-a0f8-d0f5ad9712d0" -version = "2023.2.0+0" +version = "2024.0.2+0" [[deps.InteractiveUtils]] deps = ["Markdown"] @@ -345,9 +355,9 @@ version = "0.2.2" [[deps.IterativeSolvers]] deps = ["LinearAlgebra", "Printf", "Random", "RecipesBase", "SparseArrays"] -git-tree-sha1 = "1169632f425f79429f245113b775a0e3d121457c" +git-tree-sha1 = "59545b0a2b27208b0650df0a46b8e3019f85055b" uuid = "42fd0dbc-a981-5370-80f2-aaf504508153" -version = "0.9.2" +version = "0.9.4" [[deps.IteratorInterfaceExtensions]] git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" @@ -355,10 +365,10 @@ uuid = "82899510-4779-5014-852e-03e436cf321d" version = "1.0.0" [[deps.JLD2]] -deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] -git-tree-sha1 = "c11d691a0dc8e90acfa4740d293ade57f68bfdbb" +deps = ["FileIO", "MacroTools", "Mmap", "OrderedCollections", "Pkg", "PrecompileTools", "Printf", "Reexport", "Requires", "TranscodingStreams", "UUIDs"] +git-tree-sha1 = "5ea6acdd53a51d897672edb694e3cc2912f3f8a7" uuid = "033835bb-8acc-5ee8-8aae-3f567f8a3819" -version = "0.4.35" +version = "0.4.46" [[deps.JLLWrappers]] deps = ["Artifacts", "Preferences"] @@ -368,9 +378,15 @@ version = "1.5.0" [[deps.JSON3]] deps = ["Dates", "Mmap", "Parsers", "PrecompileTools", "StructTypes", "UUIDs"] -git-tree-sha1 = "95220473901735a0f4df9d1ca5b171b568b2daa3" +git-tree-sha1 = "eb3edce0ed4fa32f75a0a11217433c31d56bd48b" uuid = "0f8b85d8-7281-11e9-16c2-39a750bddbf1" -version = "1.13.2" +version = "1.14.0" + + [deps.JSON3.extensions] + JSON3ArrowExt = ["ArrowTypes"] + + [deps.JSON3.weakdeps] + ArrowTypes = "31f734f8-188a-4ce0-8406-c8a06bd891cd" [[deps.JuliaNVTXCallbacks_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -380,9 +396,11 @@ version = "0.2.1+0" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "4e0cb2f5aad44dcfdc91088e85dee4ecb22c791c" +git-tree-sha1 = "cd5e5470cf96c491ba5a291855f53f73d8747004" +repo-rev = "wsmoses-patch-1" +repo-url = "https://github.com/JuliaGPU/KernelAbstractions.jl.git" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.16" +version = "0.9.17" [deps.KernelAbstractions.extensions] EnzymeExt = "EnzymeCore" @@ -391,27 +409,39 @@ version = "0.9.16" EnzymeCore = "f151be2c-9106-41f4-ab19-57ee4f262869" [[deps.LLVM]] -deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Printf", "Unicode"] -git-tree-sha1 = "4ea2928a96acfcf8589e6cd1429eff2a3a82c366" +deps = ["CEnum", "LLVMExtra_jll", "Libdl", "Preferences", "Printf", "Requires", "Unicode"] +git-tree-sha1 = "ddab4d40513bce53c8e3157825e245224f74fae7" uuid = "929cbde3-209d-540e-8aea-75f648917ca0" -version = "6.3.0" +version = "6.6.0" +weakdeps = ["BFloat16s"] + + [deps.LLVM.extensions] + BFloat16sExt = "BFloat16s" [[deps.LLVMExtra_jll]] deps = ["Artifacts", "JLLWrappers", "LazyArtifacts", "Libdl", "TOML"] -git-tree-sha1 = "e7c01b69bcbcb93fd4cbc3d0fea7d229541e18d2" +git-tree-sha1 = "88b916503aac4fb7f701bb625cd84ca5dd1677bc" uuid = "dad2f222-ce93-54a1-a47d-0025e8a3acab" -version = "0.0.26+0" +version = "0.0.29+0" -[[deps.LLVMOpenMP_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "f689897ccbe049adb19a065c495e75f372ecd42b" -uuid = "1d63c593-3942-5779-bab2-d838dc0a180e" -version = "15.0.4+0" +[[deps.LLVMLoopInfo]] +git-tree-sha1 = "2e5c102cfc41f48ae4740c7eca7743cc7e7b75ea" +uuid = "8b046642-f1f6-4319-8d3c-209ddc03c586" +version = "1.0.0" + +[[deps.LRUCache]] +git-tree-sha1 = "b3cc6698599b10e652832c2f23db3cab99d51b59" +uuid = "8ac3fa9e-de4c-5943-b1dc-09c6b5f20637" +version = "1.6.1" +weakdeps = ["Serialization"] + + [deps.LRUCache.extensions] + SerializationExt = ["Serialization"] [[deps.LaTeXStrings]] -git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" +git-tree-sha1 = "50901ebc375ed41dbf8058da26f9de442febbbec" uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" -version = "1.3.0" +version = "1.3.1" [[deps.LazyArtifacts]] deps = ["Artifacts", "Pkg"] @@ -428,9 +458,14 @@ uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" version = "8.4.0+0" [[deps.LibGit2]] -deps = ["Base64", "NetworkOptions", "Printf", "SHA"] +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" @@ -451,9 +486,9 @@ uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" [[deps.LogExpFunctions]] deps = ["DocStringExtensions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "7d6dd4e9212aebaeed356de34ccf262a3cd415aa" +git-tree-sha1 = "18144f3e9cbe9b15b070288eef858f71b291ce37" uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.26" +version = "0.3.27" [deps.LogExpFunctions.extensions] LogExpFunctionsChainRulesCoreExt = "ChainRulesCore" @@ -469,16 +504,16 @@ version = "0.3.26" uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" [[deps.MKL_jll]] -deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "Pkg"] -git-tree-sha1 = "eb006abbd7041c28e0d16260e50a24f8f9104913" +deps = ["Artifacts", "IntelOpenMP_jll", "JLLWrappers", "LazyArtifacts", "Libdl"] +git-tree-sha1 = "72dc3cf284559eb8f53aa593fe62cb33f83ed0c0" uuid = "856f044c-d86e-5d09-b602-aeab76dc8ba7" -version = "2023.2.0+0" +version = "2024.0.0+0" [[deps.MPI]] deps = ["Distributed", "DocStringExtensions", "Libdl", "MPICH_jll", "MPIPreferences", "MPItrampoline_jll", "MicrosoftMPI_jll", "OpenMPI_jll", "PkgVersion", "PrecompileTools", "Requires", "Serialization", "Sockets"] -git-tree-sha1 = "b4d8707e42b693720b54f0b3434abee6dd4d947a" +git-tree-sha1 = "4e3136db3735924f96632a5b40a5979f1f53fa07" uuid = "da04e1cc-30fd-572f-bb4f-1f8673147195" -version = "0.20.16" +version = "0.20.19" [deps.MPI.extensions] AMDGPUExt = "AMDGPU" @@ -489,28 +524,28 @@ version = "0.20.16" CUDA = "052768ef-5323-5732-b1bb-66c8b64840ba" [[deps.MPICH_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "8a5b4d2220377d1ece13f49438d71ad20cf1ba83" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "656036b9ed6f942d35e536e249600bc31d0f9df8" uuid = "7cb0a576-ebde-5e09-9194-50597f1243b4" -version = "4.1.2+0" +version = "4.2.0+0" [[deps.MPIPreferences]] deps = ["Libdl", "Preferences"] -git-tree-sha1 = "781916a2ebf2841467cda03b6f1af43e23839d85" +git-tree-sha1 = "8f6af051b9e8ec597fa09d8885ed79fd582f33c9" uuid = "3da0fdf6-3ccc-4f1b-acd9-58baa6c99267" -version = "0.1.9" +version = "0.1.10" [[deps.MPItrampoline_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] -git-tree-sha1 = "6979eccb6a9edbbb62681e158443e79ecc0d056a" +deps = ["Artifacts", "CompilerSupportLibraries_jll", "Hwloc_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] +git-tree-sha1 = "77c3bd69fdb024d75af38713e883d0f249ce19c2" uuid = "f1f71cc9-e9ae-5b93-9b94-4fe0e1ad3748" -version = "5.3.1+0" +version = "5.3.2+0" [[deps.MacroTools]] deps = ["Markdown", "Random"] -git-tree-sha1 = "9ee1618cbf5240e6d4e0371d6f24065083f60c48" +git-tree-sha1 = "2fa9ee3e63fd3a4f7a9a4f4744a52f4856de82df" uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" -version = "0.5.11" +version = "0.5.13" [[deps.Markdown]] deps = ["Base64"] @@ -519,13 +554,13 @@ uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" [[deps.MbedTLS_jll]] deps = ["Artifacts", "Libdl"] uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" -version = "2.28.2+0" +version = "2.28.2+1" [[deps.MicrosoftMPI_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "a7023883872e52bc29bcaac74f19adf39347d2d5" +git-tree-sha1 = "f12a29c4400ba812841c6ace3f4efbb6dbb3ba01" uuid = "9237b28f-5490-5468-be7b-bb81f5f5e6cf" -version = "10.1.4+0" +version = "10.1.4+2" [[deps.Missings]] deps = ["DataAPI"] @@ -538,19 +573,19 @@ uuid = "a63ad114-7e13-5084-954f-fe012c677804" [[deps.MozillaCACerts_jll]] uuid = "14a3606d-f60d-562e-9121-12d972cd8159" -version = "2022.10.11" +version = "2023.1.10" [[deps.NCDatasets]] deps = ["CFTime", "CommonDataModel", "DataStructures", "Dates", "DiskArrays", "NetCDF_jll", "NetworkOptions", "Printf"] -git-tree-sha1 = "7fcb4378f9c648a186bcb996fa29acc929a179ed" +git-tree-sha1 = "173a378f357e9bb24b22019efb5e4778223ce8cf" uuid = "85f8d34a-cbdd-5861-8df4-14fed0d494ab" -version = "0.13.1" +version = "0.13.2" [[deps.NVTX]] deps = ["Colors", "JuliaNVTXCallbacks_jll", "Libdl", "NVTX_jll"] -git-tree-sha1 = "8bc9ce4233be3c63f8dcd78ccaf1b63a9c0baa34" +git-tree-sha1 = "53046f0483375e3ed78e49190f1154fa0a4083a1" uuid = "5da4648a-3479-48b8-97b9-01cb529c0a1f" -version = "0.3.3" +version = "0.3.4" [[deps.NVTX_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] @@ -569,20 +604,23 @@ uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" version = "1.2.0" [[deps.OffsetArrays]] -deps = ["Adapt"] -git-tree-sha1 = "2ac17d29c523ce1cd38e27785a7d23024853a4bb" +git-tree-sha1 = "6a731f2b5c03157418a20c12195eb4b74c8f8621" uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.12.10" +version = "1.13.0" +weakdeps = ["Adapt"] + + [deps.OffsetArrays.extensions] + OffsetArraysAdaptExt = "Adapt" [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.21+4" +version = "0.3.23+2" [[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] uuid = "05823500-19ac-5b8b-9628-191a04bc5112" -version = "0.8.1+0" +version = "0.8.1+2" [[deps.OpenMPI_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "LazyArtifacts", "Libdl", "MPIPreferences", "TOML"] @@ -592,9 +630,9 @@ version = "4.1.6+0" [[deps.OpenSSL_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "ceeda72c9fd6bbebc4f4f598560789145a8b6c4c" +git-tree-sha1 = "60e3045590bd104a16fefb12836c00c0ef8c7f8c" uuid = "458c3c95-2e84-50aa-8efc-19380b2a3a95" -version = "3.0.11+0" +version = "3.0.13+0" [[deps.OpenSpecFun_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] @@ -603,9 +641,9 @@ uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" version = "0.5.5+0" [[deps.OrderedCollections]] -git-tree-sha1 = "2e73fe17cac3c62ad1aebe70d44c963c3cfdc3e3" +git-tree-sha1 = "dfdf5519f235516220579f949664f1bf44e741c5" uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.6.2" +version = "1.6.3" [[deps.PackageExtensionCompat]] git-tree-sha1 = "fb28e33b8a95c4cee25ce296c817d89cc2e53518" @@ -615,15 +653,15 @@ weakdeps = ["Requires", "TOML"] [[deps.Parsers]] deps = ["Dates", "PrecompileTools", "UUIDs"] -git-tree-sha1 = "716e24b21538abc91f6205fd1d8363f39b442851" +git-tree-sha1 = "8489905bcdbcfac64d1daa51ca07c0d8f0283821" uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.7.2" +version = "2.8.1" [[deps.PencilArrays]] deps = ["Adapt", "JSON3", "LinearAlgebra", "MPI", "OffsetArrays", "Random", "Reexport", "StaticArrayInterface", "StaticArrays", "StaticPermutations", "Strided", "TimerOutputs", "VersionParsing"] -git-tree-sha1 = "1a473d028436947e08436275ff3fcc2f3e9c5b06" +git-tree-sha1 = "6510e851700a851944f7ffa5cd990cced4802ad2" uuid = "0e08944d-e94e-41b1-9406-dcf66b6a9d2e" -version = "0.19.2" +version = "0.19.3" [deps.PencilArrays.extensions] PencilArraysDiffEqExt = ["DiffEqBase"] @@ -642,7 +680,7 @@ version = "0.15.1" [[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.9.2" +version = "1.10.0" [[deps.PkgVersion]] deps = ["Pkg"] @@ -664,15 +702,15 @@ version = "1.2.0" [[deps.Preferences]] deps = ["TOML"] -git-tree-sha1 = "00805cd429dcb4870060ff49ef443486c262e38e" +git-tree-sha1 = "9306f6085165d270f7e3db02af26a400d580f5c6" uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.4.1" +version = "1.4.3" [[deps.PrettyTables]] -deps = ["Crayons", "LaTeXStrings", "Markdown", "Printf", "Reexport", "StringManipulation", "Tables"] -git-tree-sha1 = "ee094908d720185ddbdc58dbe0c1cbe35453ec7a" +deps = ["Crayons", "LaTeXStrings", "Markdown", "PrecompileTools", "Printf", "Reexport", "StringManipulation", "Tables"] +git-tree-sha1 = "88b895d13d53b5577fd53379d913b9ab9ac82660" uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "2.2.7" +version = "2.3.1" [[deps.Printf]] deps = ["Unicode"] @@ -686,23 +724,23 @@ version = "1.5.1" [[deps.Quaternions]] deps = ["LinearAlgebra", "Random", "RealDot"] -git-tree-sha1 = "da095158bdc8eaccb7890f9884048555ab771019" +git-tree-sha1 = "994cc27cdacca10e68feb291673ec3a76aa2fae9" uuid = "94ee1d12-ae83-5a48-8b1c-48b8ff168ae0" -version = "0.7.4" +version = "0.7.6" [[deps.REPL]] deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" [[deps.Random]] -deps = ["SHA", "Serialization"] +deps = ["SHA"] uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" [[deps.Random123]] deps = ["Random", "RandomNumbers"] -git-tree-sha1 = "552f30e847641591ba3f39fd1bed559b9deb0ef3" +git-tree-sha1 = "4743b43e5a9c4a2ede372de7061eed81795b12e7" uuid = "74087812-796a-5b5d-8853-05524746bad3" -version = "1.6.1" +version = "1.7.0" [[deps.RandomNumbers]] deps = ["Random", "Requires"] @@ -735,9 +773,13 @@ version = "1.3.0" [[deps.Rotations]] deps = ["LinearAlgebra", "Quaternions", "Random", "StaticArrays"] -git-tree-sha1 = "0783924e4a332493f72490253ba4e668aeba1d73" +git-tree-sha1 = "2a0a5d8569f481ff8840e3b7c84bbf188db6a3fe" uuid = "6038ab10-8711-5258-84ad-4b1120ba62dc" -version = "1.6.0" +version = "1.7.0" +weakdeps = ["RecipesBase"] + + [deps.Rotations.extensions] + RotationsRecipesBaseExt = "RecipesBase" [[deps.SHA]] uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" @@ -745,9 +787,9 @@ version = "0.7.0" [[deps.Scratch]] deps = ["Dates"] -git-tree-sha1 = "30449ee12237627992a99d5e30ae63e4d78cd24a" +git-tree-sha1 = "3bac05bc7e74a75fd9cba4295cde4045d9fe2386" uuid = "6c6a2e73-6563-6170-7368-637461726353" -version = "1.2.0" +version = "1.2.1" [[deps.SeawaterPolynomials]] git-tree-sha1 = "6d85acd6de472f8e6da81c61c7c5b6280a55e0bc" @@ -756,9 +798,9 @@ version = "0.3.4" [[deps.SentinelArrays]] deps = ["Dates", "Random"] -git-tree-sha1 = "04bdff0b09c65ff3e06a05e3eb7b120223da3d39" +git-tree-sha1 = "0e7508ff27ba32f26cd459474ca2ede1bc10991f" uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.4.0" +version = "1.4.1" [[deps.Serialization]] uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" @@ -768,13 +810,14 @@ uuid = "6462fe0b-24de-5631-8697-dd941f90decc" [[deps.SortingAlgorithms]] deps = ["DataStructures"] -git-tree-sha1 = "c60ec5c62180f27efea3ba2908480f8055e17cee" +git-tree-sha1 = "66e0a8e672a0bdfca2c3f5937efb8538b9ddc085" uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" -version = "1.1.1" +version = "1.2.1" [[deps.SparseArrays]] deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" +version = "1.10.0" [[deps.SpecialFunctions]] deps = ["IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] @@ -790,15 +833,15 @@ version = "2.3.1" [[deps.Static]] deps = ["IfElse"] -git-tree-sha1 = "f295e0a1da4ca425659c57441bcb59abb035a4bc" +git-tree-sha1 = "d2fdac9ff3906e27f7a618d47b676941baa6c80c" uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" -version = "0.8.8" +version = "0.8.10" [[deps.StaticArrayInterface]] deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "PrecompileTools", "Requires", "SparseArrays", "Static", "SuiteSparse"] -git-tree-sha1 = "03fec6800a986d191f64f5c0996b59ed526eda25" +git-tree-sha1 = "5d66818a39bb04bf328e92bc933ec5b4ee88e436" uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.4.1" +version = "1.5.0" weakdeps = ["OffsetArrays", "StaticArrays"] [deps.StaticArrayInterface.extensions] @@ -806,15 +849,19 @@ weakdeps = ["OffsetArrays", "StaticArrays"] StaticArrayInterfaceStaticArraysExt = "StaticArrays" [[deps.StaticArrays]] -deps = ["LinearAlgebra", "Random", "StaticArraysCore"] -git-tree-sha1 = "0adf069a2a490c47273727e029371b31d44b72b2" +deps = ["LinearAlgebra", "PrecompileTools", "Random", "StaticArraysCore"] +git-tree-sha1 = "bf074c045d3d5ffd956fa0a461da38a44685d6b2" uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.6.5" -weakdeps = ["Statistics"] +version = "1.9.3" [deps.StaticArrays.extensions] + StaticArraysChainRulesCoreExt = "ChainRulesCore" StaticArraysStatisticsExt = "Statistics" + [deps.StaticArrays.weakdeps] + ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" + Statistics = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" + [[deps.StaticArraysCore]] git-tree-sha1 = "36b3d696ce6366023a0ea192b4cd442268995a0d" uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" @@ -828,7 +875,7 @@ version = "0.3.0" [[deps.Statistics]] deps = ["LinearAlgebra", "SparseArrays"] uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" -version = "1.9.0" +version = "1.10.0" [[deps.StatsAPI]] deps = ["LinearAlgebra"] @@ -844,9 +891,9 @@ version = "2.0.4" [[deps.StridedViews]] deps = ["LinearAlgebra", "PackageExtensionCompat"] -git-tree-sha1 = "cf857ff7de76f39e5daef6d032e8a74279ddff6a" +git-tree-sha1 = "5b765c4e401693ab08981989f74a36a010aa1d8e" uuid = "4db3bf67-4bd7-4b4e-b153-31dc3fb37143" -version = "0.2.1" +version = "0.2.2" weakdeps = ["CUDA"] [deps.StridedViews.extensions] @@ -859,10 +906,17 @@ uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" version = "0.3.4" [[deps.StructArrays]] -deps = ["Adapt", "ConstructionBase", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] -git-tree-sha1 = "0a3db38e4cce3c54fe7a71f831cd7b6194a54213" +deps = ["ConstructionBase", "DataAPI", "Tables"] +git-tree-sha1 = "f4dc295e983502292c4c3f951dbb4e985e35b3be" uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" -version = "0.6.16" +version = "0.6.18" +weakdeps = ["Adapt", "GPUArraysCore", "SparseArrays", "StaticArrays"] + + [deps.StructArrays.extensions] + StructArraysAdaptExt = "Adapt" + StructArraysGPUArraysCoreExt = "GPUArraysCore" + StructArraysSparseArraysExt = "SparseArrays" + StructArraysStaticArraysExt = "StaticArrays" [[deps.StructTypes]] deps = ["Dates", "UUIDs"] @@ -877,7 +931,7 @@ uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" [[deps.SuiteSparse_jll]] deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" -version = "5.10.1+6" +version = "7.2.1+1" [[deps.TOML]] deps = ["Dates"] @@ -892,9 +946,9 @@ version = "1.0.1" [[deps.Tables]] deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits"] -git-tree-sha1 = "a1f34829d5ac0ef499f6d84428bd6b4c71f02ead" +git-tree-sha1 = "cb76cf677714c095e535e3501ac7954732aeea2d" uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.11.0" +version = "1.11.1" [[deps.Tar]] deps = ["ArgTools", "SHA"] @@ -903,9 +957,9 @@ version = "1.10.0" [[deps.TaylorSeries]] deps = ["LinearAlgebra", "Markdown", "Requires", "SparseArrays"] -git-tree-sha1 = "50718b4fc1ce20cecf28d85215028c78b4d875c2" +git-tree-sha1 = "1c7170668366821b0c4c4fe03ee78f8d6cf36e2c" uuid = "6aa5eb33-94cf-58f4-a9d0-e4b2c4fc25ea" -version = "0.15.2" +version = "0.16.0" [deps.TaylorSeries.extensions] TaylorSeriesIAExt = "IntervalArithmetic" @@ -924,15 +978,18 @@ uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" version = "0.5.23" [[deps.TranscodingStreams]] -deps = ["Random", "Test"] -git-tree-sha1 = "9a6ae7ed916312b41236fcef7e0af564ef934769" +git-tree-sha1 = "3caa21522e7efac1ba21834a03734c57b4611c7e" uuid = "3bb67fe8-82b1-5028-8e26-92a6c54297fa" -version = "0.9.13" +version = "0.10.4" +weakdeps = ["Random", "Test"] + + [deps.TranscodingStreams.extensions] + TestExt = ["Test", "Random"] [[deps.TupleTools]] -git-tree-sha1 = "155515ed4c4236db30049ac1495e2969cc06be9d" +git-tree-sha1 = "41d61b1c545b06279871ef1a4b5fcb2cac2191cd" uuid = "9d95972d-f1c8-5527-a6e0-b4b365fa01f6" -version = "1.4.3" +version = "1.5.0" [[deps.UUIDs]] deps = ["Random", "SHA"] @@ -959,14 +1016,14 @@ version = "1.3.0" [[deps.XML2_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl", "Libiconv_jll", "Zlib_jll"] -git-tree-sha1 = "24b81b59bd35b3c42ab84fa589086e19be919916" +git-tree-sha1 = "07e470dabc5a6a4254ffebc29a1b3fc01464e105" uuid = "02c8fc9c-b97f-50b9-bbe4-9be30ff0a78a" -version = "2.11.5+0" +version = "2.12.5+0" [[deps.Zlib_jll]] deps = ["Libdl"] uuid = "83775a58-1f1d-513f-b197-d71354ab007a" -version = "1.2.13+0" +version = "1.2.13+1" [[deps.Zstd_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] @@ -976,14 +1033,14 @@ version = "1.5.5+0" [[deps.libaec_jll]] deps = ["Artifacts", "JLLWrappers", "Libdl"] -git-tree-sha1 = "eddd19a8dea6b139ea97bdc8a0e2667d4b661720" +git-tree-sha1 = "46bf7be2917b59b761247be3f317ddf75e50e997" uuid = "477f73a3-ac25-53e9-8cc3-50b2fa2566f0" -version = "1.0.6+1" +version = "1.1.2+0" [[deps.libblastrampoline_jll]] deps = ["Artifacts", "Libdl"] uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" -version = "5.8.0+0" +version = "5.8.0+1" [[deps.nghttp2_jll]] deps = ["Artifacts", "Libdl"] @@ -993,4 +1050,4 @@ version = "1.52.0+1" [[deps.p7zip_jll]] deps = ["Artifacts", "Libdl"] uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" -version = "17.4.0+0" +version = "17.4.0+2" diff --git a/Project.toml b/Project.toml index 161f23f57b..9514a25505 100644 --- a/Project.toml +++ b/Project.toml @@ -11,6 +11,7 @@ CubedSphere = "7445602f-e544-4518-8976-18f8e8ae6cdb" Dates = "ade2ca70-3891-5945-98fb-dc099432e06a" Distances = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" +Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9" FFTW = "7a1cc6ca-52ef-59f5-83cd-3a7055c09341" Glob = "c27321d9-0574-5035-807b-f59d2c89b15c" IncompleteLU = "40713840-3770-5561-ab4c-a76e7d0d7895" @@ -49,7 +50,7 @@ CubedSphere = "0.1, 0.2" Dates = "1.9" Distances = "0.10" DocStringExtensions = "0.8, 0.9" -Enzyme = "0.11.16" +Enzyme = "0.11.18" FFTW = "1" Glob = "1.3" IncompleteLU = "0.2" From 60e7b211ec2c61d3d4f217e41a8293900fded480 Mon Sep 17 00:00:00 2001 From: jlk9 Date: Tue, 5 Mar 2024 10:12:41 -0600 Subject: [PATCH 25/37] Current versions of packages allow this PR to pass Enzyme tests locally, let's see about CI --- Manifest.toml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index f20ceb5e9d..0acad3a4ff 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -192,9 +192,9 @@ version = "1.6.1" [[deps.DataStructures]] deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "1fb174f0d48fe7d142e1109a10636bc1d14f5ac2" +git-tree-sha1 = "0f4b5d62a88d8f59003e43c25a8a90de9eb76317" uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.17" +version = "0.18.18" [[deps.DataValueInterfaces]] git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" @@ -396,11 +396,9 @@ version = "0.2.1+0" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "cd5e5470cf96c491ba5a291855f53f73d8747004" -repo-rev = "wsmoses-patch-1" -repo-url = "https://github.com/JuliaGPU/KernelAbstractions.jl.git" +git-tree-sha1 = "ed7167240f40e62d97c1f5f7735dea6de3cc5c49" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.17" +version = "0.9.18" [deps.KernelAbstractions.extensions] EnzymeExt = "EnzymeCore" From 5619cc95388eb03c70b7dc914266eb7fa7cb078e Mon Sep 17 00:00:00 2001 From: jlk9 Date: Thu, 4 Apr 2024 15:48:02 -0500 Subject: [PATCH 26/37] Fixed inconsistency between active_cells_map and only_active_cells --- src/Utils/kernel_launching.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Utils/kernel_launching.jl b/src/Utils/kernel_launching.jl index 097a01ac41..61b8d84762 100644 --- a/src/Utils/kernel_launching.jl +++ b/src/Utils/kernel_launching.jl @@ -117,7 +117,7 @@ over the `dims` of `grid` on the architecture `arch`. kernels run on the default include_right_boundaries = false, reduced_dimensions = (), location = nothing, - only_active_cells = nothing, + active_cells_map = nothing, kwargs...) where {N} loop! = configured_kernel(arch, grid, workspec, kernel!; From 6ce27a89dfee938a6d9ac2d9e2fe75697735425d Mon Sep 17 00:00:00 2001 From: jlk9 Date: Fri, 5 Apr 2024 15:56:13 -0500 Subject: [PATCH 27/37] Update Enzyme dependency --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 1fba1bb0d1..7279b76aa2 100644 --- a/Project.toml +++ b/Project.toml @@ -50,7 +50,7 @@ CubedSphere = "0.1, 0.2" Dates = "1.9" Distances = "0.10" DocStringExtensions = "0.8, 0.9" -Enzyme = "0.11.18" +Enzyme = "0.12" FFTW = "1" Glob = "1.3" IncompleteLU = "0.2" From da43d3f6b26090afb6f118464c7fdedd8b7baee5 Mon Sep 17 00:00:00 2001 From: jlk9 Date: Fri, 10 May 2024 12:10:43 -0500 Subject: [PATCH 28/37] Adding test to check for Oceananigans' broadcasted arrays (via KA) breaking with AD --- test/test_enzyme.jl | 83 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index e9b9397d68..60936f7f43 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -23,3 +23,86 @@ f(grid) = CenterField(grid) @test size(primal) == size(shadow) end + +@testset "Test Constructor Any Bug" begin + using Oceananigans.Fields: FunctionField + using Oceananigans: architecture + using KernelAbstractions + + Enzyme.API.runtimeActivity!(true) + Enzyme.API.looseTypeAnalysis!(true) + Enzyme.EnzymeRules.inactive_type(::Type{<:Oceananigans.Grids.AbstractGrid}) = true + Enzyme.EnzymeRules.inactive_type(::Type{<:Oceananigans.Clock}) = true + Enzyme.EnzymeRules.inactive_noinl(::typeof(Core._compute_sparams), args...) = nothing + + Nx = Ny = 64 + Nz = 8 + + x = y = (-π, π) + z = (-0.5, 0.5) + topology = (Periodic, Periodic, Bounded) + + grid = RectilinearGrid(size=(Nx, Ny, Nz); x, y, z, topology) + + model = HydrostaticFreeSurfaceModel(; grid, + tracers = :c, + buoyancy = nothing) + + function set_initial_condition!(model_tracer, amplitude) + # Set initial condition + amplitude = Ref(amplitude) + + # This has a "width" of 0.1 + cᵢ(x, y, z) = amplitude[] + temp = Base.broadcasted(Base.identity, FunctionField((Center, Center, Center), cᵢ, model_tracer.grid)) + + temp = convert(Base.Broadcast.Broadcasted{Nothing}, temp) + grid = model_tracer.grid + arch = architecture(model_tracer) + bc′ = temp + + param = Oceananigans.Utils.KernelParameters(size(model_tracer), map(offset_index, model_tracer.indices)) + Oceananigans.Utils.launch!(arch, grid, param, _broadcast_kernel!, model_tracer, bc′) + + return nothing + end + + @inline offset_index(::Colon) = 0 + @inline offset_index(range::UnitRange) = range[1] - 1 + + @kernel function _broadcast_kernel!(dest, bc) + i, j, k = @index(Global, NTuple) + @inbounds dest[i, j, k] = bc[i, j, k] + end + + model_tracer = model.tracers.c + dmodel_tracer = Enzyme.make_zero(model_tracer) + + amplitude = 1.0 + amplitude = Ref(amplitude) + + # This has a "width" of 0.1 + cᵢ(x, y, z) = amplitude[] + temp = Base.broadcasted(Base.identity, FunctionField((Center, Center, Center), cᵢ, model_tracer.grid)) + + temp = convert(Base.Broadcast.Broadcasted{Nothing}, temp) + grid = model_tracer.grid + arch = architecture(model_tracer) + bc′ = temp + + param = Oceananigans.Utils.KernelParameters(size(model_tracer), map(offset_index, model_tracer.indices)) + Oceananigans.Utils.launch!(arch, grid, param, _broadcast_kernel!, model_tracer, bc′) + + try + autodiff(Enzyme.Reverse, + Oceananigans.Utils.launch!, + Const(arch), + Const(grid), + Const(param), + Const(_broadcast_kernel!), + Duplicated(model_tracer, dmodel_tracer), + Const(bc′)) + catch + @show "Constructor for type 'Any' bug in Enzyme - it is likely something in Julia or KernelAbstractions.jl is causing broadcasted arrays in Oceananigans to break with AD." + +end From 05966366ab10c934fd78bac54de94c20dfa5c7b0 Mon Sep 17 00:00:00 2001 From: William Moses Date: Sat, 11 May 2024 16:31:29 -0700 Subject: [PATCH 29/37] Update test_enzyme.jl --- test/test_enzyme.jl | 113 +++++++++++++++++++++++++++----------------- 1 file changed, 69 insertions(+), 44 deletions(-) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index 60936f7f43..27fb6fd606 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -1,10 +1,14 @@ using Oceananigans using Enzyme +using Oceananigans.Fields: FunctionField +using Oceananigans: architecture +using KernelAbstractions # Required presently Enzyme.API.runtimeActivity!(true) EnzymeRules.inactive_type(::Type{<:Oceananigans.Grids.AbstractGrid}) = true +EnzymeRules.inactive_type(::Type{<:Oceananigans.Clock}) = true f(grid) = CenterField(grid) @@ -24,16 +28,37 @@ f(grid) = CenterField(grid) @test size(primal) == size(shadow) end -@testset "Test Constructor Any Bug" begin - using Oceananigans.Fields: FunctionField - using Oceananigans: architecture - using KernelAbstractions +function set_initial_condition_via_launch!(model_tracer, amplitude) + # Set initial condition + amplitude = Ref(amplitude) + + # This has a "width" of 0.1 + cᵢ(x, y, z) = amplitude[] + temp = Base.broadcasted(Base.identity, FunctionField((Center, Center, Center), cᵢ, model_tracer.grid)) + + temp = convert(Base.Broadcast.Broadcasted{Nothing}, temp) + grid = model_tracer.grid + arch = architecture(model_tracer) + + param = Oceananigans.Utils.KernelParameters(size(model_tracer), map(Oceananigans.Fields.offset_index, model_tracer.indices)) + Oceananigans.Utils.launch!(arch, grid, param, Oceananigans.Fields._broadcast_kernel!, model_tracer, temp) + + return nothing +end + +function set_initial_condition!(model, amplitude) + amplitude = Ref(amplitude) + + # This has a "width" of 0.1 + cᵢ(x, y, z) = amplitude[] * exp(-z^2 / 0.02 - (x^2 + y^2) / 0.05) + set!(model, c=cᵢ) + + return nothing +end + +@testset "Enzyme + Oceananigans Initialization Broadcast Kernel" begin - Enzyme.API.runtimeActivity!(true) Enzyme.API.looseTypeAnalysis!(true) - Enzyme.EnzymeRules.inactive_type(::Type{<:Oceananigans.Grids.AbstractGrid}) = true - Enzyme.EnzymeRules.inactive_type(::Type{<:Oceananigans.Clock}) = true - Enzyme.EnzymeRules.inactive_noinl(::typeof(Core._compute_sparams), args...) = nothing Nx = Ny = 64 Nz = 8 @@ -48,35 +73,7 @@ end tracers = :c, buoyancy = nothing) - function set_initial_condition!(model_tracer, amplitude) - # Set initial condition - amplitude = Ref(amplitude) - - # This has a "width" of 0.1 - cᵢ(x, y, z) = amplitude[] - temp = Base.broadcasted(Base.identity, FunctionField((Center, Center, Center), cᵢ, model_tracer.grid)) - - temp = convert(Base.Broadcast.Broadcasted{Nothing}, temp) - grid = model_tracer.grid - arch = architecture(model_tracer) - bc′ = temp - - param = Oceananigans.Utils.KernelParameters(size(model_tracer), map(offset_index, model_tracer.indices)) - Oceananigans.Utils.launch!(arch, grid, param, _broadcast_kernel!, model_tracer, bc′) - - return nothing - end - - @inline offset_index(::Colon) = 0 - @inline offset_index(range::UnitRange) = range[1] - 1 - - @kernel function _broadcast_kernel!(dest, bc) - i, j, k = @index(Global, NTuple) - @inbounds dest[i, j, k] = bc[i, j, k] - end - model_tracer = model.tracers.c - dmodel_tracer = Enzyme.make_zero(model_tracer) amplitude = 1.0 amplitude = Ref(amplitude) @@ -87,22 +84,50 @@ end temp = convert(Base.Broadcast.Broadcasted{Nothing}, temp) grid = model_tracer.grid - arch = architecture(model_tracer) - bc′ = temp + arch = CPU() - param = Oceananigans.Utils.KernelParameters(size(model_tracer), map(offset_index, model_tracer.indices)) - Oceananigans.Utils.launch!(arch, grid, param, _broadcast_kernel!, model_tracer, bc′) + param = Oceananigans.Utils.KernelParameters(size(model_tracer), map(Oceananigans.Fields.offset_index, model_tracer.indices)) - try + dmodel_tracer = Enzyme.make_zero(model_tracer) + # Test the individual kernel launch + @test try autodiff(Enzyme.Reverse, Oceananigans.Utils.launch!, Const(arch), Const(grid), Const(param), - Const(_broadcast_kernel!), + Const(Oceananigans.Fields._broadcast_kernel!), Duplicated(model_tracer, dmodel_tracer), - Const(bc′)) + Const(temp)) + true catch - @show "Constructor for type 'Any' bug in Enzyme - it is likely something in Julia or KernelAbstractions.jl is causing broadcasted arrays in Oceananigans to break with AD." + @warn "Failed to differentiate Oceananigans.Utils.launch!" + false + end + + # Test out differentiation of the broadcast infrastructure + @test try + autodiff(Enzyme.Reverse, + set_initial_condition_via_launch!, + Duplicated(model_tracer, dmodel_tracer), + Active(1.0)) + true + catch + @warn "Failed to differentiate set_initial_condition_via_launch!" + false + end + + # Test differentiation of the high-level set interface + @test try + autodiff(Enzyme.Reverse, + set_initial_condition!, + Duplicated(model_tracer, dmodel_tracer), + Active(1.0)) + true + catch + @warn "Failed to differentiate set_initial_condition!" + false + end + Enzyme.API.looseTypeAnalysis!(false) end From d4a7a3fefaa1e0a84c3a086560a70b7200a5cb7e Mon Sep 17 00:00:00 2001 From: William Moses Date: Sun, 12 May 2024 14:48:50 -0700 Subject: [PATCH 30/37] Update test_enzyme.jl --- test/test_enzyme.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index 27fb6fd606..a8ca68cf16 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -84,7 +84,7 @@ end temp = convert(Base.Broadcast.Broadcasted{Nothing}, temp) grid = model_tracer.grid - arch = CPU() + arch = architecture(model_tracer) param = Oceananigans.Utils.KernelParameters(size(model_tracer), map(Oceananigans.Fields.offset_index, model_tracer.indices)) From d46d75ec4cc0695e171ddf26d1102b3f9a1e8aae Mon Sep 17 00:00:00 2001 From: William Moses Date: Sun, 12 May 2024 17:43:47 -0700 Subject: [PATCH 31/37] Update test_enzyme.jl --- test/test_enzyme.jl | 25 ++++--------------------- 1 file changed, 4 insertions(+), 21 deletions(-) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index a8ca68cf16..858692b649 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -89,9 +89,9 @@ end param = Oceananigans.Utils.KernelParameters(size(model_tracer), map(Oceananigans.Fields.offset_index, model_tracer.indices)) dmodel_tracer = Enzyme.make_zero(model_tracer) + # Test the individual kernel launch - @test try - autodiff(Enzyme.Reverse, + autodiff(Enzyme.Reverse, Oceananigans.Utils.launch!, Const(arch), Const(grid), @@ -99,35 +99,18 @@ end Const(Oceananigans.Fields._broadcast_kernel!), Duplicated(model_tracer, dmodel_tracer), Const(temp)) - true - catch - @warn "Failed to differentiate Oceananigans.Utils.launch!" - false - end # Test out differentiation of the broadcast infrastructure - @test try - autodiff(Enzyme.Reverse, + autodiff(Enzyme.Reverse, set_initial_condition_via_launch!, Duplicated(model_tracer, dmodel_tracer), Active(1.0)) - true - catch - @warn "Failed to differentiate set_initial_condition_via_launch!" - false - end # Test differentiation of the high-level set interface - @test try - autodiff(Enzyme.Reverse, + autodiff(Enzyme.Reverse, set_initial_condition!, Duplicated(model_tracer, dmodel_tracer), Active(1.0)) - true - catch - @warn "Failed to differentiate set_initial_condition!" - false - end Enzyme.API.looseTypeAnalysis!(false) end From 4cc9796eb7c8541a5965a9d8aee1af20cde3faff Mon Sep 17 00:00:00 2001 From: William Moses Date: Mon, 13 May 2024 11:53:28 -0700 Subject: [PATCH 32/37] Update test_enzyme.jl --- test/test_enzyme.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index 858692b649..cf2f948805 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -107,9 +107,10 @@ end Active(1.0)) # Test differentiation of the high-level set interface + dmodel = Enzyme.make_zero(model) autodiff(Enzyme.Reverse, set_initial_condition!, - Duplicated(model_tracer, dmodel_tracer), + Duplicated(model, dmodel), Active(1.0)) Enzyme.API.looseTypeAnalysis!(false) From 246749d02634f7126539bd9162acac3a6e70dbb2 Mon Sep 17 00:00:00 2001 From: William Moses Date: Mon, 13 May 2024 13:51:17 -0700 Subject: [PATCH 33/37] Update Project.toml --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index 552bfcb4b8..5a2106467d 100644 --- a/Project.toml +++ b/Project.toml @@ -49,7 +49,7 @@ CubedSphere = "0.1, 0.2" Dates = "1.9" Distances = "0.10" DocStringExtensions = "0.8, 0.9" -Enzyme = "0.11.14" +Enzyme = "0.12.5" FFTW = "1" Glob = "1.3" IncompleteLU = "0.2" From fb1bd3821438a3766795a81a79d37f7f5b14d25e Mon Sep 17 00:00:00 2001 From: Gregory Wagner Date: Wed, 15 May 2024 16:35:52 -0600 Subject: [PATCH 34/37] Up KernelAbstractions --- Manifest.toml | 14 +++++++------- Project.toml | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Manifest.toml b/Manifest.toml index d5436d0468..c60b08d101 100644 --- a/Manifest.toml +++ b/Manifest.toml @@ -1,8 +1,8 @@ # This file is machine-generated - editing it directly is not advised -julia_version = "1.10.2" +julia_version = "1.10.0-rc1" manifest_format = "2.0" -project_hash = "04d395caf937b0921325a77873167e8baa293a99" +project_hash = "aeaf0f67a467f08d2890f46e1746ccd3879587cb" [[deps.AbstractFFTs]] deps = ["LinearAlgebra"] @@ -164,7 +164,7 @@ weakdeps = ["Dates", "LinearAlgebra"] [[deps.CompilerSupportLibraries_jll]] deps = ["Artifacts", "Libdl"] uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.1.0+0" +version = "1.0.5+1" [[deps.ConstructionBase]] deps = ["LinearAlgebra"] @@ -419,9 +419,9 @@ version = "0.2.1+0" [[deps.KernelAbstractions]] deps = ["Adapt", "Atomix", "InteractiveUtils", "LinearAlgebra", "MacroTools", "PrecompileTools", "Requires", "SparseArrays", "StaticArrays", "UUIDs", "UnsafeAtomics", "UnsafeAtomicsLLVM"] -git-tree-sha1 = "ed7167240f40e62d97c1f5f7735dea6de3cc5c49" +git-tree-sha1 = "db02395e4c374030c53dc28f3c1d33dec35f7272" uuid = "63c18a36-062a-441e-b654-da1e3ab1ce7c" -version = "0.9.18" +version = "0.9.19" [deps.KernelAbstractions.extensions] EnzymeExt = "EnzymeCore" @@ -648,7 +648,7 @@ weakdeps = ["Adapt"] [[deps.OpenBLAS_jll]] deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.23+4" +version = "0.3.23+2" [[deps.OpenLibm_jll]] deps = ["Artifacts", "Libdl"] @@ -968,7 +968,7 @@ deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" [[deps.SuiteSparse_jll]] -deps = ["Artifacts", "Libdl", "libblastrampoline_jll"] +deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" version = "7.2.1+1" diff --git a/Project.toml b/Project.toml index 5a2106467d..b48c8f87dd 100644 --- a/Project.toml +++ b/Project.toml @@ -56,7 +56,7 @@ IncompleteLU = "0.2" InteractiveUtils = "1.9" IterativeSolvers = "0.9" JLD2 = "0.4" -KernelAbstractions = "0.9" +KernelAbstractions = "0.9.19" LinearAlgebra = "1.9" Logging = "1.9" MPI = "0.16, 0.17, 0.18, 0.19, 0.20" From 112b10f4dcb1c224c8e299128dcbb051c4685840 Mon Sep 17 00:00:00 2001 From: William Moses Date: Thu, 16 May 2024 10:12:18 -0700 Subject: [PATCH 35/37] Update test_enzyme.jl --- test/test_enzyme.jl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/test_enzyme.jl b/test/test_enzyme.jl index cf2f948805..f8bdf33bfe 100644 --- a/test/test_enzyme.jl +++ b/test/test_enzyme.jl @@ -86,6 +86,8 @@ end grid = model_tracer.grid arch = architecture(model_tracer) + if arch == CPU() + param = Oceananigans.Utils.KernelParameters(size(model_tracer), map(Oceananigans.Fields.offset_index, model_tracer.indices)) dmodel_tracer = Enzyme.make_zero(model_tracer) @@ -112,6 +114,7 @@ end set_initial_condition!, Duplicated(model, dmodel), Active(1.0)) + end Enzyme.API.looseTypeAnalysis!(false) end From 9055b5a2e3351b918e66510f789bba4d4c4dc526 Mon Sep 17 00:00:00 2001 From: jlk9 Date: Tue, 21 May 2024 15:57:00 -0500 Subject: [PATCH 36/37] Made a few problematic objects inactive in OceananigansEnzymeExt --- ext/OceananigansEnzymeExt.jl | 1 + src/BoundaryConditions/BoundaryConditions.jl | 2 +- .../set_hydrostatic_free_surface_model.jl | 17 ++--------------- ...date_hydrostatic_free_surface_model_state.jl | 11 ----------- 4 files changed, 4 insertions(+), 27 deletions(-) diff --git a/ext/OceananigansEnzymeExt.jl b/ext/OceananigansEnzymeExt.jl index c3b4954de8..c59a023663 100644 --- a/ext/OceananigansEnzymeExt.jl +++ b/ext/OceananigansEnzymeExt.jl @@ -15,6 +15,7 @@ using Enzyme.EnzymeCore: Active, Const, Duplicated EnzymeCore.EnzymeRules.inactive_noinl(::typeof(Oceananigans.Utils.flatten_reduced_dimensions), x...) = nothing EnzymeCore.EnzymeRules.inactive(::typeof(Oceananigans.Grids.total_size), x...) = nothing +EnzymeCore.EnzymeRules.inactive(::typeof(Oceananigans.BoundaryConditions.parent_size_and_offset), x...) = nothing @inline EnzymeCore.EnzymeRules.inactive_type(v::Type{Oceananigans.Utils.KernelParameters}) = true @inline batch(::Val{1}, ::Type{T}) where T = T diff --git a/src/BoundaryConditions/BoundaryConditions.jl b/src/BoundaryConditions/BoundaryConditions.jl index 13dd9a6e19..ecc53f9d07 100644 --- a/src/BoundaryConditions/BoundaryConditions.jl +++ b/src/BoundaryConditions/BoundaryConditions.jl @@ -8,7 +8,7 @@ export validate_boundary_condition_topology, validate_boundary_condition_architecture, FieldBoundaryConditions, apply_x_bcs!, apply_y_bcs!, apply_z_bcs!, - fill_halo_regions! + fill_halo_regions!, fill_halo_event! using CUDA using KernelAbstractions: @index, @kernel diff --git a/src/Models/HydrostaticFreeSurfaceModels/set_hydrostatic_free_surface_model.jl b/src/Models/HydrostaticFreeSurfaceModels/set_hydrostatic_free_surface_model.jl index 915d0989d8..ff943a693a 100644 --- a/src/Models/HydrostaticFreeSurfaceModels/set_hydrostatic_free_surface_model.jl +++ b/src/Models/HydrostaticFreeSurfaceModels/set_hydrostatic_free_surface_model.jl @@ -46,21 +46,8 @@ model.velocities.u ``` """ @inline function set!(model::HydrostaticFreeSurfaceModel; kwargs...) - for (fldname, value) in kwargs - if fldname ∈ propertynames(model.velocities) - ϕ = getproperty(model.velocities, fldname) - elseif fldname ∈ propertynames(model.tracers) - ϕ = getproperty(model.tracers, fldname) - elseif fldname ∈ propertynames(model.free_surface) - ϕ = getproperty(model.free_surface, fldname) - else - throw(ArgumentError("name $fldname not found in model.velocities, model.tracers, or model.free_surface")) - end - - @apply_regionally set!(ϕ, value) - end - - initialize!(model) + + #initialize!(model) update_state!(model) return nothing diff --git a/src/Models/HydrostaticFreeSurfaceModels/update_hydrostatic_free_surface_model_state.jl b/src/Models/HydrostaticFreeSurfaceModels/update_hydrostatic_free_surface_model_state.jl index f558571eba..024d6ea41b 100644 --- a/src/Models/HydrostaticFreeSurfaceModels/update_hydrostatic_free_surface_model_state.jl +++ b/src/Models/HydrostaticFreeSurfaceModels/update_hydrostatic_free_surface_model_state.jl @@ -34,17 +34,6 @@ function update_state!(model::HydrostaticFreeSurfaceModel, grid, callbacks; comp @apply_regionally update_model_field_time_series!(model, model.clock) fill_halo_regions!(prognostic_fields(model), model.clock, fields(model); async = true) - @apply_regionally replace_horizontal_vector_halos!(model.velocities, model.grid) - @apply_regionally compute_auxiliaries!(model) - - fill_halo_regions!(model.diffusivity_fields; only_local_halos = true) - - [callback(model) for callback in callbacks if callback.callsite isa UpdateStateCallsite] - - update_biogeochemical_state!(model.biogeochemistry, model) - - compute_tendencies && - @apply_regionally compute_tendencies!(model, callbacks) return nothing end From 383cc482835fabbd21c7a1249d1b78f2ee57a02a Mon Sep 17 00:00:00 2001 From: jlk9 Date: Tue, 21 May 2024 16:00:09 -0500 Subject: [PATCH 37/37] Accidentally pushed some bug reductions, undoing those --- src/BoundaryConditions/BoundaryConditions.jl | 2 +- .../set_hydrostatic_free_surface_model.jl | 16 +++++++++++++++- ...pdate_hydrostatic_free_surface_model_state.jl | 11 +++++++++++ 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/BoundaryConditions/BoundaryConditions.jl b/src/BoundaryConditions/BoundaryConditions.jl index ecc53f9d07..13dd9a6e19 100644 --- a/src/BoundaryConditions/BoundaryConditions.jl +++ b/src/BoundaryConditions/BoundaryConditions.jl @@ -8,7 +8,7 @@ export validate_boundary_condition_topology, validate_boundary_condition_architecture, FieldBoundaryConditions, apply_x_bcs!, apply_y_bcs!, apply_z_bcs!, - fill_halo_regions!, fill_halo_event! + fill_halo_regions! using CUDA using KernelAbstractions: @index, @kernel diff --git a/src/Models/HydrostaticFreeSurfaceModels/set_hydrostatic_free_surface_model.jl b/src/Models/HydrostaticFreeSurfaceModels/set_hydrostatic_free_surface_model.jl index ff943a693a..610b5ab600 100644 --- a/src/Models/HydrostaticFreeSurfaceModels/set_hydrostatic_free_surface_model.jl +++ b/src/Models/HydrostaticFreeSurfaceModels/set_hydrostatic_free_surface_model.jl @@ -47,7 +47,21 @@ model.velocities.u """ @inline function set!(model::HydrostaticFreeSurfaceModel; kwargs...) - #initialize!(model) + for (fldname, value) in kwargs + if fldname ∈ propertynames(model.velocities) + ϕ = getproperty(model.velocities, fldname) + elseif fldname ∈ propertynames(model.tracers) + ϕ = getproperty(model.tracers, fldname) + elseif fldname ∈ propertynames(model.free_surface) + ϕ = getproperty(model.free_surface, fldname) + else + throw(ArgumentError("name $fldname not found in model.velocities, model.tracers, or model.free_surface")) + end + + @apply_regionally set!(ϕ, value) + end + + initialize!(model) update_state!(model) return nothing diff --git a/src/Models/HydrostaticFreeSurfaceModels/update_hydrostatic_free_surface_model_state.jl b/src/Models/HydrostaticFreeSurfaceModels/update_hydrostatic_free_surface_model_state.jl index 024d6ea41b..f558571eba 100644 --- a/src/Models/HydrostaticFreeSurfaceModels/update_hydrostatic_free_surface_model_state.jl +++ b/src/Models/HydrostaticFreeSurfaceModels/update_hydrostatic_free_surface_model_state.jl @@ -34,6 +34,17 @@ function update_state!(model::HydrostaticFreeSurfaceModel, grid, callbacks; comp @apply_regionally update_model_field_time_series!(model, model.clock) fill_halo_regions!(prognostic_fields(model), model.clock, fields(model); async = true) + @apply_regionally replace_horizontal_vector_halos!(model.velocities, model.grid) + @apply_regionally compute_auxiliaries!(model) + + fill_halo_regions!(model.diffusivity_fields; only_local_halos = true) + + [callback(model) for callback in callbacks if callback.callsite isa UpdateStateCallsite] + + update_biogeochemical_state!(model.biogeochemistry, model) + + compute_tendencies && + @apply_regionally compute_tendencies!(model, callbacks) return nothing end