Releases: JuliaDiff/DifferentiationInterface.jl
DifferentiationInterface-v0.6.1
What's Changed
Full Changelog: DifferentiationInterface-v0.6.0...DifferentiationInterface-v0.6.1
DifferentiationInterface-v0.6.0
TLDR
Caution
This release is very breaking, nearly all downstream code will require adaptation. Read the documentation for details.
Main breaking changes
- New order of arguments (#435): the result of preparation (formerly called
extras
, now calledprep
) comes right before thebackend
. - Tangents require
NTuple
s (#455 + #501): forpushforward
,pullback
andhvp
, you must always pass tangent(s) inside anNTuple
(even if it has a single element). - Tapir.jl is now called Mooncake.jl (#500)
Main new features
- Constant arguments (#461 and others): most backends now support passing additional context arguments that are not differentiated (unlike the active argument
x
). - Package load time has been greatly reduced (#448)
- Enzyme's batch mode is fully exploited (#471, #495)
What's Changed
- [BREAKING] Change order of arguments by @gdalle in #435
- [BREAKING] Move sparse functionality into package extensions by @gdalle in #448
- [BREAKING] Modify checks and improve docs by @gdalle in #449
- Remove dependency on DocStringExtensions by @gdalle in #450
- Remove FillArrays dependency by implementing custom
OneElement
by @gdalle in #453 - Bound FastDifferentiation compat to <0.4 by @gdalle in #454
- [BREAKING] Force use of
Tangents
inpushforward
,pullback
andhvp
by @gdalle in #455 - Better type annotations in fallbacks by @gdalle in #458
- Remove fallback
backend -> SecondOrder(backend, backend)
by @gdalle in #459 - Get rid of functors for second order by @gdalle in #460
- Fix docs typos by @gdalle in #463
- Update Tapir to use cached rules where possible by @willtebbutt in #464
- Multi-argument support: basic infrastructure by @gdalle in #461
- Improve docs and document contexts by @gdalle in #469
- [BREAKING] Clean up tests by @gdalle in #470
- Fix and test ForwardDiff type stability by @gdalle in #473
- Contexts for Zygote by @gdalle in #474
- Clarify role of constants in preparation by @gdalle in #485
- Adapt to Enzyme v0.13 by @ExpandingMan in #471
- Make
DifferentiateWith
compatible with ForwardDiff, clarify docs by @gdalle in #487 - Remove use of custom
isequal
to compare scenarios by @gdalle in #486 - Add constant contexts for Enzyme by @gdalle in #489
- Update neural network tests by @gdalle in #490
- Rename extras to prep by @gdalle in #491
- Better HVP in reverse over forward by @gdalle in #494
- Implement contexts for more backends by @gdalle in #492
- More batch mode for Enzyme by @gdalle in #495
- Fix Enzyme's batched pullback and Jacobian by @gdalle in #499
- Contexts for FiniteDiff and PolyesterForwardDiff, better context testing by @gdalle in #497
- Clean up ReverseDiff type annotations by @gdalle in #498
- [BREAKING] Transition from Tapir to Mooncake by @gdalle in #500
- Replace
Tangents
withNTuple
by @gdalle in #501
New Contributors
- @ExpandingMan made their first contribution in #471
Full Changelog: DifferentiationInterface-v0.5.17...DifferentiationInterface-v0.6.0
DifferentiationInterface-v0.5.17
DifferentiationInterfaceTest-v0.6.0
TLDR
- A lot of code simplification and generalization in DIT.
What's Changed
- Set default batch size to 1 by @gdalle in #340
- Update citation and backend list by @gdalle in #342
- Add Enzyme performance warning by @gdalle in #344
- Update operator doc strings by @adrhill in #347
- Use new ReverseDiff compile type parameter by @niklasschmitz in #351
- Restructure tests by @gdalle in #354
- Fix tag construction in ForwardDiff by @gdalle in #357
- Bump DI version to 0.5.8 by @gdalle in #358
- Weird array test scenarios in DIT extensions by @gdalle in #359
- Put test dependencies in individual projects by @gdalle in #361
- CompatHelper: add new compat entry for PackageExtensionCompat at version 1 for package DifferentiationInterfaceTest, (keep existing compat) by @github-actions in #362
- Use dy=true for gradient (smallest possible 1) by @gdalle in #363
- First test scenarios for Flux gradients by @nialamarcotte in #352
- Make Flux scenarios private in DIT by @gdalle in #364
- Bump DI to v0.5.9 by @gdalle in #365
- CompatHelper: add new compat entry for FiniteDifferences in [weakdeps] at version 0.12 for package DifferentiationInterfaceTest, (keep existing compat) by @github-actions in #368
- CompatHelper: add new compat entry for Flux in [weakdeps] at version 0.14 for package DifferentiationInterfaceTest, (keep existing compat) by @github-actions in #367
- Fix Flux compat bound by @gdalle in #369
- Smarter symmetric decompression by @gdalle in #370
- Debug Flux tests by @gdalle in #371
- Fix size-1 Jacobian with Enzyme by @gdalle in #374
- Handle closures with Enzyme by @gdalle in #375
- Relax DocStringExtensions compat entries by @adrhill in #379
- Keep tests in same env by @gdalle in #381
- Better handling of
AutoEnzyme(constant_function=false)
by @gdalle in #382 - Put some Enzyme stuff in utils by @gdalle in #384
- Test ForwardDiff over ReverseDiff by @gdalle in #386
- ForwardDiff over anything - prepare inner gradient for HVP by @gdalle in #385
- Update Compat's compat by @gdalle in #389
- Bump SparseConnectivityTracer compat to
v0.6
by @adrhill in #392 - Don't test on 'lts' and 'pre' for draft PRs by @gdalle in #391
- Add Lux tests by @gdalle in #372
- Revert handling of
AutoEnzyme(; constant_function)
by @gdalle in #394 - Bump DI version to 0.5.10 by @gdalle in #395
- CompatHelper: add new compat entry for FiniteDiff in [weakdeps] at version 2 for package DifferentiationInterfaceTest, (keep existing compat) by @github-actions in #399
- CompatHelper: add new compat entry for LuxTestUtils in [weakdeps] at version 1 for package DifferentiationInterfaceTest, (keep existing compat) by @github-actions in #398
- CompatHelper: add new compat entry for Zygote in [weakdeps] at version 0.6 for package DifferentiationInterfaceTest, (keep existing compat) by @github-actions in #396
- CompatHelper: add new compat entry for Lux in [weakdeps] at version 0.5 for package DifferentiationInterfaceTest, (keep existing compat) by @github-actions in #397
- Fix LTS tests for DIT by @gdalle in #400
- Get rid of
constant_function
inAutoEnzyme
by @gdalle in #401 - Put local installation in CI by @gdalle in #402
- Leverage
function_annotation
forAutoEnzyme
by @gdalle in #407 - Bump DI to v0.5.12 by @gdalle in #408
- Implement automatic preparation with eval macro by @gdalle in #409
- CompatHelper: bump compat for Symbolics in [weakdeps] to 6 for package DifferentiationInterface, (keep existing compat) by @github-actions in #410
- Bump version by @gdalle in #411
- Upgrade to SparseMatrixColorings v0.4 by @gdalle in #405
- Unprepared operators for ForwardDiff by @gdalle in #414
- Give standard basis vectors the correct type by @gdalle in #421
- Split out extras types by @gdalle in #422
- Add same-point preparation to fallback macros by @gdalle in #424
- Refactor
pushforward
andpullback
by @gdalle in #425 - Add batched seeds to default scenarios by @gdalle in #423
- CompatHelper: bump compat for FastDifferentiation in [weakdeps] to 0.4 for package DifferentiationInterface, (keep existing compat) by @github-actions in #426
- Bump DI to v0.5.15 by @gdalle in #427
- Increase code coverage by @gdalle in #428
- Codecov badges with flags by @gdalle in #429
- Revamp batch mode for
pushforward
,pullback
andhvp
by @gdalle in #412 - Fix FiniteDiff derivative by @gdalle in #436
- Improve type stability tests, better use of
AutoZero
backends by @gdalle in #437 - Generate test code programmatically by @gdalle in #438
- Generate benchmark code programmatically by @gdalle in #441
- Improve type stability tests by @gdalle in #442
- Bump DI version and DIT compat by @gdalle in #443
New Contributors
- @niklasschmitz made their first contribution in #351
- @nialamarcotte made their first contribution in #352
Full Changelog: DifferentiationInterfaceTest-v0.5.0...DifferentiationInterfaceTest-v0.6.0
DifferentiationInterface-v0.5.16
TLDR
- Big revamp of batch mode, which is still not part of the public API but will be someday (#412)
- Behind-the-scenes simplification work before breaking change in #435
What's Changed
- Increase code coverage by @gdalle in #428
- Codecov badges with flags by @gdalle in #429
- Revamp batch mode for
pushforward
,pullback
andhvp
by @gdalle in #412 - Fix FiniteDiff derivative by @gdalle in #436
- Improve type stability tests, better use of
AutoZero
backends by @gdalle in #437 - Generate test code programmatically by @gdalle in #438
- Generate benchmark code programmatically by @gdalle in #441
- Improve type stability tests by @gdalle in #442
- Bump DI version and DIT compat by @gdalle in #443
Full Changelog: DifferentiationInterface-v0.5.15...DifferentiationInterface-v0.5.16
DifferentiationInterface-v0.5.15
TLDR
- Behind-the-scenes work in preparation for #412
What's Changed
- Give standard basis vectors the correct type by @gdalle in #421
- Split out extras types by @gdalle in #422
- Add same-point preparation to fallback macros by @gdalle in #424
- Refactor
pushforward
andpullback
by @gdalle in #425 - Add batched seeds to default scenarios by @gdalle in #423
- CompatHelper: bump compat for FastDifferentiation in [weakdeps] to 0.4 for package DifferentiationInterface, (keep existing compat) by @github-actions in #426
- Bump DI to v0.5.15 by @gdalle in #427
Full Changelog: DifferentiationInterface-v0.5.14...DifferentiationInterface-v0.5.15
DifferentiationInterface-v0.5.14
What's Changed
Full Changelog: DifferentiationInterface-v0.5.13...DifferentiationInterface-v0.5.14
DifferentiationInterface-v0.5.13
What's Changed
- Implement automatic preparation with eval macro by @gdalle in #409
- CompatHelper: bump compat for Symbolics in [weakdeps] to 6 for package DifferentiationInterface, (keep existing compat) by @github-actions in #410
- Bump version by @gdalle in #411
- Upgrade to SparseMatrixColorings v0.4 by @gdalle in #405
Full Changelog: DifferentiationInterface-v0.5.12...DifferentiationInterface-v0.5.13
DifferentiationInterface-v0.5.12
TLDR
- Better handling of closures with the
function_annotation
keyword toAutoEnzyme
(#407)
What's Changed
- Put local installation in CI by @gdalle in #402
- Leverage
function_annotation
forAutoEnzyme
by @gdalle in #407 - Bump DI to v0.5.12 by @gdalle in #408
Full Changelog: DifferentiationInterface-v0.5.11...DifferentiationInterface-v0.5.12
DifferentiationInterface-v0.5.11
Warning
This release is broken for Enzyme, use v0.5.12 instead
What's Changed
- CompatHelper: add new compat entry for FiniteDiff in [weakdeps] at version 2 for package DifferentiationInterfaceTest, (keep existing compat) by @github-actions in #399
- CompatHelper: add new compat entry for LuxTestUtils in [weakdeps] at version 1 for package DifferentiationInterfaceTest, (keep existing compat) by @github-actions in #398
- CompatHelper: add new compat entry for Zygote in [weakdeps] at version 0.6 for package DifferentiationInterfaceTest, (keep existing compat) by @github-actions in #396
- CompatHelper: add new compat entry for Lux in [weakdeps] at version 0.5 for package DifferentiationInterfaceTest, (keep existing compat) by @github-actions in #397
- Fix LTS tests for DIT by @gdalle in #400
- Get rid of
constant_function
inAutoEnzyme
by @gdalle in #401
Full Changelog: DifferentiationInterface-v0.5.10...DifferentiationInterface-v0.5.11