Comments (3)
It definitely should be possible and I agree the Julia front end is likely a good place to start (also happy to video call next week and do some planning).
My bet as to the big things that will need to be done for Numba as a front end:
- Load Enzyme as a plugin and call it as an optimization at the appropriate time (Julia has good example of)
- Expose API for gradients in numba
- Ensure Numba passes down all of the relevant bitcode
- Ensure Numba passes down Type Information that can be understood (as TBAA)
- Re-entry into Numba JIT if AD of non fully statically analzable code is desired
from enzyme.
You could take a look of how the Julia frontend does things, https://github.com/wsmoses/Enzyme.jl
GPUCompiler works similar to Numba, and there is a C-API call for creating the enzyme pass.
Happy to chat about the detailed strategy, but I am not familiar enough with Numba to make any direct recommendations.
from enzyme.
Hi !
Is there any news on this potential functionality ?
Thanks !
from enzyme.
Related Issues (20)
- Adjust tablegen to handle mutations during fwd-mode
- Incorrect value error HOT 11
- OpenMP Parallelization Support for CLASS
- differentiate reduction function with CUDA atomicAdd HOT 8
- sqrt behavior at 0 HOT 30
- Store not perssisted in reverse pass of rematerialized value
- inspect tape size with LLVM 9 HOT 3
- Enzyme hangs when using CoDiPack forward AD type in function HOT 7
- Support for Cuda Graphs to be able to AD Codes based on [AMReX](https://github.com/AMReX-Codes/amrex)
- `__enzyme_allocation_like` fails to detect null pointer argument index HOT 1
- faddeeva_erfc and friends not handled for macOS aarch64 HOT 7
- Create a default CustomErrorHandler using EmitFailure
- enzyme error when differentiating stateful lambda, but no problems with explicitly defined functor HOT 3
- compiler crash on simple `__enzyme_fwddiff()` call
- `__enzyme_autodiff` w/ `enzyme_out` + pass by reference crashes HOT 1
- Lookup undef error HOT 3
- Crashing input on LLVM 16 HOT 3
- No ClangEnzyme-<version>.so library created when compiling the code on MacOSX HOT 6
- No reverse pass found for Petsc Functions HOT 9
- Merge-Queue rerunning CI HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from enzyme.