Releases: EnzymeAD/Enzyme.jl
Releases · EnzymeAD/Enzyme.jl
v0.13.8
Enzyme v0.13.8
Merged pull requests:
- Update DuplicatedNoNeed error message (#1933) (@Vaibhavdixit02)
- Fix range step (#1945) (@wsmoses)
Closed issues:
- Unexpected zero derivative (#1690)
v0.13.7
Enzyme v0.13.7
Merged pull requests:
Closed issues:
v0.13.6
Enzyme v0.13.6
Merged pull requests:
- Fix pass manager bug which allows functions to be deleted and replaced (#1924) (@wsmoses)
- Fix make_zero on constant fields (#1926) (@wsmoses)
- Union member type info (#1927) (@wsmoses)
- Stabilize global (#1928) (@wsmoses)
Closed issues:
make_zero
fails on a mutable type withconst
fields (#1925)
v0.13.5
Enzyme v0.13.5
Merged pull requests:
- Attempt to fix apple (#1834) (@wsmoses)
- fix some cases of gradient/jacobian with StaticArrays (#1875) (@ExpandingMan)
- Improve documentation of modes (#1895) (@gdalle)
- Use actual_size instead of sizeof (#1915) (@wsmoses)
- Even more indexed typeinfo (#1916) (@wsmoses)
- Fix active reg inner of literal type (#1917) (@wsmoses)
- Correct offset to use max (#1918) (@wsmoses)
- Fix limit being relative (#1919) (@wsmoses)
- Fix memory of float (#1920) (@wsmoses)
- Bump jll (#1921) (@wsmoses)
- Bump jll (#1922) (@wsmoses)
Closed issues:
- Enzyme loading time is not great (#506)
- Basic SparseMatrixCSC calculations do not work. (#1381)
- Cannot deduce type of copy
call void @llvm.memcpy.p10i8.p0i8.i64
(#1547) - Operation on Int not deduced as const (#1636)
- Inconsistency in mode type parameters for
ReverseModeSplit
(#1881) - Enzyme compilation fails with DiffEq ODE solves (#1914)
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)