Skip to content

Releases: JuliaDiff/DifferentiationInterface.jl

DifferentiationInterface-v0.6.1

25 Sep 20:48
9ec4e7e
Compare
Choose a tag to compare

DifferentiationInterface-v0.6.0

25 Sep 17:38
959f634
Compare
Choose a tag to compare

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 called prep) comes right before the backend.
  • Tangents require NTuples (#455 + #501): for pushforward, pullback and hvp, you must always pass tangent(s) inside an NTuple (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 in pushforward, pullback and hvp 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 with NTuple by @gdalle in #501

New Contributors

Full Changelog: DifferentiationInterface-v0.5.17...DifferentiationInterface-v0.6.0

DifferentiationInterface-v0.5.17

04 Sep 08:58
4eb9642
Compare
Choose a tag to compare

What's Changed

Full Changelog: DifferentiationInterface-v0.5.16...DifferentiationInterface-v0.5.17

DifferentiationInterfaceTest-v0.6.0

03 Sep 10:01
eeae079
Compare
Choose a tag to compare

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 in AutoEnzyme by @gdalle in #401
  • Put local installation in CI by @gdalle in #402
  • Leverage function_annotation for AutoEnzyme 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 and pullback 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 and hvp 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

Full Changelog: DifferentiationInterfaceTest-v0.5.0...DifferentiationInterfaceTest-v0.6.0

DifferentiationInterface-v0.5.16

03 Sep 09:52
eeae079
Compare
Choose a tag to compare

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 and hvp 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

28 Aug 07:52
91c25db
Compare
Choose a tag to compare

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 and pullback 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

28 Aug 06:19
8077dce
Compare
Choose a tag to compare

What's Changed

  • Unprepared operators for ForwardDiff by @gdalle in #414

Full Changelog: DifferentiationInterface-v0.5.13...DifferentiationInterface-v0.5.14

DifferentiationInterface-v0.5.13

18 Aug 15:47
9182912
Compare
Choose a tag to compare

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

10 Aug 18:25
ad1328f
Compare
Choose a tag to compare

TLDR

  • Better handling of closures with the function_annotation keyword to AutoEnzyme (#407)

What's Changed

Full Changelog: DifferentiationInterface-v0.5.11...DifferentiationInterface-v0.5.12

DifferentiationInterface-v0.5.11

10 Aug 15:39
d0e26ef
Compare
Choose a tag to compare

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 in AutoEnzyme by @gdalle in #401

Full Changelog: DifferentiationInterface-v0.5.10...DifferentiationInterface-v0.5.11