Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion test/Project.toml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
[deps]
Enzyme = "7da242da-08ed-463a-9acd-ee780be4f1d9"
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e"
ManualNLPModels = "30dfa513-9b2f-4fb3-9796-781eabac1617"
Expand Down
36 changes: 8 additions & 28 deletions test/enzyme.jl
Original file line number Diff line number Diff line change
Expand Up @@ -57,26 +57,6 @@ end

test_autodiff_backend_error()

push!(
ADNLPModels.predefined_backend,
:enzyme_backend => Dict(
:gradient_backend => ADNLPModels.EnzymeReverseADGradient,
:jprod_backend => ADNLPModels.EnzymeReverseADJprod,
:jtprod_backend => ADNLPModels.EnzymeReverseADJtprod,
:hprod_backend => ADNLPModels.EnzymeReverseADHvprod,
:jacobian_backend => ADNLPModels.SparseEnzymeADJacobian,
:hessian_backend => ADNLPModels.SparseEnzymeADHessian,
:ghjvprod_backend => ADNLPModels.ForwardDiffADGHjvprod,
:jprod_residual_backend => ADNLPModels.EnzymeReverseADJprod,
:jtprod_residual_backend => ADNLPModels.EnzymeReverseADJtprod,
:hprod_residual_backend => ADNLPModels.EnzymeReverseADHvprod,
:jacobian_residual_backend => ADNLPModels.SparseEnzymeADJacobian,
:hessian_residual_backend => ADNLPModels.SparseEnzymeADHessian,
),
)

const test_enzyme = true

include("sparse_jacobian.jl")
include("sparse_jacobian_nls.jl")
include("sparse_hessian.jl")
Expand Down Expand Up @@ -124,18 +104,18 @@ include("nls/basic.jl")
include("nlp/nlpmodelstest.jl")
include("nls/nlpmodelstest.jl")

@testset "Basic NLP tests using enzyme_backend" begin
test_autodiff_model("enzyme_backend", backend = :enzyme_backend)
@testset "Basic NLP tests using enzyme" begin
test_autodiff_model("enzyme", backend = :enzyme)
end

@testset "Basic NLS tests using enzyme_backend" begin
autodiff_nls_test("enzyme_backend", backend = :enzyme_backend)
@testset "Basic NLS tests using enzyme" begin
autodiff_nls_test("enzyme", backend = :enzyme)
end

@testset "Checking NLPModelsTest (NLP) tests with enzyme_backend" begin
nlp_nlpmodelstest(:enzyme_backend)
@testset "Checking NLPModelsTest (NLP) tests with enzyme" begin
nlp_nlpmodelstest(:enzyme)
end

@testset "Checking NLPModelsTest (NLS) tests with enzyme_backend" begin
nls_nlpmodelstest(:enzyme_backend)
@testset "Checking NLPModelsTest (NLS) tests with enzyme" begin
nls_nlpmodelstest(:enzyme)
end
2 changes: 1 addition & 1 deletion test/nlp/nlpmodelstest.jl
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ function nlp_nlpmodelstest(backend)
@testset "Check multiple precision" begin
multiple_precision_nlp(nlp_from_T, exclude = [], linear_api = true)
end
if backend != :enzyme && backend != :enzyme_backend
if backend != :enzyme
@testset "Check view subarray" begin
view_subarray_nlp(nlp_ad, exclude = [])
end
Expand Down
2 changes: 1 addition & 1 deletion test/nls/nlpmodelstest.jl
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ function nls_nlpmodelstest(backend)
@testset "Check multiple precision" begin
multiple_precision_nls(nls_from_T, exclude = exclude, linear_api = true)
end
if backend != :enzyme && backend != :enzyme_backend
if backend != :enzyme
@testset "Check view subarray" begin
view_subarray_nls.(nlss, exclude = exclude)
end
Expand Down
11 changes: 1 addition & 10 deletions test/sparse_hessian.jl
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
function sparse_hessian(backend, info, kw)
@testset "Basic Hessian derivative with backend=$(backend) -- $info -- T=$(T)" for T in (
Float32,
Float64,
)
c!(cx, x) = begin
Expand Down Expand Up @@ -33,7 +34,6 @@ function sparse_hessian(backend, info, kw)

# Test also the implementation of the backends
b = nlp.adbackend.hessian_backend
@show b
obj_weight = 0.5
@test nlp.meta.nnzh == ADNLPModels.get_nln_nnzh(b, nvar)
ADNLPModels.hess_structure!(b, nlp, rows, cols)
Expand Down Expand Up @@ -70,17 +70,8 @@ function sparse_hessian(backend, info, kw)
function f(x)
n = length(x)
sum(100 * (x[i + 1] - x[i]^2)^2 + (x[i] - 1)^2 for i = 1:(n - 1))
# res = 0
# n = length(x)
# for i in 1:(n-1)
# res += 100 * (x[i + 1] - x[i]^2)^2 + (x[i] - 1)^2
# end
# res
end
nlp = ADNLPModel(
# x -> sum(100 * (x[i + 1] - x[i]^2)^2 + (x[i] - 1)^2 for i = 1:(n - 1)),
# x -> sum(100 * (x[i + 1] - x[i]^2)^2 + (x[i] - 1)^2 for i = 1:3),
# x -> 100 * (x[2] - x[1]^2)^2 + (x[1] - 1)^2,
f,
x0,
hessian_backend = backend,
Expand Down
Loading