| License | Build Status | Documentation |
|---|---|---|
A Julia package wrapping the blasfeo linear algebra library. It is a wrapper around the binary package blasfeo_jll which builds architecture specific versions of blasfeo for the following hosts:
x86_64-[linux|macos|windows]-*with the following microarchitecturesx86_64: A fallback option, which does not have platform specific code.avx: For old processors supporting only the original avx extension.avx2: Modern processors supporting the avx2 extension.avx512: For platforms supportingavx512. Warning: this only provides meaningful speedups for >= workstation class AMD ZEN5 CPUs. For others it may even degrade performance.
apple_m1-macos-*for>=m1apple architectures.
Currently other arm architectures are unsupported but may be in the future if there are usecases.
To install BLASFEO.jl using
pkg> add BLASFEOYou can start using the BLASFEO API as follows:
using BLASFEO, LinearAlgebra
A = BlasfeoDmat(rand(100,100))
b = BlasfeoDvec(rand(100))
c = BlasfeoDvec(100)
mul!(c, A, b)
using BLASFEO.LibBlasfeo
d = BlasfeoDvec(100)
blasfeo_dgemv_n(100, 100, 2.0, A, 0, 0, b, 0, 0.0, d, 0, d, 0)
Currently only a small subset of the LinearAlgebra functionality is set up to correctly dispatch to BLASFEO calls.
Therefore, for full use please use the thin wrapper around the C API provided in BLASFEO.LibBlasfeo.