{"repo":"EnzymeAD/Enzyme","free":true,"listed":false,"github":"https://github.com/EnzymeAD/Enzyme","clone":"git clone https://github.com/EnzymeAD/Enzyme.git","description":"High-performance automatic differentiation of LLVM and MLIR.","language":"LLVM","stars":1678,"topics":["enzyme","llvm","ad","automatic-differentiation","c","cpp","tensorflow","pytorch","machine-learning","gradient"],"license":null,"category":"machine-learning","readme_excerpt":"The Enzyme High-Performance Automatic Differentiator of LLVM and MLIR Enzyme is a plugin that performs automatic differentiation (AD) of statically analyzable LLVM and MLIR. Enzyme can be used by calling enzyme autodiff on a function to be differentiated as shown below. Running the Enzyme transformation pass then replaces the call to enzyme autodiff with the gradient of its first argument. Enzyme is highly-efficient and its ability to perform AD on optimized code allows Enzyme to meet or exceed the performance of state-of-the-art AD tools. Detailed information on installing and using Enzyme can be found on our website: https://enzyme.mit.edu. A short example of how to install Enzyme is below: Or, install Enzyme using a package manager: Homebrew Spack Nix To get involved or if you have questions, please join our mailing list. If using this code in an academic setting, please cite the following three papers (first for Enzyme as a whole, second for GPU+optimizations, and third for AD of all other parallel programs (OpenMP, MPI, Julia Tasks, etc.)): Julia bindings, Rust bindings, and Fortran bindings are available for Enzyme.","default_branch":null,"files":null,"tree":[],"storefront":"/r/EnzymeAD","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/EnzymeAD/Enzyme/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}