Skip to content

Update Oceananigans to 0.98 (on main, not the registered version)#54

Merged
tomchor merged 8 commits intomainfrom
tc/update-packages
Sep 5, 2025
Merged

Update Oceananigans to 0.98 (on main, not the registered version)#54
tomchor merged 8 commits intomainfrom
tc/update-packages

Conversation

@tomchor
Copy link
Copy Markdown
Owner

@tomchor tomchor commented Sep 2, 2025

This version has some differences for the interface in CliMA/Oceananigans.jl#4687, an important bugfix in CliMA/Oceananigans.jl#4753, soon it'll have significant performance improvements in CliMA/Oceananigans.jl#4706

Closes #53

@tomchor
Copy link
Copy Markdown
Owner Author

tomchor commented Sep 2, 2025

I'm getting this error using a V100 with this new version:

ERROR: LoadError: Failed to compile PTX code (ptxas exited with code 255)
Invocation arguments: --generate-line-info --verbose --gpu-name sm_70 --output-file /glade/derecho/scratch/tomasc/tmp/jl_1ANeFK7oJe.cubin /glade/derecho/scratch/tomasc/tmp/jl_V0TgVSf6JK.ptx
ptxas fatal   : Value 'sm_70' is not defined for option 'gpu-name'
If you think this is a bug, please file an issue and attach /glade/derecho/scratch/tomasc/tmp/jl_V0TgVSf6JK.ptx
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:35
  [2] compile(job::GPUCompiler.CompilerJob)
    @ CUDA /glade/work/tomasc/.julia/packages/CUDA/Wfi8S/src/compiler/compilation.jl:356
  [3] actual_compilation(cache::Dict{Any, CUDA.CuFunction}, src::Core.MethodInstance, world::UInt64, cfg::GPUCompiler.CompilerConfig{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams}, compiler::typeof(CUDA.compile), linker::typeof(CUDA.link))
    @ GPUCompiler /glade/work/tomasc/.julia/packages/GPUCompiler/Ecaql/src/execution.jl:245
  [4] cached_compilation(cache::Dict{Any, CUDA.CuFunction}, src::Core.MethodInstance, cfg::GPUCompiler.CompilerConfig{GPUCompiler.PTXCompilerTarget, CUDA.CUDACompilerParams}, compiler::Function, linker::Function)
    @ GPUCompiler /glade/work/tomasc/.julia/packages/GPUCompiler/Ecaql/src/execution.jl:159
  [5] macro expansion
    @ /glade/work/tomasc/.julia/packages/CUDA/Wfi8S/src/compiler/execution.jl:373 [inlined]
  [6] macro expansion
    @ ./lock.jl:267 [inlined]
  [7] cufunction(f::typeof(CUDA.partial_mapreduce_grid), tt::Type{Tuple{typeof(identity), typeof(min), Float64, CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, CartesianIndices{1, Tuple{Base.OneTo{Int64}}}, Val{true}, CUDA.CuDeviceVector{Float64, 1}, CUDA.CuDeviceVector{Float64, 1}}}; kwargs::@Kwargs{})
    @ CUDA /glade/work/tomasc/.julia/packages/CUDA/Wfi8S/src/compiler/execution.jl:368
  [8] cufunction
    @ /glade/work/tomasc/.julia/packages/CUDA/Wfi8S/src/compiler/execution.jl:365 [inlined]
  [9] macro expansion
    @ /glade/work/tomasc/.julia/packages/CUDA/Wfi8S/src/compiler/execution.jl:112 [inlined]
 [10] mapreducedim!(f::typeof(identity), op::typeof(min), R::CUDA.CuArray{Float64, 1, CUDA.DeviceMemory}, A::CUDA.CuArray{Float64, 1, CUDA.DeviceMemory}; init::Float64)
    @ CUDA /glade/work/tomasc/.julia/packages/CUDA/Wfi8S/src/mapreduce.jl:229
 [11] mapreducedim!
    @ /glade/work/tomasc/.julia/packages/CUDA/Wfi8S/src/mapreduce.jl:169 [inlined]
 [12] _mapreduce(f::typeof(identity), op::typeof(min), As::CUDA.CuArray{Float64, 1, CUDA.DeviceMemory}; dims::Colon, init::Nothing)
    @ GPUArrays /glade/work/tomasc/.julia/packages/GPUArrays/u6tui/src/host/mapreduce.jl:76
 [13] _mapreduce
    @ /glade/work/tomasc/.julia/packages/GPUArrays/u6tui/src/host/mapreduce.jl:33 [inlined]
 [14] mapreduce
    @ /glade/work/tomasc/.julia/packages/GPUArrays/u6tui/src/host/mapreduce.jl:28 [inlined]
 [15] _minimum
    @ ./reducedim.jl:1017 [inlined]
 [16] _minimum
    @ ./reducedim.jl:1016 [inlined]
 [17] minimum
    @ ./reducedim.jl:1012 [inlined]
 [18] coordinate_summary
    @ /glade/work/tomasc/.julia/packages/Oceananigans/6tVZ7/src/Grids/grid_utils.jl:312 [inlined]
 [19] coordinate_summary
    @ /glade/work/tomasc/.julia/packages/Oceananigans/6tVZ7/src/Grids/vertical_discretization.jl:36 [inlined]
 [20] dimension_summary(topo::Bounded, name::String, dom::Tuple{Float64, Float64}, spacing::Oceananigans.Grids.StaticVerticalDiscretization{OffsetArrays.OffsetVector{Float64, CUDA.CuArray{Float64, 1, CUDA.DeviceMemory}}, OffsetArrays.OffsetVector{Float64, CUDA.CuArray{Float64, 1, CUDA.DeviceMemory}}, OffsetArrays.OffsetVector{Float64, CUDA.CuArray{Float64, 1, CUDA.DeviceMemory}}, OffsetArrays.OffsetVector{Float64, CUDA.CuArray{Float64, 1, CUDA.DeviceMemory}}}, pad_domain::Int64)
    @ Oceananigans.Grids /glade/work/tomasc/.julia/packages/Oceananigans/6tVZ7/src/Grids/grid_utils.jl:306
 [21] show(io::IOBuffer, grid::RectilinearGrid{Float64, Bounded, Periodic, Bounded, Oceananigans.Grids.StaticVerticalDiscretization{OffsetArrays.OffsetVector{Float64, CUDA.CuArray{Float64, 1, CUDA.DeviceMemory}}, OffsetArrays.OffsetVector{Float64, CUDA.CuArray{Float64, 1, CUDA.DeviceMemory}}, OffsetArrays.OffsetVector{Float64, CUDA.CuArray{Float64, 1, CUDA.DeviceMemory}}, OffsetArrays.OffsetVector{Float64, CUDA.CuArray{Float64, 1, CUDA.DeviceMemory}}}, Float64, Float64, OffsetArrays.OffsetVector{Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}, OffsetArrays.OffsetVector{Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}, GPU{CUDA.CUDAKernels.CUDABackend}}, withsummary::Bool)
    @ Oceananigans.Grids /glade/work/tomasc/.julia/packages/Oceananigans/6tVZ7/src/Grids/rectilinear_grid.jl:340
 [22] show
    @ /glade/work/tomasc/.julia/packages/Oceananigans/6tVZ7/src/Grids/rectilinear_grid.jl:326 [inlined]
 [23] print(io::IOBuffer, x::RectilinearGrid{Float64, Bounded, Periodic, Bounded, Oceananigans.Grids.StaticVerticalDiscretization{OffsetArrays.OffsetVector{Float64, CUDA.CuArray{Float64, 1, CUDA.DeviceMemory}}, OffsetArrays.OffsetVector{Float64, CUDA.CuArray{Float64, 1, CUDA.DeviceMemory}}, OffsetArrays.OffsetVector{Float64, CUDA.CuArray{Float64, 1, CUDA.DeviceMemory}}, OffsetArrays.OffsetVector{Float64, CUDA.CuArray{Float64, 1, CUDA.DeviceMemory}}}, Float64, Float64, OffsetArrays.OffsetVector{Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}, OffsetArrays.OffsetVector{Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}, GPU{CUDA.CUDAKernels.CUDABackend}})

But apparently no error using an A100...

@tomchor tomchor changed the title Update Oceananigans to 0.98 Update Oceananigans to 0.98 (on main, not the registered version) Sep 2, 2025
@tomchor tomchor merged commit 360029d into main Sep 5, 2025
@tomchor tomchor deleted the tc/update-packages branch October 10, 2025 18:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Scalar indexing error when picking up simulation

1 participant