Skip to content

Latest commit

 

History

39 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BLASFEO

License Build Status Documentation
License: MIT build-gh docs-stable docs-dev

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 microarchitectures
    • x86_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 supporting avx512. Warning: this only provides meaningful speedups for >= workstation class AMD ZEN5 CPUs. For others it may even degrade performance.
  • apple_m1-macos-* for >=m1 apple architectures.

Currently other arm architectures are unsupported but may be in the future if there are usecases.

Installation

To install BLASFEO.jl using

pkg> add BLASFEO

Usage

You 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.

About

Julia bindings for the BLAS for Embedded Optimization library

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages