首页 > 其他 > 详细

线性代数库介绍

时间:2021-08-04 19:23:26      阅读:36      评论:0      收藏:0      [点我收藏+]

1、BLAS
基本线性代数子程序(Basic Linear Algebra Subprograms),是一组向量和矩阵运行的接口规范标淮,规范向量之间的乘法、矩阵之间的乘法等,各软硬件厂商针对其产品(openblas、MKL等)对BLAS接口进行高度优化。

BLAS分为三级:
第一级,完成向量与向量或者向量与标量以及范数之间的运算。
第二级,涉及矩阵与向量之间的操作。
第三级,涉及矩阵与矩阵之间的操作。


2、LAPACK
线性代数库(linear algebra package),底层是BLAS,在BLAS基础上定义了矩阵和向量运算的函数,如线性方程组、矩阵分解、求奇异值等。

 

3、CBLAS和CLAPACK
在BLAS和LAPACK的基础上,增加了C的调用方式。

 

4、BLAS++和LAPACK++
在BLAS和LAPACK的基础上,增加了C++的调用方式。

 

5、ScaLAPACK
高扩展的LAPACK,Scalable LAPACK用于并行分布式内存机器的高性能线性代数例程库。ScaLAPACK 解决密集和带状线性系统、最小二乘问题、特征值问题和奇异值问题。ScaLAPACK 软件层次结构如下图:

技术分享图片

 


6、第三方开源线性代数库
Atlas、GotoBLAS、OpenBLAS,是BLAS接口和一部分LAPACK功能的开源实现,OpenBLAS是中科院张先轶博士基于GotoBLAS的基础实现;


7、第三方商业线性代数库
MKL,英特尔的科学计算的优化库,核心函数包括 BLAS、LAPACK、稀疏求解器、快速傅立叶变换 (FFT)、随机数生成器函数 (RNG)、汇总统计、数据拟合和矢量数学,优化英特尔 CPU、GPU 和其他加速器的应用程序;
ACML,AMD核心数学程序库,继任者是AMD 优化 CPU 库( AOCL ),包括开源BLIS、libFLAME、ScaLAPACK、FFTW和 AOCL-Sparse ,闭源 AMD LibM、memcpy和 RNG。
cuBLAS,NVIDIA针对GPU也推出,基于BLAS的实现,用以在GPU上做矩阵和向量计算;


8、MAGMA
面向下一代体系架构(多核CPU和多GPU)开源的线性代数软件包,是用于异构/混合架构的密集线性代数库的解决方案。MAGMA可以使用数学库中[MKL、OpenBLAS、ATLAS、ACML, ESSL(IBM 数学库)+ CUDA]的任意一个,MAGMA库的设计在功能、数据存储和接口方面与LAPACK相似,能够轻松地将现有的软件从LAPACK移植到MAGMA。

 

线性代数库介绍

原文:https://www.cnblogs.com/liu-shaobo/p/15100266.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!