GithubHelp home page GithubHelp logo

templeblock / blasfeo Goto Github PK

View Code? Open in Web Editor NEW

This project forked from giaf/blasfeo

0.0 2.0 0.0 4.33 MB

Basic linear algebra subroutines for embedded optimization

License: Other

CMake 0.45% Makefile 1.29% C 32.05% MATLAB 0.12% Assembly 65.58% C++ 0.07% Shell 0.43%

blasfeo's Introduction

BLASFEO - BLAS For Embedded Optimization

BLASFEO provides a set of linear algebra routines optimized for use in embedded optimization.
It is for example employed in the Model Predictive Control software package HPMPC.

BLASFEO provides three implementations of each linear algebra routine (LA):
- HIGH_PERFORMANCE: a high-performance implementation hand-optimized for different computer architectures.
- REFERENCE: a lightly-optimized version, coded entirely in C withou assumptions about the computer architecture.
- BLAS_WRAPPER: a wrapper to BLAS and LAPACK routines.

The currently supported compter architectures (TARGET) are:
- X64_INTEL_HASWELL: Intel Haswell architecture or newer, AVX2 and FMA ISA, 64-bit OS.
- X64_INTEL_SANDY_BRIDGE: Intel Sandy-Bridge architecture or newer, AVX ISA, 64-bit OS.
- X64_INTEL_CORE: Intel Core architecture or newer, SSE3 ISA, 64-bit OS.
- X64_AMD_BULLDOZER: AMD Bulldozer architecture, AVX and FMA ISAs, 64-bit OS.
- X86_AMD_JAGUAR: AMD Jaguar architecture, AVX ISA, 32-bit OS.
- X86_AMD_BARCELONA: AMD Barcelona architecture, SSE3 ISA, 32-bit OS.
- ARMV8A_ARM_CORTEX_A57: ARMv8A architecture, VFPv4 and NEONv2 ISAs, 64-bit OS.
- ARMV8A_ARM_CORTEX_A53: ARMv8A architecture, VFPv4 and NEONv2 ISAs, 64-bit OS.
- ARMV7A_ARM_CORTEX_A15: ARMv7A architecture, VFPv3 and NEON ISAs, 32-bit OS.
- GENERIC: generic target, coded in C, giving better performance if the architecture provides more than 16 scalar FP registers (e.g. many RISC such as ARM).

The optimized linear algebra kernels are currently provided for OS_LINUX (x86_64 64-bit, ARMv8A 64-bit, ARMv7A 32-bit), OS_WINDOWS (x86_64 64-bit) and OS_MAC (x86_64 64-bit).

BLASFEO employes structures to describe matrices (blasfeo_dmat) and vectors (blasfeo_dvec), defined in include/blasfeo_common.h.
The actual implementation of blasfeo_dmat and blasfeo_dvec depends on the LA and TARGET choice.

More information about BLASFEO can be found in the ArXiv paper at the URL
https://arxiv.org/abs/1704.02457
or in the slides at the URL
www.cs.utexas.edu/users/flame/BLISRetreat2017/slides/Gianluca_BLIS_Retreat_2017.pdf
or in the video at the URL
https://utexas.app.box.com/s/yt2d693v8xc37yyjklnf4a4y1ldvyzon

--------------------------------------------------

Notes:

- 06-01-2018: BLASFEO employs now a new naming convention.
The bash script change_name.sh can be used to automatically change the source code of any software using BLASFEO to adapt it to the new naming convention.

blasfeo's People

Contributors

bnovoselnik avatar freyjo avatar giaf avatar jgillis avatar roversch avatar tmmsartor avatar zanellia avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.