Skip to content

Commit 76d12b5

Browse files
Merge pull request #541 from SciML/gputests2
Update GPU tests
2 parents 4927ad9 + 56d66fa commit 76d12b5

File tree

3 files changed

+17
-14
lines changed

3 files changed

+17
-14
lines changed

test/gpu/sde_weak_adaptive_gpu.jl

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ h1(z) = z^3-6*z^2+8*z
3636

3737
function f1!(du,u,p,t)
3838
@inbounds begin
39-
du[1] = 1//2*u[1]+sqrt(u[1]^2 +1)
39+
du[1] = 5f-1*u[1]+sqrt(u[1]^2 +1)
4040
end
4141
nothing
4242
end
@@ -56,28 +56,29 @@ ensemble_prob1 = EnsembleProblem(prob1;
5656
output_func = output_func,
5757
prob_func = prob_func,
5858
reduction = reduction,
59-
u_init=Vector{eltype(prob1.u0)}([0.0])
59+
u_init=Vector{eltype(prob1.u0)}([0.0]),
60+
safetycopy = false
6061
)
6162

6263

6364
# prob 2
6465
u₀ = [0.1f0,0.1f0]
6566
function f2!(du,u,p,t)
6667
@inbounds begin
67-
du[1] = 3//2*u[1]
68-
du[2] = 3//2*u[2]
68+
du[1] = 1.5f-0*u[1]
69+
du[2] = 1.5f-0*u[2]
6970
end
7071
nothing
7172
end
7273
function g2!(du,u,p,t)
7374
@inbounds begin
74-
du[1] = 1//10*u[1]
75-
du[2] = 1//10*u[2]
75+
du[1] = 1f-1*u[1]
76+
du[2] = 1f-1*u[2]
7677
end
7778
nothing
7879
end
7980

80-
f_true2(t) = 1//10*exp(3//2*t) #1//100*exp(301//100*t)
81+
f_true2(t) = 1f-1*exp(1.5f-1*t) #1//100*exp(301//100*t)
8182

8283
h2(z) = z #z^2
8384

@@ -86,7 +87,8 @@ ensemble_prob2 = EnsembleProblem(prob2;
8687
output_func = (sol,i) -> (h2.(sol),false),
8788
prob_func = prob_func,
8889
reduction = reduction,
89-
u_init=Vector{eltype(prob2.u0)}([0.0, 0.0])
90+
u_init=Vector{eltype(prob2.u0)}([0.0, 0.0]),
91+
safetycopy = false
9092
)
9193

9294

@@ -109,19 +111,19 @@ seeds = rand(UInt, numtraj)
109111
for i in 1:2
110112
@show i
111113

112-
err1 = weak_error(probs[i],DRI1NM(),numtraj,Int(1e4),ftrue[i],tsave,abstol=1f0,reltol=1f0, ensemblealg=EnsembleGPUArray())
114+
err1 = weak_error(probs[i],DRI1NM(),numtraj,Int(1e4),ftrue[i],tsave,abstol=1f0,reltol=1f0, ensemblealg=EnsembleGPUArray(CUDA.CUDABackend()))
113115
@show err1
114-
# err2 = weak_error(probs[i],DRI1NM(),numtraj,Int(1e4),ftrue[i],tsave,abstol=0.1f0,reltol=0.1f0, ensemblealg=EnsembleGPUArray())
116+
# err2 = weak_error(probs[i],DRI1NM(),numtraj,Int(1e4),ftrue[i],tsave,abstol=0.1f0,reltol=0.1f0, ensemblealg=EnsembleGPUArray(CUDA.CUDABackend()))
115117
# @show err2
116-
err3 = weak_error(probs[i],DRI1NM(),numtraj,Int(1e4),ftrue[i],tsave,abstol=0.01f0,reltol=0.01f0, ensemblealg=EnsembleGPUArray())
118+
err3 = weak_error(probs[i],DRI1NM(),numtraj,Int(1e4),ftrue[i],tsave,abstol=0.01f0,reltol=0.01f0, ensemblealg=EnsembleGPUArray(CUDA.CUDABackend()))
117119
@show err3
118120
@test err1 > err3
119121
println("")
120122
end
121123

122124

123125
#
124-
# sol = @time solve(probs[1],DRI1NM(),EnsembleGPUArray(),
126+
# sol = @time solve(probs[1],DRI1NM(),EnsembleGPUArray(CUDA.CUDABackend()),
125127
# dt=0.001f0,adaptive=false,abstol=0.1f0,reltol=0.1f0,
126128
# trajectories=numtraj,batch_size=Int(1e1),
127129
# saveat = tsave

test/gpu/sde_weak_scalar_adaptive_gpu.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,4 +46,4 @@ ensembleprob = EnsembleProblem(prob, prob_func = prob_func)
4646
# CUDAnative.CUDAdrv.@profile
4747
# check either on CPU with EnsembleCPUArray() or on GPU with EnsembleGPUArray()
4848
#@test_nowarn sol = @time solve(ensembleprob,DRI1(),EnsembleCPUArray(),trajectories=numtraj)
49-
sol = @time solve(ensembleprob,DRI1NM(),EnsembleGPUArray(),trajectories=numtraj)
49+
sol = @time solve(ensembleprob,DRI1NM(),EnsembleGPUArray(CUDA.CUDABackend()),trajectories=numtraj)

test/weak_convergence/weak_srockc2.jl

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,12 @@ println("SROCKC2")
2020
@test abs(sim.𝒪est[:weak_final]-2) < 0.35
2121
#@test abs(sim.𝒪est[:weak_l2]-2) < 0.3
2222
#@test abs(sim.𝒪est[:weak_l∞]-2) < 0.3
23+
sim = nothing
2324

2425
prob = prob_sde_linear
2526

2627
println("SROCKC2")
27-
@time sim = test_convergence(dts,prob,SROCKC2(),save_everystep=false,trajectories=Int(1e7))
28+
@time sim = test_convergence(dts,prob,SROCKC2(),save_everystep=false,trajectories=Int(5e6))
2829
@show sim.𝒪est[:weak_final]
2930
@test abs(sim.𝒪est[:weak_final]-2) < 0.35
3031
#@test abs(sim.𝒪est[:weak_l2]-2) < 0.3

0 commit comments

Comments
 (0)