You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I don't know if this is intended (it is certainly much faster), but it should probably be documented in that case.
On a related note, is there a specific reason for the implementing a custom version of matrix multiplication for the :slow path rather than just using the default? A quick benchmark seems to indicate that the default version is slightly faster.
julia>using IntervalArithmetic, BenchmarkTools
julia> IntervalArithmetic.configure(matmul =:slow)
(Float64, :set_based, :correct, :fast, :slow)
julia> M =sin.(interval(rand(100, 100))); # Satisfy m + n + p > 256
julia> res =similar(M);
julia>@benchmarkmul!($res, $M, $M)
BenchmarkTools.Trial:78 samples with 1 evaluation per sample.
Range (min … max):64.304 ms …64.798 ms ┊ GC (min … max):0.00%…0.00%
Time (median):64.379 ms ┊ GC (median):0.00%
Time (mean ± σ):64.407 ms ±99.221 μs ┊ GC (mean ± σ):0.00%±0.00%
▄▆▃▁▃ █▁▁
▇▆█████▆▆███▄▇▄▁▆▄▄▄▇▄▁▄▁▆▁▁▄▁▁▁▄▁▇▁▄▁▁▄▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▄ ▁
64.3 ms Histogram: frequency by time 64.8 ms <
Memory estimate:0 bytes, allocs estimate:0.
julia>@benchmarkinvoke($mul!, $(Tuple{Any,Any,Any}), $res, $M, $M) # Force use of default implementation
BenchmarkTools.Trial:88 samples with 1 evaluation per sample.
Range (min … max):56.995 ms …57.341 ms ┊ GC (min … max):0.00%…0.00%
Time (median):57.111 ms ┊ GC (median):0.00%
Time (mean ± σ):57.122 ms ±83.804 μs ┊ GC (mean ± σ):0.00%±0.00%
▁▃▁▃ ▃▁ ▃ ▃ ▃ █▁ ▃ ▁
▇▇▄▄▁████▁██▇▄█▄▁█▇▄▇█▁▄██▄▄▁▁▇▇▇▁▁▄▄█▇▁▁▇▁█▄▄▄▁▄▄▁▁▄▁▄▁▁▁▄ ▁
57 ms Histogram: frequency by time 57.3 ms <
Memory estimate:0 bytes, allocs estimate:0.
Toggling
IntervalArithmetic.configure(matmul = :fast)
seems to make it so that matrix multiplication forBigFloat
only runs inFloat64
precision.I don't know if this is intended (it is certainly much faster), but it should probably be documented in that case.
On a related note, is there a specific reason for the implementing a custom version of matrix multiplication for the
:slow
path rather than just using the default? A quick benchmark seems to indicate that the default version is slightly faster.All of this is on the currently latest commit.
The text was updated successfully, but these errors were encountered: