The SMatrix and MMatrix are the immutable and immutable matrix types from StaticArrays.jl, respectively, while StrideArray.jl and PtrArray.jl are mutable array types with optional static sizing providing by StrideArrays.jl. The benchmarks also included jmul! on base Matrix{Float64}, demonstrating the performance of StrideArrays's fully dynamic multiplication function.
SMatrix were only benchmarked up to size 20x20. As their performance at larger sizes recently increased, I'll increase the size range at which I benchmark them in the future.
The single-threaded dynamic multiplication is competitive with MKL and OpenBLAS from around 2x2 to 256x256: However, beyond this size, performance begins to fall behind: OpenBLAS eventually ascends to about 120 GFLOPS, but StrideArrays seems stuck at around 100 GFLOPS.