Comments (14)
@martinjm97 this PR #1712 tells Enzyme to act conservative on non-affine things which hopefully fixes your issue here (aka hopefully having the effect of saying non-differentiable vars can be non-affine)
from enzyme.
@martinjm97 I don't see the relevant code, can you upload to enzyme explorer (enzyme.mit.edu/explorer)
from enzyme.
ah I see, the code is not the same as in the CI test harness
vs
Can you just use the version from CI (e.g. https://github.com/EnzymeAD/Enzyme/blob/main/enzyme/test/Integration/Sparse/eigen_analysis.cpp) which should have the relevant setup / code, and then add the harness onto it?
from enzyme.
Sorry, the code I'm referring to isn't: https://github.com/martinjm97/sparse_deriv_enzyme/blob/0650345099790f8ac4e3471de1d7330c543fd9b5/eigenanalysis/eigen_analysis.cpp#L75
It's https://github.com/martinjm97/sparse_deriv_enzyme/blob/cpp-viz/harness/eigenanalysis.cpp. Does the link not work for you?
Here I use matrix.h
as in CI. Everything is the same modulo some minor changes to types.
from enzyme.
So I don't see any autodiff call in that file? Nor any todense
from enzyme.
Sorry, just edited! I realized I was on main
instead of cpp-viz
. The link should now be correct.
from enzyme.
Do you see it here: https://github.com/martinjm97/sparse_deriv_enzyme/blob/cpp-viz/harness/eigenanalysis.cpp.
from enzyme.
Yeah so there's still indirect indexing there via faces (https://github.com/martinjm97/sparse_deriv_enzyme/blob/bba6af8b79d7aa34bd6deceb32f775a884a2c5a2/harness/eigenanalysis.cpp#L103)
from enzyme.
That the same as in
I think it's okay because we don't differentiate wrt that part of the computation.
from enzyme.
I mean I think that's what it is yelling about. We can extend it to add support for that [and be conservative and assume it is always the worst case condition].
from enzyme.
It's weird that it's working in CI, but not in the version in harness.
I'll can try again from scratch and see if there's some mistake that popped in somewhere.
from enzyme.
The CI one does a different L vs M, and the one in CI had the affine-ification, the other didn't
from enzyme.
Yeah. You're right. I'll revert and debug.
from enzyme.
Good point. I'll try getting L working
from enzyme.
Related Issues (20)
- Bug in Enzyme gsl branch HOT 6
- compilation slowdown associated with PreserveNVVMNewPM HOT 1
- Is this N/3 correct? HOT 10
- incorrect derivative of function that returns struct HOT 2
- C++ interface templates appear to be broken HOT 9
- `std::vector.push_back()` causes segementation fault in Enzyme HOT 4
- EnzymeCreateForwardDiff missing from CApi.h HOT 1
- Clarify usage through linking HOT 10
- Failing unittest Enzyme/ReverseMode/gsl_sf_legendre_array_e.ll
- Enzyme C++ sugar for vector input/outputs HOT 2
- Batching for Vector Intrinsics
- Syntax for custom forward rule in C? HOT 4
- How to use enzyme in my makefile? HOT 2
- Compiling with -O{1,2,3} breaks custom rule that works with -O0 HOT 2
- incorrect gradient for if statement HOT 2
- Failure with new c++ sugar
- Enzyme TA expectations/issues HOT 5
- C++ interface TODO list HOT 13
- No pass found for various GSL FFT and Statistics methods
- Enzyme derivatives attempting to free stack allocations HOT 4
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.