Skip to content

Commit 1e4673a

Browse files
author
Michael Abbott
committed
gradients with min are the problem
1 parent e20f0ae commit 1e4673a

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

src/macro.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1071,7 +1071,7 @@ function make_many_actors(act!, args, ex1, outer::Vector, ex3, inner::Vector, ex
10711071
isempty(store.unsafeleft)
10721072
else # working on ∇act!
10731073
isempty(store.unsaferight) &&
1074-
store.redfun == :+ && store.grad != :Dual # Disable @avx except for simplest grad, #53
1074+
store.redfun == :+ # Disable @avx for min/max grad, #53
10751075
end
10761076

10771077
if safe && store.avx != false && isdefined(store.mod, :LoopVectorization)

test/gradients.jl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -259,24 +259,24 @@ if Tullio._GRAD[] != :Dual
259259
dv = ForwardDiff.gradient(v -> sum(f6(m2,v)), v2)
260260
@test dv _gradient(sumf6, m2, v2)[2]
261261

262-
f7(x,y) = @tullio (max) z[i] := x[i,j]^2 / sqrt(y[i]) + exp(y[j])
262+
f7(x,y) = @tullio (max) z[i] := x[i,j]^2 / sqrt(y[i]) + exp(y[j]) avx=false
263263

264264
dm = ForwardDiff.gradient(m -> sum(f7(m,v2)), m2)
265-
@test dm _gradient(sumf7, m2, v2)[1]
265+
@test dm _gradient(sumf7, m2, v2)[1] # gives wrong answers with avx, 1.4 in tests
266266
dv = ForwardDiff.gradient(v -> sum(f7(m2,v)), v2)
267267
@test dv _gradient(sumf7, m2, v2)[2]
268268

269-
f8(x,y) = @tullio (max) z[i,l] := log(x[i,j,k,l]) / y[j]^1/3 avx=false # gives wrong answers
269+
f8(x,y) = @tullio (max) z[i,l] := log(x[i,j,k,l]) / y[j]^1/3 avx=false
270270
f9(x,y) = @tullio (min) z[i,j] := log(x[i,j,k,l]) / y[j]^1/3 avx=false
271271

272272
dm = ForwardDiff.gradient(m -> sum(f8(m,v2)), m4)
273-
@test dm _gradient(sumf8, m4, v2)[1]
273+
@test dm _gradient(sumf8, m4, v2)[1] # gives wrong answers with avx, 1.5 in tests
274274
dv = ForwardDiff.gradient(v -> sum(f8(m4,v)), v2)
275275
@test dv _gradient(sumf8, m4, v2)[2]
276276
dm = ForwardDiff.gradient(m -> sum(f9(m,v2)), m4)
277-
@test dm _gradient(sumf9, m4, v2)[1]
277+
@test dm _gradient(sumf9, m4, v2)[1] # gives wrong answers with avx, repl
278278
dv = ForwardDiff.gradient(v -> sum(f9(m4,v)), v2)
279-
@test dv _gradient(sumf9, m4, v2)[2]
279+
@test dv _gradient(sumf9, m4, v2)[2] # gives wrong answers with avx
280280

281281
end
282282

0 commit comments

Comments
 (0)