BLAS学习

article/2025/9/17 23:46:23

导师突然通知要开始关于blas的讨论班,之前甚至都没听说过blas这个词,又要开始新一波的锤炼小白之路了…

1. BLAS简介

首先BLAS的全称是 Basic Linear Algebra Subprograms,即 基础线性代数子程序库,其中包含了一系列基本的线性代数运算函数的接口,因此BLAS也会被称为 矩阵运算库

需要注意,BLAS是一个接口的标准而不是某种具体实现,也就是说即便不同版本的BLAS库可以实现相同的接口和功能,但每个接口内部的算法和程序是可以不同的,即具体实现不相同。目前存在几种不同的BLAS (性能对比可参考矩阵运算库之间的性能区别):

1.1 两种基本运算库

  • BLAS:其官网是 Netlib,Netlib用Fortran语言实现了BLAS的这些API接口,但只是一般性地实现了基本功能,并没有对运算做过多的优化,因此这个版本的 BLAS 被称为 reference BLAS,运行速度较慢,通常被其他版本用于衡量性能。之后Netlib又产生了C 语言的版本 cBLAS,除一些接口外与BLAS之间并没有太大的区别。
  • LAPACK:其官网也是 Netlib,是Netlib以BLAS为底层利用Fortran语言实现的另一矩阵运算库,该库相比于BLAS库提供了更为丰富的计算工具,其运行效率也要比BLAS库高。对应cBLAS,也产生了相应的cLAPACK

1.2 三种高级运算库

  • MKL:其官网是 MKL(Math Kernel Library),它是基于英特尔® C++和Fortran编译器构建而成,底层包含了BLAS、LAPACK、ScaLAPACK(面向集群的 LAPACK 分布式内存并行版本)、PARDISO(该并行直接稀疏矩阵解算器的三个阶段均实现了线程化)、DFTs(离散傅立叶变换)、VML(矢量数学库)、VSL(矢量统计学库),因此MKL提供的 BLAS 可以认为是当前性能最高的矩阵运算库。MKL 虽然不是一个开源软件,但目前可以免费下载使用。
  • Armadillo:其官网是 C++ library for linear algebra & scientific computing,与Matlab相似,是一个易于使用的C++矩阵库。其底层包含了LAPACK、BLAS和 ATLAS(Automatically Tuned Linear Algebra Soft) 封装包,支持MKL和 OpenBLAS 等诸多高性能版本。
  • Eigen:其官网是 C++ template library for linear algebra,Eigen是可以用来进行线性代数、矩阵、向量操作等运算的C++库,它采用源码的方式提供给用户使用,只需要包含Eigen的头文件即可使用。它支持以BLAS/LAPACK作为底层 (EIGEN_USE_BLAS、EIGEN_USE_LAPACKE),也支持以MKL作为底层 (EIGEN_USE_MKL_ALL),使用起来非常的方便。

1.3 对比

没有时间打字了,就直接截图过来了,上面给了参考链接,这里再放一遍 (矩阵运算库之间的性能区别)。

看到现在感觉MKL是最强的,在 BLAS简介 中看到作者说无论使用哪种软件,都推荐阅读一下 MKL中BLAS的说明文档。
在这里插入图片描述


http://chatgpt.dhexx.cn/article/6L0A7q6G.shtml

相关文章

android 您的手机上未安装应用程序的解决方法

android 创建桌面快捷方式的时候设置应用名称和图标是完全没有问题,但是点击快捷方式的时候出现“您的手机上未安装应用程序“,这是快捷方式的执行目标设置错误,也就是启动Activity。有些应用的启动Activity是欢迎界面,创建快捷方…

android显示应用程序未安装,如何解决安卓系统显示应用程序未安装

我们在安装软件的时候经常会遇到应用程序未安装这个问题,尤其是在更新软件或者是从ROM提取出来的软件会出现这样的问题。那我们该如何处理这个问题呢?下面我就为大家列举几个解决这种问题的办法。 产生应用程序未安装的原因 软件签名不一致。这种情况一般…

什么是android应用程序未安装,应用程序未安装,教您安卓系统应用程序未安装怎么解决...

大家在使用智能手机的时候,尤其是安卓系统的手机,在安装应用程序,也就是App的时候,有时会提示“应用程序未安装”,相信很多使用安卓机器的朋友都曾遇到过“应用程序未安装”的问题,但是懂得解决的用户并不多…

android studio AVD模拟器安装某些app出现 “app not installed(未安装应用程序)”的问题

android studio AVD模拟器安装某些app出现 “app not installed(未安装应用程序)”的问题 参考: 安装apk时出现INSTALL_FAILED_NO_MATCHING_ABIS?Android 开发之 INSTALL_FAILED 汇集表 问题说明 在为安卓模拟器中android 11版本的系统安装一些常用软…

一加5应用未安装怎么解决_应用程序未安装怎么解决 手机提示应用程序未安装解决办法...

安卓手机系统的应用繁多,丰富人们使用体验的同时,有时候还会出现种种问题,比如安装提示“应用程序未安装”,那么,遇见这个问题应该怎么处理呢?请阅读本文教程! 手机提示应用程序未安装解决办法 …

android开发下载安装app提示未安装应用

