[转]线性代数库介绍

news/2024/9/27 21:22:34

1、BLAS
基础线性代数程序集(Basic Linear Algebra Subprograms),基于Fortran实现的基本向量乘法,矩阵乘法的一种科学计算函数库,也是一组向量和矩阵运行的接口规范标淮,规范向量之间的乘法、矩阵之间的乘法等,BLAS实际上是将复杂的矩阵、向量运算简化成类似加减乘法一样的简单计算单元,各软硬件厂商的产品(openblas、MKL等)对BLAS接口进行高度优化。

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

 

2、PBLAS
并行基本代数程序集(Parallel Basic Linear Algebra Subprograms),执行消息传递,其接口与BLAS相似,简化了ScaLAPACK的设计,使得ScaLAPACK的代码与LAPACK 代码相当接近。


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

 

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

 

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

 

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

 


7、第三方开源线性代数库
Atlas、GotoBLAS、OpenBLAS,是BLAS接口和一部分LAPACK功能的开源实现。其中OpenBLAS是中科院张先轶博士基于GotoBLAS的基础实现,OpenBLAS和MKL性能不相上下,支持X86/X86_64(Intel/AMD)、VIA、Power、MIPS、MIPS64、IA64、SPARC、ARM、System Z、RISC-V 64、LOONGARCH64、Elbrus E2000处理器;

 

8、第三方商业线性代数库
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推出的线性代数计算库,基于Netlib BLAS的实现,用以在GPU上做矩阵和向量计算;
rocBLAS:AMD针对GPU推出的线性代数计算库,用以在GPU上做矩阵和向量计算,rocBLAS接口上兼容Netlib BLAS和cuBLAS-v2 API,cublas 替代为rocblas 即可。

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/65104.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

资本(生成函数)

$\quad $ 其中 $n\le 1e3 $ 、$ m\le 1e9 $ 、 $ T\le 10 $。 $\quad $ 这是一个排列问题,所以我们可以考虑指数型生成函数,这里我们称 \(x ^n\) 的系数为 \(\frac{x ^n}{n!}\) 之前的系数,下文记作 \([x ^n]\) 。 $\quad $ 我们定义函数 \(f _{k}(x)=\sum _{n=0}^{k}\frac{…

Axure解决列表项中触发内部元件交互的冲突问题

背景在绘制列表项中“更多”菜单按钮的时候,我想在我鼠标悬浮上去时会出现一个底色的效果 如下图:但我在做的过程中发现如果在一个组下勾选了"触发内部元件鼠标交互样式",那你鼠标还没放到"更多"按钮上就已经给触发了制作过程1、所需元件2、结构3、只需…

手把手教你建【货币】一题的网络流模型

现在已知如下问题,并告诉你这题可以用网络流来解决,你该怎么做,该怎么建出网络流的模型?一些前提: 显然可以发现绝不可能走横向向左的边,但可能走竖向向上的边(如下图) 那么图其实就是这样的:问从 \(s\) 到 \(t\) 的最小花费如果没有那 \(m\) 条限制,我们直接跑最短路…

人工智能教育技术学第二次作业

本节课我们学习了制作思维导图的工具,学习怎样运用软件制作思维导图,我们小组制作的思维导图是统计的知识点,通过思维导图我们将小学阶段学习到的有关于统计学的知识点都很好地总结出来。

C#(.NetCore)接入AD域用户的实现

很多公司电脑都是windows,而对用户的管理则很多采用AD域的形式来管理,本文简单的来介绍一下.NetCore中怎么接入AD域来实现登录等操作。首先,我这里使用的是.net6,其它版本类似。其次,这里假设你已经对AD域有了基本的了解,比如AD域所使用的LDAP、属性等,如果不了解先自行…

三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询...)

三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询...) @目录三,MyBatis-Plus 的各种查询的“超详细说明”,比如(等值查询,范围查询,模糊查询...)1. 条件构造器介绍2. 准备工作:3. 等值查询3.1 eq (条件筛选属性 = ?)3.2 allEq(满足多个条…

git 清除二进制文件的 changes 状态

问题:某个分支上修改了二进制文件,导致 changes 一直存在,切换到主分支也仍然存在,点击 Discard 也没用使用 git reset --hard 还原到初始状态,也不行,不过输出结果会给出错误信息Encountered 7 file(s) that should have been pointers, but werent:解决方法: 根据这个…