This is interesting:
julia> @btime dot($a1, $a2)
22.762 ns (0 allocations: 0 bytes)
18.782035065611815
julia> @btime dot($s1, $s2)
70.213 ns (0 allocations: 0 bytes)
18.782035065611826
julia> @btime dot($(vec(a1)), $(vec(a2)))
23.527 ns (0 allocations: 0 bytes)
18.782035065611815
julia> @btime dot($(vec(s1)), $(vec(s2)))
15.570 ns (0 allocations: 0 bytes)
18.782035065611815
It seems like dot
for SArrays
is not optimized very well.