Given the flexibility of the BLIS API and the ability to fuse kernels, I was just wondering if there are any plans of incorporating this functionality in Julia.
I don’t know about plans, but https://github.com/JuliaLang/julia/issues/30707 looks related.
Is there particular functionality from BLIS which you would like and which you think is not covered by julia already?
There’s an early package to support BLIS and the BLIS API:
I’ve used BinaryBuilder to compile BLIS binary libraries using BinaryBuilder. My main purpose was compiling a drop-in BLAS replacement for WebAssembly:
The key trick for native support would be compiling support for multiple CPU’s.
Also related is interesting work on supporting BLAS functionality directly in Julia:
Tye BLIS folks recently published benchmarks at https://github.com/flame/blis/blob/master/docs/Performance.md. It looks better than OpenBLAS, except for small matrices. It also supports mixed-precision. https://github.com/tkelman/BLIS.jl appears to be gone?
I believe https://github.com/Sacha0 did some work on this. I don’t know his discourse handle to ping him.
By the way it should be entirely possible to create BinaryBuilder project for Blis and provide julia wrappers.
As noted above, there’s already a start of a BinaryBuilder for Blis:
As I recall, building was pretty easy. I didn’t test it or try out builds that include different kernels. I don’t have near-term plans to take this any farther, though, so someone else might want to have a go at it.
Tagging on to this, I’ve just started wrapping the TBLIS library for tensor contractions. Not anything to write home about yet, but I thought I’d stick this here. https://github.com/mdav2/TBLIS.jl
Anyone still tuned-in?
Quite experimental but I’m trying to make a full-functional Julia wrapper for BLIS at BLIS.jl. It’s currently overwriting like LinearAlgebra.BLAS.gemm_wrapper!
to “redirect” mul!
backends.
Binary artifact for BLIS at Yggdrasil was updated as well. It now has Linux (x86_64/ARMv7/Aarch64), Windows and macOS.
For people interested in TBLIS, its binary artifact is also updated for all x86_64 platforms (Linux/Linux:MUSL/Windows/macOS/FreeBSD). Please allow me to further advertise BliContractor.jl which is a wrapper around TBLIS and exports methods compatible with TensorOperations.jl.