Summary
When using DifferentiationInterface.gradient with AutoMooncake() backend on functions that involve SymbolicIndexingInterface operations (like sol[sys.x] symbolic indexing), the tests fail.
Context
This was discovered during the migration from direct AD backend usage to DifferentiationInterface in PR #1206. The following test patterns fail with Mooncake:
- Symbolic indexing gradients:
sol -> sum(sol[lorenz1.x])
- Vector symbolic indexing:
sol -> sum(sum.(sol[[lorenz1.x, lorenz2.x]]))
- Tuple symbolic indexing:
sol -> sum(sum.(collect.(sol[(lorenz1.x, lorenz2.x)])))
- Time series symbolic indexing:
sol -> sum(sum.(sol[[lorenz1.x, lorenz2.x], :]))
- Observable function AD:
sol -> sum(sol[sys.w])
- BatchedInterface AD
Affected Files
test/downstream/adjoints.jl
test/downstream/observables_autodiff.jl
Current Status
Tests are marked as @test_broken in PR #1206 until this is resolved.
Related
This may be related to how Mooncake handles the ChainRules/rrules defined in SymbolicIndexingInterface or SciMLBase's extensions.
Summary
When using
DifferentiationInterface.gradientwithAutoMooncake()backend on functions that involveSymbolicIndexingInterfaceoperations (likesol[sys.x]symbolic indexing), the tests fail.Context
This was discovered during the migration from direct AD backend usage to DifferentiationInterface in PR #1206. The following test patterns fail with Mooncake:
sol -> sum(sol[lorenz1.x])sol -> sum(sum.(sol[[lorenz1.x, lorenz2.x]]))sol -> sum(sum.(collect.(sol[(lorenz1.x, lorenz2.x)])))sol -> sum(sum.(sol[[lorenz1.x, lorenz2.x], :]))sol -> sum(sol[sys.w])Affected Files
test/downstream/adjoints.jltest/downstream/observables_autodiff.jlCurrent Status
Tests are marked as
@test_brokenin PR #1206 until this is resolved.Related
This may be related to how Mooncake handles the ChainRules/rrules defined in SymbolicIndexingInterface or SciMLBase's extensions.