Rust crates for tensor contraction

@c.groth @pwulles

Have you already tested/benchmarked this crate?

https://crates.io/crates/tblis

Building tblis-src from source requires cmake and Python3. The latter is not nice (not portable). It may make sense to replace TBLIS and BLIS build systems by Rust scripts + cc crate.

I’ve met the author of TBLIS at the tensor contraction workshop in Toulouse earlier this year. I was not aware that Rust bindings exist. I haven’t tried either yet, but we could integrate tblis into mdarray-linalg.

I have made the title of this topic general.

TBLIS is highly optimized (without MPI), and is tightly integrated with BLIS (gemm backend).
For instance, they share threads.
It is not straightforward to port TBLIS to pure Rust.

A necessary building block is contracting two tensors into a tensor.
(For most of the tensor network applications, we do not need contraction path optimizations).

Does it make sense to create mdarray-contraction crate with several backends such as mdarray-contraction-blas and mdarray-contraction-tblis?