See updated MWE in #381 (comment):
Old MWE:
julia> a = Metal.randn(10000, 10000);
julia> b = Metal.randn(10000, 10000);
julia> c = a * b';
julia> for i in 1:10
C = Metal.zeros(Float32, size(a))
mul!(C, a, b')
@assert C ≈ c "$i"
end
ERROR: AssertionError: 1
Stacktrace:
[1] top-level scope
@ ./REPL[58]:4
julia> for i in 1:10
C = Metal.zeros(Float32, size(a))
mul!(C, a, b')
@assert C ≈ c "$i"
end
ERROR: AssertionError: 8
Stacktrace:
[1] top-level scope
@ ./REPL[58]:4
julia> for i in 1:10
@assert a * b' ≈ c "$i"
end
ERROR: AssertionError: 3
Stacktrace:
[1] top-level scope
@ ./REPL[59]:2
julia> for i in 1:10
@assert a * b' ≈ c "$i"
end
ERROR: AssertionError: 8
Stacktrace:
[1] top-level scope
@ ./REPL[59]:2
See updated MWE in #381 (comment):
Old MWE:
This issue is technically still present, but unless someone is explicitly using the MPS matrix multiplication (MPSGraph is safe), they should not encounter it.