Enzyme
Enzyme copied to clipboard
High-performance automatic differentiation of LLVM and MLIR.
Currently: ``` No augmented forward pass found for jl_f_getfield declare nonnull {} addrspace(10)* @jl_f_getfield({} addrspace(10)*, {} addrspace(10)**, i32) local_unnamed_addr #14 Stacktrace: [1] julia_error(cstr::Cstring, val::Ptr{LLVM.API.LLVMOpaqueValue}, errtype::Enzyme.API.ErrorType, data::Ptr{Nothing}) @ Enzyme.Compiler ~/src/Enzyme/src/compiler.jl:2131 [2]...
``` Enzyme: 0.0.29 LLVM: 12.1 ``` Hi, I am building a differentiable renderer with Enzyme. However, I spotted a very bad memory leak issue with Enzyme when I differentiate the...
We should add a timer to TypeAnalysis and ask the user to send a bug report, after the compile time crosses a certain relative threshold. https://llvm.org/doxygen/classllvm_1_1Timer.html
Let's add compile time regression tests. I've collected some useful resources: https://www.npopov.com/2020/05/10/Make-LLVM-fast-again.html http://llvm-compile-time-tracker.com https://green.lab.llvm.org/green/view/Compile%20Time/ https://lnt.readthedocs.io/_/downloads/en/latest/pdf/ https://github.com/llvm/llvm-lnt https://github.com/llvm/llvm-test-suite/tree/main/CTMark
Ideally typtree equivalency would just be a pointer compare, instead of a structural compare.
https://llvm.org/docs/NewPassManager.html The tricky part is to keep our custom command line options working.
Handle forward mode in `handleBLAS` in `AdjointGenerator.h`.
Is there a way to build Enzyme without any optimization flags? It would help with debugging application codes (libCEED, in my case).
Add a derivative mode `__enzyme_jacobian`, that computes the jacobian using forward and reverse mode.