"Unsupported dynamic function invocation" problem when I tried to run examples on GPU #2741
zwei961120
started this conversation in
General
Replies: 2 comments 2 replies
-
What happens when you run on Julia 1.6? Version 1.8 isn't officially supported yet. |
Beta Was this translation helpful? Give feedback.
1 reply
-
This might be related to #2709. cc @simone-silvestri |
Beta Was this translation helpful? Give feedback.
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
When I tried to run code "langmuir_turbulence.jl" in example files provided by https://github.com/CliMA/Oceananigans.jl/tree/main/examples on GPU, I met the problem showing that:
ERROR: LoadError: InvalidIRError: compiling kernel #gpu__fill_bottom_and_top_halo!(KernelAbstractions.CompilerMetadata{KernelAbstractions.NDIteration.StaticSize{(32, 32)}, KernelAbstractions.NDIteration.DynamicCheck, Nothing, Nothing, KernelAbstractions.NDIteration.NDRange{2, KernelAbstractions.NDIteration.StaticSize{(2, 2)}, KernelAbstractions.NDIteration.StaticSize{(16, 16)}, Nothing, Nothing}}, NTuple{4, OffsetArrays.OffsetArray{Float64, 3, CUDA.CuDeviceArray{Float64, 3, 1}}}, Tuple{BoundaryCondition{Oceananigans.BoundaryConditions.Flux, Nothing}, BoundaryCondition{Oceananigans.BoundaryConditions.Flux, Nothing}, BoundaryCondition{Oceananigans.BoundaryConditions.Open, Nothing}, BoundaryCondition{Oceananigans.BoundaryConditions.Gradient, Float64}}, Tuple{BoundaryCondition{Oceananigans.BoundaryConditions.Flux, Float64}, BoundaryCondition{Oceananigans.BoundaryConditions.Flux, Nothing}, BoundaryCondition{Oceananigans.BoundaryConditions.Open, Nothing}, BoundaryCondition{Oceananigans.BoundaryConditions.Flux, Float64}}, Tuple{Tuple{Face, Center, Center}, Tuple{Center, Face, Center}, Tuple{Center, Center, Face}, Tuple{Center, Center, Center}}, RectilinearGrid{Float64, Periodic, Periodic, Bounded, Float64, 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}}, OffsetArrays.OffsetVector{Float64, StepRangeLen{Float64, Base.TwicePrecision{Float64}, Base.TwicePrecision{Float64}, Int64}}, Nothing}, NamedTuple{(:time, :iteration, :stage), Tuple{Float64, Int64, Int64}}, NamedTuple{(:u, :v, :w, :b), NTuple{4, OffsetArrays.OffsetArray{Float64, 3, CUDA.CuDeviceArray{Float64, 3, 1}}}}) resulted in invalid LLVM IR Reason: unsupported dynamic function invocation (call to _fill_bottom_halo!(i, j, grid, c, bc::Union{BoundaryCondition{<:Oceananigans.BoundaryConditions.Value}, BoundaryCondition{<:Oceananigans.BoundaryConditions.Gradient}}, loc, args...) in Oceananigans.BoundaryConditions at /.julia/packages/Oceananigans/xjmyS/src/BoundaryConditions/fill_halo_regions_value_gradient.jl:73)
I just modified
grid = RectilinearGrid(size=(32, 32, 32), extent=(128, 128, 64))
togrid = RectilinearGrid(size=(32, 32, 32), extent=(128, 128, 64))
, so as making the code run on GPU. My Oceananigans version is the latest "v0.77.3" , and my Julia version is "v1.8.0". I have browsed the discussions which show the same problems with me (#2527), but the solution does not work and another problem arises if I downgrade my Oceananigans version.Beta Was this translation helpful? Give feedback.
All reactions