出现的情况是通过usb可以安装,然后用androidStudio运行生成的apk,发送出去,下载安装,提示未安装应用: 问题如图: 解决过程:在百度上看一些方案,不一致呢,问了问别人,通过正确的打包方式打包试一下,尝试过在AndroidStudio通过Build,然后Build…

什么是android应用程序未安装,显示“应用程序未安装”是怎么回事?程序未安装的解决图文步骤...

安卓手机安装应用的时候,有时候会莫名其妙无法安装……明明存储空间够的啊摔!经过搜索和尝试,本人找到一种可行的方法,下面分享给大家。目前看来,这是部分系统内的bug,下面,小编跟大家介绍安卓系统应用程序…

Andorid手机安装apk文件,提示应用未安装

项目场景:Andorid手机安装apk文件,提示应用未安装 通过Andorid studio打包生成的apk文件,在Andorid手机上安装时,提示应用未安装 安装apk文件到手机上,提示“应用未安装” 原因分析: 可能是手机上的Andor…

安装APK时提示“应用未安装”

情况说明:最近在做公司的移动端项目,作为新手碰到许多问题,不过也算是在披荆斩棘般前行。本来今天星期一高高兴兴来上班,结果测试姐姐跑过来说应用程序安装不上,忙活了一上午也没什么结果,最后还是靠公司前…

应用未安装

安卓删除软件之后安装失败 我在使用uniapp开发玩一个软件之后,打包,由于安卓之前是有一个旧的版本的,于是我把旧的版本删除之后,再去安装新的包,就会一直报错。 如图所示 出现这种原因是因为我在删除的时候&#xff…

手机apk应用程序未安装解决办法

用智能手机很多都会遇到“X应用程序未安装”这种情况,这是为什么呢?1、软件未卸载干净,比如是我以前手机装过手机淘宝,非正常卸载后再装可能就提示X应用程序未安装;2、下载的安装包不完整,也会导致X应用程序…

89C51单片机中的中断系统

89C51单片机中的中断系统 对于在单片机中的学习,中断系统是一难点,如果中断系统没有理解透彻,51单片机的学习就算是失败的。 首先,举例说明下什么是中断。 eg.当你在家正在吃着爆米花,看着电视,突然门铃响…

AT89C51单片机交通灯仿真图+代码

接上篇万年历,这篇博客也是记录我的实训内容,我们实训有万年历和交通灯。好了不说闲话,上正文。 不知道为何突然发现说原创审核不过,完全手写的,也不知道为何,哭 注:在评论有附本人交通灯的图噢…

基于AT89C51单片机的电子万年历PROTEUS仿真设计

目录 前 言 1 第一章 工作原理 2 1.1设计目标 2 1.1.1基本功能 2 第二章 硬件设计与原理 3 2.1 总设计框图 3 2.2 硬件设计分析 3 2.2.1 电源的设计 3 2.2.2 单片机最小系统 4 2.2.3 显示系统 10 2.2.4 LCD1602的指令说明及时序 12 2.2.5 LCD1602的RAM地址映射及标准字库表 14 …

基于at89c51单片机的交通灯控制设计

** 单片机自主学习项目*设计分析 —模拟LED交通灯 ** 一、开发背景与需求 1 开发背景 交通事业蓬勃发展,交通流量年年增长,道路交通繁忙,经常有严重堵车现象,特别是在交叉口,为了在叉口的各条干道实现合理的科学分…

以梦为马之89c51单片机驱动lcd

路有千万条,我要选择那条最难的走,这才是我该走的路 控制LCD实际上就是控制两个牛屎芯片 观察lcd1602,它有16个引脚,其含义如下图所示 查看数据手册看到如下时序图 再看说明书看到时序图介绍: 芯片手册混合写的&a…

AT89C51单片机的C语言代码和仿真模拟学习

单片机定时器学习 一、代码图片与仿真模拟图 #include <reg51.h>/*定义KEY*/ sbit KEY1 P1^0; sbit KEY2 P1^1;void Delay100ms() //12.000MHz延时100ms {unsigned char i, j;i 195;j 138;do{while (--j);} while (--i); }//判断KEY值并执行程序 void Judgefunctio…

AT89C51单片机制作简易密码锁

51单片机课程设计—制作密码锁 文章目录 51单片机课程设计---制作密码锁1.设计要求2.设计流程图3.重要代码解释4.仿真电路设计5.完整代码设计6.仿真结果图7.工程源码及protues仿真下载 1.设计要求 1.1能设定一组4位的数字开启密码&#xff08;设定密码功能&#xff09; 1.2用L…

AT89C51单片机万年历仿真图+代码

首先申明&#xff0c;这篇博客是用作记录本人实训内容的&#xff0c;代码我个人一字一字码的&#xff0c;就上网查了下数字温度传感器DS18B20的处理方法&#xff0c;基本都是个人完成的。 在这里吐槽下&#xff0c;本人辛辛苦苦码的代码&#xff0c;最后实训分数还没那些抄的人…

基于AT89C51单片机的电子万年历系统

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/87708258 源码获取 主要内容&#xff1a; 电子万年历系统以实时时钟芯片DS1302和AT89C52单片机为主要研究对象&#xff0c;着重进行51单片机控制系统的设计研究和如…