Releases: EnzymeAD/Enzyme.jl
Releases · EnzymeAD/Enzyme.jl
v0.13.4
Enzyme v0.13.4
Merged pull requests:
- Add reverse rule for Sparse dense matmul/vec (#1792) (@ptiede)
- Sparsearrays ext (#1891) (@wsmoses)
- CustomRules: fix body check (#1896) (@wsmoses)
- Add WithPrimal and NoPrimal function (#1898) (@ptiede)
- Skip japi1 activity rule (#1899) (@wsmoses)
- Support fillarray return (#1901) (@wsmoses)
- More info for dupnoneed (#1904) (@wsmoses)
- Abs int end of load (#1905) (@wsmoses)
- Fix randn (#1906) (@wsmoses)
- Fix japi1 (#1907) (@wsmoses)
- CompatHelper: bump compat for Enzyme_jll to 0.0.151, (keep existing compat) (#1908) (@github-actions[bot])
- Fix deferred any active return (#1909) (@wsmoses)
- Handle type unstable getglobal (#1910) (@wsmoses)
- Optimize active only rev grad (#1911) (@wsmoses)
- Fix getglobal value (#1912) (@wsmoses)
Closed issues:
- data corruption in struct (#603)
- Gradient error on simple forward/reverse comparison (#701)
- Additive term incorrectly not dropped in forward-mode (#742)
- What is ABI? (#1345)
- Enzyme modifies entries of an array in an inactive struct (#1569)
- Enzyme could not find shadow for value | with range (#1673)
- Sparse matvec seems strangely slow compared to Zygote (#1682)
- Flux Enzyme tests are failing (#1738)
- Check if function is being called inside
autodiff
(#1761) - Non-determinstic segfault (#1802)
- Gradients are dropped when using a sparse cholesky (#1825)
- "Constant memory is stored..." in
MLUtils.unsqueeze
(#1866) - confusing error message in forward over reverse (#1870)
- Batch mode with
autodiff_thunk
(#1883) - What is the use of
DuplicatedNoNeed
now thatReturnPrimal
is in the mode? (#1892) - Add more helper functions from the new DI (#1897)
- Incorrect derivatives of randn() (#1902)
- Size error for
logpdf(MvNormal)
combined withPDMats
(#1903)
v0.13.3
v0.13.2
Enzyme v0.13.2
Merged pull requests:
- Try fixing buildkite (#1843) (@wsmoses)
- Remove deprecated UnionAll Vararg (#1859) (@danielwe)
- runtime activity lookup on val not type (#1862) (@wsmoses)
- Fix jac nout (#1864) (@wsmoses)
- Cleanup (#1872) (@wsmoses)
- fix nested custom rule lookup (#1877) (@wsmoses)
- Use correct triple (#1878) (@wsmoses)
- Cleanup absint (#1880) (@wsmoses)
- fix array (#1884) (@wsmoses)
- Update Project.toml (#1885) (@wsmoses)
Closed issues:
- More Extensive Documentation (#326)
try
/catch
block error on Julia 1.8 and earlier (#971)- Automate use of deferred in Higher order derivatives (#1005)
- Higher order differentiation,
autodiff_deferred
andCustomRules
(#1059) - Failure for autojacvec=EnzymeVJP() for ODEProblem (#1617)
- Turing.jl error with AdvancedHMC (#1696)
- Const kwargs becoming Duplicated in custom rule => error (#1845)
- Readme image is broken (#1846)
- List breaking changes for v0.13? (#1861)
- passing
n_outs
keyword arg changes reverse mode jacobian output type (#1863) - Zero gradient regression involving global variables (#1882)
v0.13.1
v0.13.0
Enzyme v0.13.0
Merged pull requests:
- adjustments to the latest inlining interface changes (#1350) (@aviatesk)
- more comprehensive unit tests for gradient and jacobian (#1773) (@ExpandingMan)
- Suggest workaround in error for overwritten active by ref (#1791) (@danielwe)
- Consider constant fp in runtime activity (#1797) (@wsmoses)
- Fix custom active reverse mode check (#1798) (@wsmoses)
- Look for more writebarrier opportunities (#1800) (@wsmoses)
- Restrict version to 1.10+ (#1809) (@wsmoses)
- Fix MixedDuplicated ABI error on primalerror (#1815) (@wsmoses)
- Runtime activity in mode (#1816) (@wsmoses)
- Ensure typeof doesn't get cached (#1826) (@wsmoses)
- Improve deferred error message (#1827) (@wsmoses)
- Fix diffuse rooting (#1829) (@wsmoses)
- Fix nightly precompile (#1830) (@wsmoses)
- Update Project.toml (#1831) (@wsmoses)
- Move return primal into forward mode (#1832) (@wsmoses)
- Fix rand set (#1833) (@wsmoses)
- Jitrules batched fn (#1835) (@wsmoses)
- Force usage of full typetree on copy/memset (#1838) (@wsmoses)
- Auto upgrade to autodiff_deferred in nested AD (#1839) (@wsmoses)
- Autodiff with do blocks (#1840) (@wsmoses)
- Update sugar apis (#1844) (@wsmoses)
- Simplify deferred functions (#1849) (@wsmoses)
- Use namedtuple for grad/jacobian (#1850) (@wsmoses)
- Add within autodiff cmd (#1851) (@wsmoses)
Closed issues:
autodiff_deferred
with derivatives of order greater than 2 (#1173)- Minimal CUDA version for Lux Dense Layer (#1442)
- Computing third order derivatives (#1707)
- recent jacobian changes break StaticArrays (#1714)
sqrt(sum(f, x))
triggers mismatched activity error in forward over reverse (#1794)- Oceananigans segfault (#1799)
- Error: "task switch not allowed from inside staged nor pure functions" (#1804)
- Forward mode gradient AssertionError (#1807)
- Error: task switch not allowed from inside staged nor pure functions (#1808)
- Move runtime activity into mode parameter (#1810)
- Minimalist StackOverflow in Reverse mode (#1814)
- AD through ODE solution (#1818)
- constant memory now breaking static arrays (#1822)
- ifelse on NaN causing NaN in the reverse path (#1842)
- Readme image is broken (#1846)
- Tuple returns: forward vs reverse (#1847)
- Write analysis pass on
autodiff
vsautodiff_thunk
(#1854)
v0.12.36
Enzyme v0.12.36
Merged pull requests:
- Implement
set_err_if_func_written
forReverseModeSplit
(#1722) (@gdalle) - Fix GPU errors (#1774) (@wsmoses)
- Fix type error (#1775) (@wsmoses)
- Fix julia select mixed activity (#1776) (@wsmoses)
- Fix readonly on julia 1.11 (#1777) (@wsmoses)
- Fix select index offset (#1778) (@wsmoses)
- Add forward mode svec_ref (#1782) (@wsmoses)
- Handle batch closures (#1784) (@wsmoses)
- Do write barrier after mixed duplicated allocation upgrade (#1785) (@wsmoses)
- CompatHelper: bump compat for Enzyme_jll to 0.0.148, (keep existing compat) (#1787) (@github-actions[bot])
- Improve zero-set location error (#1788) (@wsmoses)
- Add names to object emission (#1789) (@wsmoses)
Closed issues:
- Support for CUDA.jl CuArrays? (#144)
- Runtime activity required for invoke (#407)
- Add support for ENABLE_JITPROFILING for both perf and Vtunes (#633)
- Implementation in DynamicExpressions.jl (#810)
- Multiple issues when using a global variable (#1313)
- Jacobian has wrong shape for matrix input (#1332)
- getting a minimal Lux example working (with CUDA) (#1392)
- Question about functions that return the same argument they mutate, with different activities for the return and the argument (#1411)
- Really long error on julia 1.11 (#1748)
- Forward-over-reverse: hyperbolic functions trigger
MethodError: no method matching is_concrete_tuple(::LLVM.LLVMDouble)
(#1772) - Better Error for
invertedReturn->getType() == gutils->getShadowType(call.getType())
(#1779) - unhandled forward for
jl_f__svec_ref
(#1780) BatchDuplicated
on functions (#1783)
v0.12.35
Enzyme v0.12.35
Merged pull requests:
- fix: conditionally define typetree_inner for BFloat16 (#1759) (@avik-pal)
- Handle deepcopy of constant (#1765) (@wsmoses)
- Manual report exception for cuda (#1766) (@wsmoses)
- Bump LLVM.jl version (#1767) (@wsmoses)
- Loosen runtime activity errors (#1768) (@wsmoses)
- Nancheck for GPU (#1770) (@wsmoses)
Closed issues:
v0.12.34
v0.12.33
Enzyme v0.12.33
Merged pull requests:
- Fix cpu features (#1744) (@wsmoses)
- Try diferent name for gpu exception (#1746) (@wsmoses)
- Handle const addr casts (#1752) (@wsmoses)
- Clarify use cases for DuplicatedNoNeed (#1753) (@danielwe)
- Fix multidim solve (#1754) (@wsmoses)
- Type unstable custom rule tape (#1755) (@wsmoses)
Closed issues:
- EnzymeVJP failed when training Neural ODE with DiscreteCallback (#1743)
- CUDA.jl CI broken again because of Enzyme (#1745)
- 'sensealg=InterpolatingAdjoint(autojacvec=EnzymeVJP(), checkpointing=true) ' failed (#1749)
- left division with two matrices (#1750)
- Mixed activity error for 2nd order diff of fused broadcast into preallocated array (#1751)