4 ms·
Note that a lot of Julia are using Julia-based BLAS implementations now (of which there are multiple) https://discourse.julialang.org/t/ann-paddedmatrices-jl-j
by ChrisRackauckas 6y ago
Note that a lot of Julia are using Julia-based BLAS implementations now (of which there are multiple)
https://discourse.julialang.org/t/ann-paddedmatrices-jl-julia-blas-and-partially-sized-arrays/38215 https://discourse.julialang.org/t/ann-paddedmatrices-jl-juli...
https://github.com/MasonProtter/Gaius.jl https://github.com/MasonProtter/Gaius.jl
https://github.com/mcabbott/Tullio.jl https://github.com/mcabbott/Tullio.jl
These libraries have been incorporated in various spots in the machine learning, scientific machine learning, differential equation, and other libraries due to how they often outperform BLAS's like OpenBLAS. While the core language still links to OpenBLAS by default, this is up for debate for future versions of Julia given these developments (and movements in the standard library are being done to better incorporate the use of different BLAS implementations).
- dwohnitmok 6y agoHow much is "a lot" and how much of a debate is there? As far as I can tell from glancing through Gaius.jl is no longer maintained and both it and Tullio still consistently lose out to MKL across a wide range of matrix sizes and usually lose out to OpenBLAS on larger matrices. Moreover most victories for Tullio seem to be very machine dependent with different users reporting OpenBLAS still beating Tullio even on smaller matrix sizes.
- ChrisRackauckas 6y ago>As far as I can tell from glancing through Gaius.jl is no longer maintained and both it and Tullio still consistently lose out to MKL across a wide range of matrix sizes and usually lose out to OpenBLAS on larger matrices. It has mostly been replaced by PaddedMatrices.jl >Moreover most victories for Tullio seem to be very machine dependent with different users reporting OpenBLAS still beating Tullio even on smaller matrix sizes. On kernels which OpenBLAS directly represents. But Tullio is building more general kernels and has a pretty big win on tensor calculations that are not just one GEMM.
- mcabbott 6y agoThe goal of Tullio.jl is certainly not to beat MKL at its own game. But it can still be 4-5 times faster on some permutedims + matmul operations, by fusing them. Besides handling operations which aren't standard kernels, handling weird number types efficiently would be nice. (Being able to compile lighter-weight Julia images without BLAS libraries might be nice too, for other purposes.)
- scottlocklin 6y agoI'd be hugely surprised if they beat tuned-for-local-machine OpenBLAS or BLIS. Beating pre-compiled OpenBLAS is pretty trivial; I've seen interpreted code do that.
- celrod 6y agoOpenBLAS supports dispatching based on architecture. On Skylake-X, it was using SKYLAKEX kernels, not NEHALEM.