# \[ANN\]: PaddedMatrices.jl, Julia BLAS and partially sized arrays

**URL:** <https://discourse.julialang.org/t/ann-paddedmatrices-jl-julia-blas-and-partially-sized-arrays/38215>\
**Category:** Package Announcements\
**Tags:** performance, blas\
**Created:** [April 26, 2020, 3:11am UTC](https://discourse.julialang.org/t/ann-paddedmatrices-jl-julia-blas-and-partially-sized-arrays/38215 "2020-04-26T03:11:06Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![RoyiAvital](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/royiavital/32/571_2.png) [@RoyiAvital](https://discourse.julialang.org/u/RoyiAvital)\
**Post date:** [April 26, 2020, 2:41pm UTC](https://discourse.julialang.org/t/ann-paddedmatrices-jl-julia-blas-and-partially-sized-arrays/38215/5 "2020-04-26T14:41:08Z")

</div>

@Elrod, You are amazing!  
I remember when [we talked about SIMD and the trick about padding Matrices so each row will number of elements which is a multiplication of the SIMD width which brought `PaddedMatrices`](https://discourse.julialang.org/t/strange-performance-of-a-loop/12504/36). You made miracles with that trick. Bravo!

Could you tell at what matrix size OpenBLAS / MKL starts using Multi Threading?  
I also think it would be nice to compare to MKL’s JIT feature for small matrices.

With Julia synthetic sugar you can create broadcasting of Matrix Multiplication in a style like [Packed GEMM](https://software.intel.com/en-us/articles/introducing-the-new-packed-apis-for-gemm) and [Batch GEMM](https://software.intel.com/en-us/articles/introducing-batch-gemm-operations).

By the way, I think Images could benefit a lot from this package.  
The approach of padding is widely used in this area and it solves the issue with taking care of aligned load and the tail of each row.

---

_[View the full topic](https://discourse.julialang.org/t/ann-paddedmatrices-jl-julia-blas-and-partially-sized-arrays/38215)._
