https://github.com/avik-pal/enzyme.jl

Julia bindings for the Enzyme automatic differentiator

https://github.com/avik-pal/enzyme.jl

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.8%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Julia bindings for the Enzyme automatic differentiator

Basic Info
  • Host: GitHub
  • Owner: avik-pal
  • License: mit
  • Language: Julia
  • Default Branch: main
  • Homepage: https://enzyme.mit.edu
  • Size: 3.61 MB
Statistics
  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Fork of EnzymeAD/Enzyme.jl
Created about 1 year ago · Last pushed 11 months ago

https://github.com/avik-pal/Enzyme.jl/blob/main/

#  The Enzyme High-Performance Automatic Differentiator of LLVM

[![Stable](https://img.shields.io/badge/docs-stable-blue.svg)](https://enzyme.mit.edu/julia/stable)
[![Dev](https://img.shields.io/badge/docs-dev-blue.svg)](https://enzyme.mit.edu/julia/dev)
[![Build Status](https://github.com/EnzymeAD/Enzyme.jl/workflows/CI/badge.svg)](https://github.com/EnzymeAD/Enzyme.jl/actions)
[![Coverage](https://codecov.io/gh/EnzymeAD/Enzyme.jl/branch/main/graph/badge.svg)](https://codecov.io/gh/EnzymeAD/Enzyme.jl)

This is a package containing the Julia bindings for [Enzyme](https://github.com/EnzymeAD/enzyme). This is very much a work in progress and bug reports/discussion is greatly appreciated!

Enzyme is a plugin that performs automatic differentiation (AD) of statically analyzable LLVM. It is highly-efficient and its ability perform AD on optimized code allows Enzyme to meet or exceed the performance of state-of-the-art AD tools.

Enzyme.jl can be installed in the usual way Julia packages are installed
```
] add Enzyme
```

Enzyme.jl can be used by calling `autodiff` on a function to be differentiated as shown below:

```julia
using Enzyme, Test

f1(x) = x*x
# Returns a tuple of active returns, which in this case is simply (2.0,)
@test first(autodiff(Reverse, f1, Active(1.0))[1])  2.0
```

For details, see the [package documentation](https://enzyme.mit.edu/julia).

More information on installing and using Enzyme directly (not through Julia) can be found on our website: [https://enzyme.mit.edu](https://enzyme.mit.edu).

To get involved or if you have questions, please join our [mailing list](https://groups.google.com/d/forum/enzyme-dev).

If using this code in an academic setting, please cite the following two papers (first for Enzyme as a whole, then for GPU+optimizations):
```
@inproceedings{NEURIPS2020_9332c513,
 author = {Moses, William and Churavy, Valentin},
 booktitle = {Advances in Neural Information Processing Systems},
 editor = {H. Larochelle and M. Ranzato and R. Hadsell and M. F. Balcan and H. Lin},
 pages = {12472--12485},
 publisher = {Curran Associates, Inc.},
 title = {Instead of Rewriting Foreign Code for Machine Learning, Automatically Synthesize Fast Gradients},
 url = {https://proceedings.neurips.cc/paper/2020/file/9332c513ef44b682e9347822c2e457ac-Paper.pdf},
 volume = {33},
 year = {2020}
}
@inproceedings{10.1145/3458817.3476165,
author = {Moses, William S. and Churavy, Valentin and Paehler, Ludger and H\"{u}ckelheim, Jan and Narayanan, Sri Hari Krishna and Schanen, Michel and Doerfert, Johannes},
title = {Reverse-Mode Automatic Differentiation and Optimization of GPU Kernels via Enzyme},
year = {2021},
isbn = {9781450384421},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
url = {https://doi.org/10.1145/3458817.3476165},
doi = {10.1145/3458817.3476165},
booktitle = {Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis},
articleno = {61},
numpages = {16},
keywords = {CUDA, LLVM, ROCm, HPC, AD, GPU, automatic differentiation},
location = {St. Louis, Missouri},
series = {SC '21}
}
```

Owner

  • Name: Avik Pal
  • Login: avik-pal
  • Kind: user
  • Location: Cambridge, MA
  • Company: Massachusetts Institute of Technology

PhD Student @mit || Prev: BTech CSE IITK

GitHub Events

Total
  • Push event: 29
  • Pull request event: 41
Last Year
  • Push event: 29
  • Pull request event: 41

Issues and Pull Requests

Last synced: 11 months ago

All Time
  • Total issues: 0
  • Total pull requests: 4
  • Average time to close issues: N/A
  • Average time to close pull requests: less than a minute
  • Total issue authors: 0
  • Total pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 4
Past Year
  • Issues: 0
  • Pull requests: 4
  • Average time to close issues: N/A
  • Average time to close pull requests: less than a minute
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 4
Top Authors
Issue Authors
Pull Request Authors
  • pull[bot] (35)
Top Labels
Issue Labels
Pull Request Labels
:arrow_heading_down: pull (23)