The BLASFEO and HPIPM frameworks

Gianluca Frison

Systems Control and Optimization Laboratory, University of Freiburg

Friday, September 15, 2017, 11:30 - 12:30

Room 02-012, Georges-Köhler Allee 102, Freiburg 79110, Germany

BLASFEO is a library of basic linear algebra routines, designed to provide high computational performance for matrices of rather small size, as typical in embedded optimization. In order to improve performance for small matrices, BLASFEO employs and exposes of a special matrix format, called panel-major, that optimizes data streaming and cache usage. This format is analogue to the one internally used by optimized BLAS implementations such as OpenBLAS and BLIS. BLASFEO provides a complete framework to operate with matrices in panel-major, avoiding the need to convert back and forth with column- or row-major formats, since the conversion is particularly costly for small matrices.

HPIPM is a library providing a set of quadratic programs (QP) and routines operate on them. Currently supported are dense QPs, optimal control problem (OCP) QPs and tree-structured OCP QPs. Solvers are of the interior point method (IPM) type. HPIPM is entirely built on top of BLASFEO (and therefore all matrices are in the BLASFEO format), and it provides a complete framework to operate on the QPs without the need to convert to other formats. The QP format used internally (the back-end format) is not exposed to the user, who sees a more familiar format based on column- or row-major matrix format (the front-end format). In the language of embedded optimization, the conversion between formats is performed off-line, and therefore it does not constitute an on-line overhead.