Enzyme.jl

Julia bindings for the Enzyme automatic differentiator

MIT License

Stars
394
Committers
52

Bot releases are visible (Hide)

Enzyme.jl - v0.12.32 Latest Release

Published by github-actions[bot] 2 months ago

Enzyme v0.12.32

Diff since v0.12.31

Merged pull requests:

  • small fix for static array onehot (#1732) (@ExpandingMan)
  • Fix cuda tape type (#1737) (@wsmoses)
  • Fix return diffe (#1740) (@wsmoses)
  • Update Project.toml (#1742) (@wsmoses)

Closed issues:

  • LLVM error (#1693)
  • Enzyme doesn't work for AdvancedVI Part VIII: FP32 + Base.Fix1 ignores gradients (#1735)
  • Update broke CUDA.jl downstream CI (#1736)
Enzyme.jl - v0.12.31

Published by github-actions[bot] 2 months ago

Enzyme v0.12.31

Diff since v0.12.30

Merged pull requests:

  • chore: bump jll to 0.0.144 (#1731) (@avik-pal)

Closed issues:

  • Error in forward over reverse differentiation (KeyError: key not found) (#1713)
Enzyme.jl - v0.12.30

Published by github-actions[bot] 2 months ago

Enzyme v0.12.30

Diff since v0.12.29

Merged pull requests:

  • Precompilation simplification (#1715) (@wsmoses)
  • Mark gc preserve as readonly (#1724) (@wsmoses)
  • fix: BFloat16 extension and tests (#1725) (@avik-pal)
  • boxfloat fixup (#1726) (@wsmoses)
  • Unhash the jl_idtable_rehash call (#1727) (@wsmoses)
  • More bfloat fix (#1728) (@wsmoses)
  • Update compiler.jl (#1729) (@wsmoses)

Closed issues:

  • LLVM error (#1693)
  • Function argument passed to autodiff cannot be proven readonly (#1719)
  • Error in BFloat16 extension (#1720)
  • ERROR: LoadError: UndefVarError: BFloat16 not defined (#1723)
Enzyme.jl - v0.12.29

Published by github-actions[bot] 3 months ago

Enzyme v0.12.29

Diff since v0.12.28

Merged pull requests:

  • fix: typetree_inner is not in Compiler module (#1716) (@avik-pal)
  • Fix doctests, remove Formatter CI, add caching to Documenter CI (#1721) (@vchuravy)
Enzyme.jl - v0.12.28

Published by github-actions[bot] 3 months ago

Enzyme v0.12.28

Diff since v0.12.27

Merged pull requests:

  • Add optional [but presently on] check if function contains written-to data (#1701) (@wsmoses)
  • allow forward mode reflection (#1702) (@vchuravy)
  • Interpreter: single return type (#1703) (@wsmoses)
  • more 1.11 workarounds (#1704) (@wsmoses)
  • Add bfloat16 (#1708) (@wsmoses)
  • Add ABI setter (#1709) (@wsmoses)
  • More diverse error types (#1710) (@wsmoses)
  • Fixup more than simple jacobian (#1712) (@wsmoses)

Closed issues:

  • doc: Got confused with EnzymeCore.Duplicated doc (#1624)
  • Duplicating closures (#1669)
  • Incorrect gradients with BFloat16 (#1695)
  • Enzyme doesn't work for AdvancedVI Part VII: Type instability with FP32 (#1700)
Enzyme.jl - v0.12.27

Published by github-actions[bot] 3 months ago

Enzyme v0.12.27

Diff since v0.12.26

Merged pull requests:

  • Add dump mod post optimizations option (#1694) (@wsmoses)
  • Fix interpreter caches (#1698) (@wsmoses)

Closed issues:

  • Segfault with iteration (#1310)
  • fail with simple sum gradient on CUDA (#1347)
  • CuArray broadcasting (#1454)
  • Cannot deduce type for QuadGK (#1599)
  • Indeterministic illegal instruction: 4 (#1626)
  • Differentiating FFTW fftshift (#1652)
  • Incompatible with MKL.jl (#1683)
  • Recent updates broke LLVM.jl downstream CI (#1688)
  • Seemingly wrong derivative (#1691)
  • Enzyme doesn't work for AdvancedVI Part VI: Bizzare type instability (#1697)
Enzyme.jl - v0.12.26

Published by github-actions[bot] 3 months ago

Enzyme v0.12.26

Diff since v0.12.25

Merged pull requests:

  • ci: add DynamicExpressions integration tests (#1675) (@MilesCranmer)
  • Bump jll with extract tuple for reverse fix (#1678) (@wsmoses)
  • Fix bitcast arg (#1679) (@wsmoses)
  • First relocation of globals (#1684) (@wsmoses)
  • Fix array of tuple any (#1685) (@wsmoses)
  • Simplify libjulia usage (#1687) (@wsmoses)
  • Update Project.toml (#1689) (@wsmoses)

Closed issues:

  • Enzyme failing in Julia: ERROR: LoadError: Enzyme execution failed. (#1571)
  • Does Enzyme's high-level API assume f is constant? (#1670)
  • Missing 2-argument method for bitcast! (#1674)
  • Compilation Error: Unsafe copyto! (#1681)
Enzyme.jl - v0.12.25

Published by github-actions[bot] 3 months ago

Enzyme v0.12.25

Diff since v0.12.24

Merged pull requests:

  • Add internal forward-mode rules for ranges (#1655) (@ChrisRackauckas)
  • Fix tape union check (#1660) (@wsmoses)
  • Pushforward dvals in the ranges forward rule (#1663) (@ChrisRackauckas)
  • Fix make_zero box infinite recursion (#1665) (@wsmoses)
  • Tape type of error (#1666) (@wsmoses)
  • Inactive boxed cache (#1667) (@wsmoses)
  • Update Project.toml (#1668) (@wsmoses)

Closed issues:

  • Hitting new segfaults in DynamicExpressions.jl (#1662)
  • StackoverFlow with KernelAbstractions (#1664)
Enzyme.jl - v0.12.24

Published by github-actions[bot] 3 months ago

Enzyme v0.12.24

Diff since v0.12.23

Merged pull requests:

  • Fix #1630 (#1631) (@danielwe)
  • Reduce time for enzyme import (#1645) (@wsmoses)
  • Update Project.toml (#1646) (@wsmoses)
  • Fix typo in jl_array_ptr_copy_fwd (#1648) (@mhauru)
  • Mark regex fns as nofree (#1654) (@wsmoses)
  • Bump jll (#1657) (@wsmoses)
  • Bigfloat constructor rules (#1658) (@wsmoses)
  • GPU report exception: fix linkage (#1659) (@wsmoses)

Closed issues:

  • Illegal type analysis - BigFloat (#1621)
  • unwrapMode != UnwrapMode::LegalFullUnwrap with Julia <1.8 (#1629)
  • "UndefVarError: N not defined" when writing custom rule (#1630)
  • Raise Julia errors rather than crashing on Assertion failures (#1634)
  • LoopVectorization leads to Assertion orig failed (#1635)
  • Second order AD of broadcast function (#1637)
  • Adding Jacobian computation support for AbstractArray{<:AbstractArray{T}} type function argument (#1644)
  • AD on WaterLily using Enzyme (#1647)
  • Cholesky solve segfault (#1649)
  • Failure with label2index from ComponentArrays (#1650)
Enzyme.jl - v0.12.23

Published by github-actions[bot] 3 months ago

Enzyme v0.12.23

Diff since v0.12.22

Merged pull requests:

  • First stab at nongenabi (#1575) (@wsmoses)
  • Handle xlogy limit (#1615) (@wsmoses)
  • Simplify no derivative message (#1632) (@wsmoses)
  • Mark type assert as inactive (#1639) (@wsmoses)
  • Add more inst type info (#1640) (@wsmoses)
  • Cleanup solve rules and bigfloat (#1641) (@wsmoses)
  • Cleanup objid attributes (#1642) (@wsmoses)
  • Remove unnecessary jl_array_del_end zero-set used memset error (#1643) (@wsmoses)

Closed issues:

  • Not applying memset on reverse of jl_array_del_end (#871)
  • Anonymous function calling BLAS.scal! errors for ComplexF32 in forward-mode (#1047)
  • Hessian vector product guidance (#1205)
  • xlogy grad wrong at 0 (#1601)
  • Simpler error messages for missing gradient rules (#1625)
  • Issue with hvp! and LinearAlgebra.dot() (#1627)
  • Error in Forward over Reverse Mode for Hessian (#1628)
  • Issue with bitwise & coming from floating point range numerical stability fixes (#1633)
  • Operation on Int inferred as active (#1636)
  • Enzyme doesn't work for AdvancedVI Part V: Type stable restructure fails (#1638)
Enzyme.jl - v0.12.22

Published by github-actions[bot] 4 months ago

Enzyme v0.12.22

Diff since v0.12.21

Merged pull requests:

  • Custom rule fix zeroing of inductive var (#1589) (@wsmoses)
  • More fwdblas (#1590) (@wsmoses)
  • Fix make_zero of arbitrary struct (#1591) (@wsmoses)
  • Cherry pick of forward cholesky updates (#1592) (@wsmoses)
  • Additional tests for jll bump (#1598) (@wsmoses)
  • Fix noreturn removal (#1602) (@wsmoses)
  • Mark hasproperty as inactivenoinl (#1607) (@wsmoses)
  • Inactive isdefined (#1609) (@wsmoses)
  • Fix make_zero! issues (#1612) (@wsmoses)
  • Fix isdefined abstypeof (#1613) (@wsmoses)
  • Explore removal of triangular rule (#1614) (@wsmoses)
  • Writeonly capture fix (#1616) (@wsmoses)

Closed issues:

  • Julia 1.9: julia.safepoint (#539)
  • Crash: "erasing something in invertedPointers map" (#1577)
  • Illegal type analysis (#1582)
  • Illegal instruction on Distributions.Skellam (#1585)
  • make_zero! can sometimes fail on closures? (#1588)
  • BoundsError: attempt to access 1-element Vector{Float64} at index [1] (#1593)
  • Make using runtime activity unnecessary for complex numbers (#1594)
  • Wrong forward gradient (#1595)
  • Forward mode segfault (#1596)
  • Wrong grad for Cholesky (#1604)
  • Error from custom rule for solving differential equations (solve_up) (#1606)
  • no method matching -(::Base.RefValue{Float64}, ::Float64) (#1608)
  • Gradient in tutorial gives wrong results (#1610)
  • Arrays of ForwardDiff Duals incorrectly marked as not mutable? (#1611)
  • Assertion failed: (isa(Val) && "cast() argument of incompatible type!") (#1618)
  • log1p error (#1619)
Enzyme.jl - v0.12.21

Published by github-actions[bot] 4 months ago

Enzyme v0.12.21

Diff since v0.12.20

Merged pull requests:

  • Fix LLVM feature check (#1581) (@wsmoses)
  • Add hvp helpers (#1583) (@wsmoses)
  • Fixup batched calling conv (#1586) (@wsmoses)

Closed issues:

  • Simpler example of a hard crash during Forward-over-Reverse (#1385)
  • Enzyme support for TimerOutputs.jl (#1480)
  • Enzyme doesn't work for AdvancedVI Part III: logpdf(MvNormal) + Base.Fix1 + mean(f, x) = error ??? (#1560)
  • Enzyme API has some wrong argument types. (#1578)
  • Enzyme produces inconsistent results with macros from UnPack.jl (#1579)
  • LLVM version issue with latest release? (#1580)
  • Inconsistent empty return type (#1584)
Enzyme.jl - v0.12.20

Published by github-actions[bot] 4 months ago

Enzyme v0.12.20

Diff since v0.12.19

Merged pull requests:

  • More info of alloc (#1568) (@wsmoses)
  • uparm (#1570) (@wsmoses)
  • Fix getfield of const (#1572) (@wsmoses)
  • CompatHelper: bump compat for LLVM to 8, (keep existing compat) (#1576) (@github-actions[bot])

Closed issues:

  • Enzyme compilation failed due to illegal type analysis (#1573)
Enzyme.jl - v0.12.19

Published by github-actions[bot] 4 months ago

Enzyme v0.12.19

Diff since v0.12.18

Merged pull requests:

  • fixup tuple any (#1567) (@wsmoses)

Closed issues:

  • Enzyme doesn't work for AdvancedVI Part IV: Bijectors + mapreduce with initial condition (#1561)
Enzyme.jl - v0.12.18

Published by github-actions[bot] 4 months ago

Enzyme v0.12.18

Diff since v0.12.17

Merged pull requests:

  • Inactive apply type (#1555) (@wsmoses)
  • Within mi error message improvement (#1556) (@wsmoses)
  • Inactive get total bytes (#1557) (@wsmoses)
  • Support add into vec (#1559) (@wsmoses)
  • Ensure correct return diffe type (#1565) (@wsmoses)
  • More erros on allocated inline mismatch (#1566) (@wsmoses)

Closed issues:

  • Crash on OMEinsum.einsum! (#1416)
  • Enzyme v0.12.17 fails the DifferentiationInterface test suite (#1562)
Enzyme.jl - v0.12.17

Published by github-actions[bot] 4 months ago

Enzyme v0.12.17

Diff since v0.12.16

Merged pull requests:

  • Update AdaptExt.jl (#1551) (@wsmoses)
  • Fix custom rule overwriting error to be runtime not compile time (#1552) (@wsmoses)
  • Type unstable rules (#1553) (@wsmoses)
Enzyme.jl - v0.12.16

Published by github-actions[bot] 4 months ago

Enzyme v0.12.16

Diff since v0.12.15

Merged pull requests:

  • Don't bother rewriting known calls (#1550) (@wsmoses)

Closed issues:

  • Enzyme doesn't work for AdvancedVI (#1548)
Enzyme.jl - v0.12.15

Published by github-actions[bot] 4 months ago

Enzyme v0.12.15

Diff since v0.12.14

Merged pull requests:

  • Re-enable ci for amd math fns (#1537) (@wsmoses)
  • Fix kw rrule closure argument index (#1543) (@wsmoses)
  • Add more blas fns (#1544) (@wsmoses)

Closed issues:

  • cos/exp on AMDGPU.jl (#977)
  • No augmented forward pass found for cuOccupancyMaxPotentialBlockSize (#1061)
  • Error in gradient when using map! on Julia 1.9.4 (#1219)
  • Inactivated PyCall Calling Functions Block Enzyme? (#1481)
  • Julia crash when passing Ref of Mixed activity struct (#1494)
  • KernelAbstractions with CPU backend broken (#1540)
  • Closure with kwarg constructor (#1541)
Enzyme.jl - v0.12.14

Published by github-actions[bot] 4 months ago

Enzyme v0.12.14

Diff since v0.12.13

Merged pull requests:

  • Mixed activity for getfield (#1535) (@wsmoses)
  • Abstract is mixed (#1536) (@wsmoses)
  • Quick adaptation to new pm (#1538) (@wsmoses)
  • inactive kwargs (#1539) (@wsmoses)

Closed issues:

  • Type Analysis mismatch (#123)
  • Core.Compiler.return_type doesn't yield result type as intended (#662)
  • Issue with Enzymanigans fill_halo_event! (#1289)
  • Tuple type error in Oceananigans (#1295)
  • Mixed Activity of Float, Vector in reverse mode (#1316)
  • Enzyme over ForwardDiff.jl (#1331)
  • ERROR: AssertionError: Enzyme Internal Error: Illegal calling convention fixup (#1393)
Enzyme.jl - v0.12.13

Published by github-actions[bot] 4 months ago

Enzyme v0.12.13

Diff since v0.12.12

Merged pull requests:

  • Support Julia 1.11 (#1372) (@vchuravy)
  • Fix const-only apply iterate (#1526) (@wsmoses)
  • Handle non-zero mixed return (#1529) (@wsmoses)
  • Improve rule arg mixed errors (#1530) (@wsmoses)
  • Fix reverse mode closure issues (#1533) (@wsmoses)
  • MixedDuplicated for custom rules (#1534) (@wsmoses)

Closed issues:

  • Reverse mode getfield support from immutable values (like tuples) (#970)
  • Found unhandled active variable in tuple splat, jl_apply_iterate (#1235)
  • Mixed activity for broadcast against scalars (#1482)
  • Create in_place make_zero! (#1517)
  • Enzyme Julia 1.11 UndefVarError: CodeCache not defined in GPUCompiler (#1527)
  • GPUCompiler code typed err (#1528)
Package Rankings
Top 6.22% on Juliahub.com
Badges
Extracted from project README
Stable Dev Build Status Coverage
Related Projects