Are there any plans to support BLIS in Julia?

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.

1 Like

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?

1 Like

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:

3 Likes

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?

5 Likes

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.

2 Likes

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

2 Likes

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.

2 Likes