Enzyme.jl

Julia bindings for the Enzyme automatic differentiator

MIT License

Stars
394
Committers
52

Bot releases are visible (Hide)

Enzyme.jl - v0.10.12

Published by github-actions[bot] about 2 years ago

Enzyme v0.10.12

Diff since v0.10.11

Closed issues:

  • Segmentation fault when puting a complex number to power 0 (#381)
  • Segmentation fault on a linear regression model (arm & x86 chips) (#500)
  • Assertion failed: (G[v].count(u) == 0), function minCut (#510)

Merged pull requests:

  • Fix large dynamic tape issue (#509) (@wsmoses)
  • Add inactive ijl ptls states (#513) (@wsmoses)
  • Better type depth reached warning (#515) (@wsmoses)
  • Add box float (#516) (@wsmoses)
  • Bump JLL (#517) (@vchuravy)
Enzyme.jl - v0.10.11

Published by github-actions[bot] about 2 years ago

Enzyme v0.10.11

Diff since v0.10.10

Closed issues:

  • Box{AbstractFloat}() calling convention (#368)
  • Segmentation fault (#488)

Merged pull requests:

  • Fix tape size mismatch for Any (#502) (@vchuravy)
  • Add EnzymeCore to docs (#503) (@vchuravy)
  • Disable needs_dynamic_size_workaround on nightly (#504) (@vchuravy)
Enzyme.jl - v0.10.10

Published by github-actions[bot] about 2 years ago

Enzyme v0.10.10

Diff since v0.10.9

Merged pull requests:

  • Add EnzymeCore (#498) (@vchuravy)
Enzyme.jl - v0.10.9

Published by github-actions[bot] about 2 years ago

Enzyme v0.10.9

Diff since v0.10.8

Closed issues:

  • Captured x breaks autodiff (#205)
  • Implement jl_call convention for 1.9 (#492)
  • dot product on Vector{Float32} fails (#495)

Merged pull requests:

  • Add test for #205 (#419) (@vchuravy)
  • adjust to JuliaLang/julia#46965 (#497) (@aviatesk)
  • Update JLL and add test for issue (#499) (@vchuravy)
Enzyme.jl - v0.10.8

Published by github-actions[bot] about 2 years ago

Enzyme v0.10.8

Diff since v0.10.7

Closed issues:

  • Gradients for struct fields are zero when a Bool field is present (#431)

Merged pull requests:

  • Add julia.call for structv/inactive (#493) (@wsmoses)
  • Workaround Julia GC bug (#494) (@wsmoses)
Enzyme.jl - v0.10.7

Published by github-actions[bot] about 2 years ago

Enzyme v0.10.7

Diff since v0.10.6

Closed issues:

  • at_ccallable function can not be called from within Enzyme (#202)
  • Alloc -> Malloc downgrade on sret (#337)
  • Inconsistent gradients for edge case (Enzyme v0.10.4 & GPUCompiler v0.16.3) (#432)
  • Forward-mode autodiff errors with Assertion v != DIFFE_TYPE::OUT_DIFF' failed.` (#451)
  • Illegal address space propagation (#457)
  • List comprehension of empty arrays no longer works (#460)
  • Illegal address space propagation: Minimal Version (#463)
  • Readonly error 1.9 (#486)

Merged pull requests:

  • Add no free to functions (#453) (@wsmoses)
  • Fix recursive GC (#462) (@wsmoses)
  • Add gc sret test (#464) (@wsmoses)
  • Deduce writeonly from sret (#468) (@wsmoses)
  • Nicer error for forward api (#469) (@bitmyte)
  • Fix cache of decayed ptr (#470) (@wsmoses)
  • Add additional sret test (#471) (@wsmoses)
  • Add better firstptr error (#472) (@wsmoses)
  • Generic fixes (#473) (@wsmoses)
  • Add internal error handling (#474) (@wsmoses)
  • Use variadic post cache store (#475) (@wsmoses)
  • Fix Address space cast issues (#476) (@wsmoses)
  • Handle memcpy in addrcast (#477) (@wsmoses)
  • Add functions to nofree (#479) (@swilliamson7)
  • Bump Enzyme_jll to 0.0.40 (#481) (@vchuravy)
  • Fix post cache store (#482) (@wsmoses)
  • Fix nest and add test (#484) (@wsmoses)
  • Add error message if using a chunk size of 0 (#485) (@wsmoses)
  • Fix test seg warn (#487) (@wsmoses)
  • Bump jll (#490) (@wsmoses)
  • vc/fix 1.9 (#491) (@vchuravy)
Enzyme.jl - v0.10.6

Published by github-actions[bot] about 2 years ago

Enzyme v0.10.6

Diff since v0.10.5

Closed issues:

  • atan double argument form errors (#459)

Merged pull requests:

  • Add atan2 (#461) (@wsmoses)
Enzyme.jl - v0.10.5

Published by github-actions[bot] about 2 years ago

Enzyme v0.10.5

Diff since v0.10.4

Closed issues:

  • Custom pullbacks for PP AD example (#26)
  • Crash with Tullio (#99)
  • Correctly deal with array alloc of eltype(A) = Any (#118)
  • Union of Return (#154)
  • TypeAnalysis fails on Julia 1.8 LLVM 13 (#171)
  • Crash on multidimensional setindex (#175)
  • Understanding a huge crash report (#181)
  • Global leads to wrong gradient (#185)
  • Kernel crashing issue (#192)
  • Union leads to illegal type analysis (#236)
  • Segfault when testing package on Julia 1.8 on a mac. (#250)
  • Attributor pass broken on 1.8-dev/ LLVM13 (#267)
  • foldl with CUDA.jl results in jl_lazy_load_and_lookup (#272)
  • Assertion `getMinSignedBits() <= 64 && "Too many bits for int64_t"' failed. (#273)
  • Verification or llvm inliner error? (#276)
  • Out of place broadcasting creates unexpected results (#278)
  • Segfault when used with Optim.jl (#298)
  • MethodError on dynamic Val construction (#309)
  • Support reshaping via jl_array_reshape (#310)
  • Segfault when using with BLAS (#315)
  • Nested broadcast not working (#338)
  • MethodError when trying to autodiff through a complex matrix (#359)
  • Differentiating trigonometric functions with KernelGradients and CUDAKernels (#375)
  • Jacobian producing unexpected results (#377)
  • Problems for CUDA.jl kernel autodiff (#378)
  • Mutation of gradient input in MatMul example for Square Matrices (#382)
  • limitations of CUDA kernels differentiation (#383)
  • guess_activity(::Type{Union{}}) is ambiguous (#386)
  • Correctness bug with 2D array offsets (#388)
  • enzyme doesn't work on Apple silicon (#394)
  • Segfault with dense matrix multiplication (#391)
  • Segfault with sparse matrix multiplication (#393)
  • sum() sometimes returns incorrect result (#397)
  • exp10 causes illegal type analyses error (#401)
  • differentiation works on cpu, fails on gpu, for exponentiation (#412)
  • memory error on second invocation of derivative GPU kernel (#413)
  • v1.6 only LLVM-level error (#414)
  • Concatenating AD for multiple GPU kernels (#415)
  • can't push! twice (#417)
  • atomic operations error (#421)
  • Uncaught Enzyme exception crashes Julia 1.8 (#423)
  • Support for tan operation (#424)
  • sqrt in CUDA kernel gives error (#426)
  • Uncaught LLVM-level error from neural SDE (#429)
  • Push Undefined Memory Error (#430)
  • Gradients for struct fields are zero when a Bool field is present (#431)
  • BatchDuplicated in Forward breaks for sinc (#434)
  • BLAS fallback has short-circuiting zero path (#445)
  • Gradient fails to deal with GPU movements (#448)
  • Gradient through acos errors (#449)
  • Pullback for array function gives zero gradients with forward mode (#450)
  • orig is not defined (#454)

Merged pull requests:

  • Mark aliasing property of error (#104) (@wsmoses)
  • Set default activity of any (#187) (@wsmoses)
  • Inactive arg copy (#279) (@wsmoses)
  • Add fast exp (#339) (@wsmoses)
  • Add ijl box variations (#374) (@wsmoses)
  • Add preserve nvvm (#379) (@wsmoses)
  • Add array reshape rev (#380) (@wsmoses)
  • Add runtime activity for fwd (#385) (@wsmoses)
  • Box tutorial documentation (#387) (@swilliamson7)
  • Fix getwidth bug (#390) (@wsmoses)
  • fix cuda tests (#395) (@wsmoses)
  • Custom allocator support (#396) (@vchuravy)
  • Handle TSCtx on 1.9 (#398) (@vchuravy)
  • Use literate for box example (#399) (@vchuravy)
  • Use gc_alloc_obj for tapes containing Julia objects (#400) (@vchuravy)
  • Handle exp10 (#403) (@wsmoses)
  • Better unimlemented vector assertions (#405) (@wsmoses)
  • Fix movebefore (#406) (@wsmoses)
  • Use Anonymous Struct for sret (#408) (@vchuravy)
  • docs for Sparse Array Structure Initializer (#409) (@ryanstoner1)
  • Copy over correct IR dumping code (#410) (@pchintalapudi)
  • Bump JLL (#411) (@wsmoses)
  • support double push (#420) (@vchuravy)
  • Rules for sinh and cosh (#425) (@sriharikrishna)
  • Detect integer form of eqtable (#427) (@wsmoses)
  • Fix nightly (#433) (@wsmoses)
  • Fix zero'ing in augmented forward (#436) (@wsmoses)
  • Reuse julia type rules (#437) (@wsmoses)
  • Dynamic val fix (#438) (@wsmoses)
  • Handle not concrete type trees (#439) (@wsmoses)
  • Remove preprocessed funcs & fix typeof (#440) (@wsmoses)
  • Fix nightly pt2 (#441) (@wsmoses)
  • Bump jll (#442) (@wsmoses)
  • Add sinc (#444) (@wsmoses)
  • Fix typo delf -> delF (#446) (@avik-pal)
  • Add stacktraces to errors (#452) (@wsmoses)
  • Fix orig name bug (#455) (@wsmoses)
  • Add acos (#456) (@wsmoses)
  • Cleanup CI (#458) (@vchuravy)
Enzyme.jl - v0.10.4

Published by github-actions[bot] over 2 years ago

Enzyme v0.10.4

Diff since v0.10.3

Closed issues:

  • Incorrect gradients with views (#356)
  • Failed when trying to create a new vector whose length depends on input (#366)
Enzyme.jl - v0.10.3

Published by github-actions[bot] over 2 years ago

Enzyme v0.10.3

Diff since v0.10.2

Merged pull requests:

  • Use a custom variant of Ref that is fails instead of handing out null-pointers (#372) (@vchuravy)
Enzyme.jl - v0.10.2

Published by github-actions[bot] over 2 years ago

Enzyme v0.10.2

Diff since v0.10.1

Closed issues:

  • Differentiate dsyevr_64_ (#64)
  • Crash with Tullio (#99)
  • Enable parallel flag as option within autodiff (#106)
  • dgemm_64 support missing (#113)
  • dgbtrs support missing (#136)
  • sgemv support missing (#162)
  • Unsupported Val in CUDA kernel - Enzyme v0.10.0 - GPUCompiler v0.15 (#358)
  • Cannot use Enzyme on clean Julia installation (#360)
  • Wrong gradients (mutating buffers) (#362)
  • Unsupported call through a literal pointer (call to __libc_malloc) (#367)

Merged pull requests:

  • Don't restore pointers when doing GPU compilation (#370) (@vchuravy)
  • Describe tmp activity (#371) (@wsmoses)
Enzyme.jl - v0.10.1

Published by github-actions[bot] over 2 years ago

Enzyme v0.10.1

Diff since v0.10.0

Closed issues:

  • CUDA support broken since Enzyme v0.8 and GPUCompiler v13 (#230)
  • Thread integration broken on Julia 1.8 (#283)
  • Obtain gradient function using Enzyme.jl (#357)

Merged pull requests:

  • Make same or 1 recursive (#361) (@wsmoses)
Enzyme.jl - v0.10.0

Published by github-actions[bot] over 2 years ago

Enzyme v0.10.0

Diff since v0.9.6

Closed issues:

  • Analysis error ("could not deduce type of integer") on GEP when the stars align correctly (#311)
  • Symbols not found: [ cblas_xerbla ] (#312)
  • Segmentation fault during NVPTX emission due to debuginfo (#316)
  • Forward over Reverse Crash (#320)
  • Support for BigFloat (#348)
  • AbstractDifferentiation (#349)
  • Problem in Windows Subsystem Linux (WSL2) (#353)

Merged pull requests:

  • Generalize activity sets (#296) (@wsmoses)
  • merge autodiff and fwddiff API (#306) (@vchuravy)
  • Handle xerbla (#317) (@wsmoses)
  • add tests to Jacobian using LinAlg (#319) (@vchuravy)
  • Fix metadata (#323) (@wsmoses)
  • Fix debug info2 (#324) (@wsmoses)
  • Fix scope bug for arg (#325) (@wsmoses)
  • Fix in to haskey (#327) (@wsmoses)
  • Add log1p (#328) (@wsmoses)
  • Re-enable tests (#329) (@wsmoses)
  • Move validation up (#330) (@vchuravy)
  • Add type error and array fix (#332) (@wsmoses)
  • Rand (#333) (@wsmoses)
  • Fix type analysis on 1.8 (#335) (@wsmoses)
  • Fix jl_arraycopy on phi (#336) (@wsmoses)
  • Ensure that loading CUDA doesn't break things on 1.6 (#341) (@vchuravy)
  • Rebase: Move compilation out of threadsfor (#342) (@vchuravy)
  • Unbreak CI until JLL bump (#344) (@vchuravy)
  • CompatHelper: bump compat for GPUCompiler to 0.16, (keep existing compat) (#345) (@github-actions[bot])
  • Jacobian returns one array (#351) (@vchuravy)
  • Remove tuple from gradient(::Forward) without chunking (#352) (@vchuravy)
  • Bump jll version (#355) (@vchuravy)
Enzyme.jl - v0.9.6

Published by github-actions[bot] over 2 years ago

Enzyme v0.9.6

Diff since v0.9.5

Merged pull requests:

  • remove Manifest now that 0.15.1 is out (#300) (@vchuravy)
  • Upgrade to Enzyme 0.0.31 (#302) (@vchuravy)
  • Apply safe_name to new functions (#305) (@vchuravy)
  • fix doctests (#307) (@vchuravy)
  • Convert sentinal for sub_transfer (#308) (@vchuravy)
  • Backports for 0.9.6 (#314) (@vchuravy)
Enzyme.jl - v0.9.5

Published by github-actions[bot] over 2 years ago

Enzyme v0.9.5

Diff since v0.9.4

Merged pull requests:

  • Backports 0.9.5 (#297) (@vchuravy)
Enzyme.jl - v0.9.4

Published by github-actions[bot] over 2 years ago

Enzyme v0.9.4

Diff since v0.9.3

Closed issues:

  • [Vector][Forward Mode] Illegal replacement (#281)
  • Augmented forward pass missing for grow_end (#287)

Merged pull requests:

  • Update Enzyme_jll (#286) (@vchuravy)
  • fix misnomer and add ijl variant for grow_end (#288) (@vchuravy)
  • Better error on unknown concrete type (#290) (@vchuravy)
  • Backports for 0.9.4 (#291) (@vchuravy)
Enzyme.jl - v0.9.3

Published by github-actions[bot] over 2 years ago

Enzyme v0.9.3

Diff since v0.9.2

Merged pull requests:

  • Initial array push handling (#105) (@wsmoses)
  • Cleanup generic_call a bit (#268) (@vchuravy)
  • add an assertion build to CI (#269) (@vchuravy)
  • Make sure that the GC passes run over our functions (#271) (@vchuravy)
Enzyme.jl - v0.9.2

Published by github-actions[bot] over 2 years ago

Enzyme v0.9.2

Diff since v0.9.1

Closed issues:

  • Illegal updateAnalysis prev:{[-1]:Integer} new: {[-1]:Pointer} (#212)

Merged pull requests:

  • Add dictionary test (#264) (@vchuravy)
Enzyme.jl - v0.9.1

Published by github-actions[bot] over 2 years ago

Enzyme v0.9.1

Diff since v0.9.0

Merged pull requests:

  • Nix the Runtime, we shouldn't need it (#229) (@vchuravy)
  • Test that exceptions are thrown (#243) (@vchuravy)
  • Better errors for all (#263) (@vchuravy)
Enzyme.jl - v0.9.0

Published by github-actions[bot] over 2 years ago

Enzyme v0.9.0

Diff since v0.8.5

Closed issues:

  • const global ref seems to be internalized during compilation (#203)
  • Enzyme.jl hits an unknown intrisic error when diffing through sincos. (#219)
  • Zygote.@adjoint from Enzyme.autodiff (#233)
  • Segfault / Bus Error (#238)
  • MPI Type error (#244)
  • Exception (about missing gemm!?) not throwing at the Julia level and instead by LLVM (#249)

Merged pull requests:

  • Handle sincos (#224) (@wsmoses)
  • add buildkite (#231) (@vchuravy)
  • Add Buildkite to stable (#232) (@vchuravy)
  • Adjust to threads ABI in 1.8 (#234) (@vchuravy)
  • Add BLAS detection (#237) (@wsmoses)
  • MISC BUDE.jl and LULESH.jl fixes (#239) (@wsmoses)
  • Add ABI change (#242) (@wsmoses)
  • Additional BLAS fixes (#246) (@wsmoses)
  • Debug Macos (#247) (@wsmoses)
  • Cleanup FFI support (#248) (@vchuravy)
  • Fix alloc handler (#251) (@wsmoses)
  • Add stored inline inactive (#252) (@wsmoses)
  • Bump GPUCompiler compat (#253) (@wsmoses)
  • Fix blas handle (#254) (@wsmoses)
  • Parallel without GPUCompiler caching (#255) (@wsmoses)
  • require GPUCompiler 0.14 (#256) (@vchuravy)
  • Bump JLL (#257) (@wsmoses)
  • Fix BLAS on Windows (#260) (@vchuravy)
Package Rankings
Top 6.22% on Juliahub.com
Badges
Extracted from project README
Stable Dev Build Status Coverage