The BLAS API of BLASFEO

The BLAS API of BLASFEO
复制标题

BLASFEO 的 BLAS API

DOI:
--
复制
发表时间:
2019
影响因子:
2.7
通讯作者:
M. Diehl
M. Diehl
中科院分区:
计算机科学3区
文献类型:
--
作者:
G. Frison;Tommaso Sartor;Andrea Zanelli;M. Diehl

文献摘要

参考文献

被引文献

相似文献

用于嵌入式优化的基本线性代数子例程(BLASFEO)是一个密集的线性代数库,提供BLAS和LAPACK类例程的高性能实现,用于嵌入式优化和其他针对相对较小矩阵的应用。BLASFEO定义了一个应用程序编程接口(API),它使用压缩矩阵格式作为其本机格式。这种格式类似于优化的BLAS的内部存储缓冲区,但它向用户公开,并且它从例程调用中去除了打包成本。对于适合缓存的矩阵,BLASFEO的性能优于优化的BLAS实现,无论是开源的还是专有的。本文研究了向BLASFEO框架添加标准的BLAS API,并提出了一种在针对不同矩阵大小优化的两个或多个算法之间的实现切换。得益于BLASFEO中的模块化汇编框架,可以轻松开发具有混合列和面板主参数的定制线性代数内核。这个BLAS API的性能低于BLASFEO API,但它的性能仍然优于优化的BLAS,尤其是适合缓存中矩阵的LAPACK库。因此,它可以促进广泛的应用,其中使用标准的BLAS和LAPACK库,并且矩阵大小适中。特别是,本文调查了Octave、SciPy和Julia等科学编程语言的好处。
Basic Linear Algebra Subroutines For Embedded Optimization (BLASFEO) is a dense linear algebra library providing high-performance implementations of BLAS- and LAPACK-like routines for use in embedded optimization and other applications targeting relatively small matrices. BLASFEO defines an application programming interface (API) which uses a packed matrix format as its native format. This format is analogous to the internal memory buffers of optimized BLAS, but it is exposed to the user and it removes the packing cost from the routine call. For matrices fitting in cache, BLASFEO outperforms optimized BLAS implementations, both open source and proprietary. This article investigates the addition of a standard BLAS API to the BLASFEO framework, and proposes an implementation switching between two or more algorithms optimized for different matrix sizes. Thanks to the modular assembly framework in BLASFEO, tailored linear algebra kernels with mixed column- and panel-major arguments are easily developed. This BLAS API has lower performance than the BLASFEO API, but it nonetheless outperforms optimized BLAS and especially LAPACK libraries for matrices fitting in cache. Therefore, it can boost a wide range of applications, where standard BLAS and LAPACK libraries are employed and the matrix size is moderate. In particular, this article investigates the benefits in scientific programming languages such as Octave, SciPy, and Julia.
DOI: 10.1145/3168812
发表时间: 2018-02
期刊: Proceedings of the 2018 International Symposium on Code Generation and Optimization
影响因子: --
作者:
Daniele G. Spampinato;Diego Fabregat-Traver;P. Bientinesi;Markus Püschel
通讯作者: Daniele G. Spampinato;Diego Fabregat-Traver;P. Bientinesi;Markus Püschel