首页 > 其他分享 >[转]线性代数库介绍

[转]线性代数库介绍

时间:2024-09-26 19:49:47浏览次数:8  
标签:LAPACK BLAS 矩阵 介绍 线性代数 GPU 向量

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。

标签:LAPACK,BLAS,矩阵,介绍,线性代数,GPU,向量
From: https://www.cnblogs.com/rainbow70626/p/18434142

相关文章

  • linux 操作系统下dig命令的使用和介绍
    linux操作系统下dig命令的使用和介绍dig(DomainInformationGroper)是一个强大的命令行工具,用于查询DNS(域名系统)服务器,获取有关域名及其相关记录的信息。它广泛用于网络管理和故障排除dig命令的基本功能查询DNS信息:dig可以查询各种类型的DNS记录,包括A记录(IP地址)、MX记......
  • ECU电控软件开发及测试介绍
        伴随着电动化、智能化、网联化等技术发展的时代背景,各行各业电子电气架构都在发生深度变革。新型架构逐渐取代传统架构,比如汽车、工程机械、储能、船舶等领域,电子电气架构从传统分布式向域集中式,甚至向着中央集中式发展,控制器功能呈现集中化、复杂化的特点。为了提升开......
  • 自我介绍
    大家好,我叫袁坷炘。我觉得可以用乐观,热情,爱幻想,有点不切实际来形容我。我有一点慢热,一开始可能并不能看出我有多开朗,但是跟我相处久了,就可以发现其实我有点疯,是个戏精,经常随地大小演,嘿嘿。来找我帮忙时我肯定尽我全力,所以我还是比较乐于助人的。至于爱幻想,我经常对自己以后的生活......
  • 《刀剑江湖路》风灵月影怎么打?详细指南攻略介绍
    本攻略旨在帮助玩家更好地理解和运用风灵月影版修改器,以便在这款游戏中获得更加自由和丰富的游戏体验。请注意,使用修改器可能会影响游戏的平衡性和乐趣,建议适度使用以保持游戏的原汁原味。修改器下载安装1.下载地址:访问正规的软件或游戏修改器平台进行下载。2.安装过程:下......
  • JAVA 数据结构与算法 队列的介绍与应用
    一、队列队列是一个有序列表,可以用数组或者链表来实现遵循先入先出的原则。当我们将数据存入队列时称为”addQueue”,addQueue的处理需要有两个步骤:思路分析:将尾指针往后移:rear+1,当front==rear【空】若尾指针rear小于队列的最大下标maxSize-1,则将数据存入rear所......
  • ECU电控软件开发及测试介绍
        伴随着电动化、智能化、网联化等技术发展的时代背景,各行各业电子电气架构都在发生深度变革。新型架构逐渐取代传统架构,比如汽车、工程机械、储能、船舶等领域,电子电气架构从传统分布式向域集中式,甚至向着中央集中式发展,控制器功能呈现集中化、复杂化的特点。为了提升开......
  • 【沃虎干货】沁恒微电子以太网芯片介绍
    沃虎VOOHU采用互联网模式为用户提供产品和方案的数字化选型设计定制提供给客户最优的设计方案坚持为客户创造价值......
  • 南大通用GBase 8s高可用集群架构介绍
    对一些行业关键核心业务应用来说,必须满足7×24小时的不间断服务。这就要求数据库必须具备高可用性以避免数据库节点的单点故障。数据库的高可用架构选择直接影响到业务应用服务可用性的等级。一般行业的关键核心业务要求具备极高可用性,即99.999%的可用性级别。Oracle在高可用架构上......
  • 自我介绍
    1.大家好,我是刘传志,来自天津。我选择用深沉,内敛和严谨来描述自己。这三个词都不约而同揭示了我是个i人的事实,面对各种事情,我常常选择观望,在思考中寻求解决问题的最优解,并在不断完善方案中获得内心的满足。不过请各位相信我,如果揭开我稍显冰冷的外表,你将见证我火热的内心,期望着与各......
  • 自我介绍
    大家好!我叫易鑫。我是一个热情开朗、积极向上的人。生活中,我热爱探索新事物,喜欢去不同的地方旅行,领略各地的风土人情,每一次的旅程都能让我收获全新的体验和感悟。我也热衷于阅读,无论是文学名著还是科普读物,都能让我沉浸其中,在书的世界里汲取知识、拓宽视野。在工作或学习中,我认......