JuliaGPU / Adapt.jl

Other
86 stars 24 forks source link

Inference failure in `adapt` #79

Closed charleskawczynski closed 3 months ago

charleskawczynski commented 4 months ago

Reproducer (GPU resources are required, and @show ClimaComms.device(cspace) should show CUDADevice):

#=
git clone https://github.com/CliMA/ClimaCore.jl
cd ClimaCore.jl/
julia --project=test
using Revise; include("../perf/cuda_adapt_inference.jl")
=#
using Revise
using Cthulhu,BenchmarkTools,CUDA,Adapt, Test,JET
import ClimaCore;
import ClimaComms;
import ClimaCore: Fields, Geometry, Spaces
import Base.Broadcast: broadcasted
FT = Float64;
context = ClimaComms.SingletonCommsContext()
cspace = Spaces.PointSpace(context, Geometry.XPoint(FT(π)))
@show ClimaComms.device(cspace)
ρ = Fields.Field(FT, cspace);
bc = broadcasted(*, 1, broadcasted(+, ρ, 1));
Adapt.adapt(CUDA.KernelAdaptor(), bc.args);

@test_opt ignored_modules = (CUDA,) Adapt.adapt(CUDA.KernelAdaptor(), bc.args);

You may need to have JET/CUDA/Test in your local environment for this reproducer to work.

charleskawczynski commented 3 months ago

Reopened by #80.