Paul Tiede
Paul Tiede
Slight reduction ```julia using Enzyme using TransformVariables struct Material{T} rpeak::T p1::T end function ip(m::Material, p) (;X, Y) = p return (X^2 + Y^2)^m.p1 end struct Foo{G,T} grid::G trf::T end function...
I just noticed something pretty funky. If I change the definition of `ip` to ```julia function ip(m::Material, p) (;X, Y) = p return m.p1 end ``` I don't get a...
The primal is fine and ya I am guessing its the same culprit
Oh also this is on `Enzyme#main` ```julia (Enzyme) pkg> st Status `~/Research/Enzyme/Project.toml` [7da242da] Enzyme v0.13.0 `https://github.com/EnzymeAD/Enzyme.jl.git#main` [f151be2c] EnzymeCore v0.8.0 `https://github.com/EnzymeAD/Enzyme.jl.git:lib/EnzymeCore#main` ```
I've reduced it a bit. It is essentially just a loop over a matvec where the vec is a view. Let me know if this isn't enough. ```julia using Enzyme...
Further reduction ```julia using Enzyme, LinearAlgebra Nx = 2 Bs = ones(ComplexF64, Nx, Nx*Nx) function _mul!(out, A, b) mul!(out, A, b) return nothing end function _mul(A, b) out = similar(A,...
```julia after simplification : ; Function Attrs: mustprogress willreturn define "enzyme_type"="{[-1]:Float@double}" double @preprocess_julia_f2_11891({} addrspace(10)* noundef nonnull align 16 dereferenceable(40) "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer,...
Wait isn't the original code still a problem? This still gives me a zero in the first element ```julia function _mul!(A, b) return A[1]*b[1] end function EnzymeRules.augmented_primal(config::EnzymeRules.RevConfigWidth{1}, ::Const{typeof(_mul!)}, ::Type{
For instance this still gives me something weird ```julia function _mul!(A, b) return A*b[1] end function EnzymeRules.augmented_primal(config::EnzymeRules.RevConfigWidth{1}, ::Const{typeof(_mul!)}, ::Type{
Ok I need help understanding the overwritten stuff. So, in fwd pass I should check if b is overwritten. If it is, I need to store the forward pass `b`...