MKL学习——功能简介

基本术语

BLAS : Basic Linear Algebra Subprograms 基本线性代数子程序

BLACS : Basic Linear Algebra Communication Subprograms 基本线性代数通信子程序

LAPACK : Linear Algebra PACKage 线性代数包

ScaLAPACK : Scalable LAPACK

PBLAS : Parallel Basic Linear Algebra Subprograms 可并行基本代数子程序

FFT : Fast Fourier Transform 快速傅里叶变换

VM : Vector Mathematics 矢量数学

VS : Vector Statistics 矢量统计学

BRNGs : Basic Random Number Generators 基本随机数生成器

PDE : Partial Differential Equations 偏微分方程

主要功能

解决大型计算问题,提供BLAS、LAPACK线性代数程序、快速傅里叶变换、矢量数学函数、随机数生成函数以及其它一些函数。

功能域

BLAS程序

  • BLAS Level 1 Routines:提供向量数据的加、减、缩放、点乘
  • BLAS Level 2 Routines:提供向量-矩阵的运算,比如乘法运算、一阶矩阵和二阶矩阵的更新、三角形系统的解法
  • BLAS Level 3 Routines:提供矩阵-矩阵的运算,比如矩阵相乘、k阶更新、三角形系统的解法

稀疏BLAS程序

也分为Level 1 2 3程序,与BLAS程序类似,只不过利用了稀疏向量、稀疏矩阵的有点: 仅存储向量或者矩阵的非零元素。

LAPACK程序

根据操作分为两种功能:

  • 解线性方程组,矩阵分解,矩阵求逆,estimate condition numbers
  • 解决最小二乘问题,特征值、奇异值问题,Sylvester 方程

稀疏求解程序

针对具有实系数和复数系数的对称系数矩阵,可以直接进行系数求解。对于对称矩阵,子程序能够解决正定和非正定系统。

扩展Eigensolver程序

Extended Eigensolver RCI Routines是解决标准的(Ax=λx)以及泛化的(Ax=λBx)特征值问题的高性能计算程序,其中AB是对称或者Hermitian形式。针对给定的搜索区间,能够生成所有的特征值和特征向量。

矢量数学函数

包含高度优化实现的核心数学函数(power, trigonometric, exponential, hyperbolic )等,可在实数域或者复数域上操作。

统计学函数

矢量统计包含(比较专业的词汇,直接英文表示):

  • Pseudorandom, quasi-randomnon-deterministic random number generator去实现连续和离散分布。包含一系列的高度优化的随机数生成器和矢量数学函数
  • 各种各样的卷积和相关操作
  • 单精度和双精度的多维数据的初等统计分析

傅里叶变换函数

具有混合基(mixed raidx)支持的多维快速傅里叶变换函数,支持离散傅里叶变换的一致性。

偏微分方程

提供了解偏微分方程的工具,工具是三角变换接口程序(Trigonometric Transform interface routines)以及泊松解法(Poisson Solver).

三角变换程序对于用户实现自己的解法有帮助。用户可以通过快速的sine, cosine以及交错余弦变换(staggered cosine transforms)实现三角变换接口

泊松解法是用于快速解决简单的Helmholtz 、泊松、拉普拉斯问题。解法的基础,也就是三角变换接口,是基于快速傅里叶变换的接口。

其它支持的函数

提供了对于MKL的相关操作,以及库和库操作的基本信息,比如当前库版本,CPU频率的定时、设置、衡量,错误处理,内存分配

深度神经网络(DNN)的数学核心库

对于卷积、池化、normalization、激活、多维变换操作(multi-dimensional transposition operations)的最基本的前向和后向计算。

MKL中C语言数据类型的指定方法

如果你的数据类型与MKL数据类型二进制兼容其具有相同的表示与存储设置的话,可以重定义特定的MKL数据类型。

重定义方法是在包含mkl.h之前用#define声明一下

#define MKL_INT size_t
#include "mkl.h"

也可以用-D操作重定义数据类型,比如

...-DMKL_INT=size_t...

后续

看完功能简介,下一篇就开始从最简单的向量-向量,矩阵-向量,矩阵-矩阵的操作开始学习

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MKL学习——向量操作

前言 推荐两个比较好的教程: BLAS (Basic Linear Algebra Subprograms) LAPACK for Windows 命名规范 BLAS基本线性代数子程序的函数命令都有一定规范&#xff0c;便于记忆 <character> <name> <mod> () character 定义的是数据类型 s实数域&#…

【caffe-Windows】识别率批量输出——matlab实现

前言 今天看到群里有人问”用matlab输出测试集的精度“&#xff0c;瞎试了一下&#xff0c;好像还成功了。主要还是依据前面所有在matlab中操作caffe的博客。 这里说一下&#xff1a;classification.m是适用单张图片的精度&#xff0c;类似于classification.exe的功能&#x…

MKL学习——矩阵向量操作

前言 前面介绍的BLAS Level 1是向量-向量的操作&#xff0c;而这里的BLAS Level 2主要还是对矩阵-向量之间的操作。命名规则与前面的一样&#xff0c;主要记住定义的是数据类型 s实数域&#xff0c;单精度c复数域&#xff0c;单精度d实数域&#xff0c;双精度z复数域&#xf…

MKL学习——矩阵矩阵操作

前言 前面介绍了BLAS Level 1中向量-向量操作&#xff0c;以及BLAS Level 2中矩阵-向量的操作&#xff0c;就剩下这一篇的BLAS Level 3中的矩阵-矩阵的操作了。对稀疏矩阵的操作以后等要用再看看。对基本的矩阵和向量运算的函数有所了解以后&#xff0c;就进行常用参数分析&am…

MKL学习——线性代数概念相关

前言 回顾一下BLAS Level 1 2 3中的运算都有什么类型 BLAS Level 1 在BLAS Level 1中&#xff0c;进行的是向量-向量的操作。其中相关概念有 向量类型: 实数域&#xff0c;复数域&#xff0c;共轭运算操作: 元素求和&#xff0c;向量相加&#xff0c;向量拷贝&#xff0c;点乘…

MKL学习——基本操作C++实现

前言 前面介绍了各种向量-向量&#xff0c;矩阵-向量&#xff0c;矩阵-矩阵的函数简介。根据自身目前状况&#xff0c;主要使用实数域的操作&#xff0c;也就是说关注单精度float类型的s和双精度double类型的d。还有就是用的基本都是全矩阵&#xff0c;没有经过压缩&#xff0…

相机矩阵(Camera Matrix)

前言 最近翻阅关于从2D视频或者图片中重构3D姿态的文章及其源码&#xff0c;发现都有关于摄像机参数的求解&#xff0c;查找了相关资料&#xff0c;做一下笔记。 国际惯例&#xff0c;来一波参考网址 透视变换、透镜畸变及校正模型、相机校正(Camera Calibration)、Matlab相…

损失函数梯度对比-均方差和交叉熵

前言 我们都知道在机器学习中&#xff0c;希望算法或者网络收敛更快&#xff0c;有些是对数据预处理&#xff0c;尤其是Batch Normalization&#xff0c;有些是采用不同的激活函数&#xff0c;尤其是Relu激活函数取得了巨大的成功&#xff0c;还有一种加速收敛方法是更换损失函…

如何选择深度学习优化器

前言 转载地址&#xff1a;如何选择深度学习优化器 作者&#xff1a;不会停的蜗牛 CSDN AI专栏作家 在很多机器学习和深度学习的应用中&#xff0c;我们发现用的最多的优化器是 Adam&#xff0c;为什么呢&#xff1f; 下面是 TensorFlow 中的优化器&#xff0c; https://w…

【caffe-Windows】以mnist为例的hdf5单标签处理——matlab实现

前言 主要是想尝试看一下多标签的caffe是如何进行输入输出的&#xff0c;但是目前还未找到基于原始caffe做多标签输入的代码&#xff0c;大部分都是基于源码做了一部分修改实现多标签分类&#xff0c;caffe官网倒是有一个多标签的Python程序&#xff0c;这个我慢慢研究研究&am…

【caffe-Windows】基于Python多标签方法——VOC2012数据集

前言 按照上一篇博客所遗留的话题&#xff1a;多标签分类&#xff0c;进行初步探索&#xff0c;此篇博客针对caffe官网的多分类进行配置&#xff0c;只不过是Python接口的&#xff0c;不过官网在开头说明可以使用HDF5或者LMDB进行操作&#xff0c;只不过Python更加方便罢了 国…

【theano-windows】学习笔记一——theano中的变量

前言 因为目前需要搭建一些关于RBM或者其他之类的模型&#xff0c;感觉不太会折腾caffe&#xff0c;然而我发现了几个有趣网址&#xff0c;使用theano实现了各种各样的模型&#xff0c;所以&#xff0c;尝试学一下theano。主要以官方教程为主&#xff0c;所以博客会以译文的方…

【theano-windows】学习笔记二——theano中的函数和共享参数

前言 上一篇博客中学到了theano中的变量类型&#xff0c;也就是dscalar、dvector之类的, 然后还有一个theano.function和eval函数, 将我们所定义的操作转换成theano可执行的函数&#xff0c;类似于def, 还有就是简单的线性代数运算操作。 在神经网络(NN)中, 我们声明了权重、…

【theano-windows】学习笔记三——theano中的导数

前言 就一个NN而言&#xff0c;包含梯度、偏置、参数更新&#xff0c;而前面第一篇博客学习了theano中符号变量的定义, 第二篇博客学习了变量的随机初始化, 变量之间的互相操作(类似于sigmoid(w∗xb)), 但是参数更新还应涉及到损失函数的偏导计算&#xff0c;这一章节就是看看…

【theano-windows】学习笔记四——theano中的条件语句

前言 按照官网教程&#xff0c;学习条件语句Switch和ifelse的使用 参考地址: conditions 性能对比 ifElse是将布尔变量和两个变量当做输入 Switch是将张量和两个变量当做输入. 因为Switch是元素级操作&#xff0c;所以比ifElse更具一般性 Switch需要对所有输出变量进行评…

【theano-windows】学习笔记五——theano中张量部分函数

前言 至此感觉应该可以写出一个logistic回归程序了&#xff0c;但是为了达到对theano中张量的更灵活的使用, 还是先看一下thenao.tensor对变量都提供了哪些操作&#xff0c;最全的文档戳这里或者这里, 这里就稍微摘取一点自我感觉以后可能用得多的函数 基本张量函数 创建张量…

【theano-windows】学习笔记六——theano中的循环函数scan

前言 Scan是Theano中最基础的循环函数, 官方教程主要是通过大量的例子来说明用法. 不过在学习的时候我比较习惯先看看用途, 然后是参数说明, 最后再是研究实例. 国际惯例, 参考网址 官网关于Scan的11个例子 官网更全面的介绍 简介 用途 递归的一般形式, 可以被用于循环s…

多标签分类、多任务分类、多输出回归概念

前言 虽然不是搞分类的&#xff0c;但是还是看看多标签和多分类的区别。为了避免自己的错误理解, 当然是选择原谅他啊…….找正规文档看哇. 以下翻译分别来自scikit-learn.org和 维基 喂鸡百科 国际惯例&#xff0c;贴上来源: Multiclass and multilabel algorithms Multi-…

【theano-windows】学习笔记七——logistic回归

前言 前面只是学了最基本的theano操作&#xff0c;但是theano中还有很多其他的东西&#xff0c;比如图结构&#xff0c;自定义函数等&#xff0c;这些暂时没有用到就先不看了&#xff0c;后续学啥用啥&#xff0c;没必要一口气吃个胖子&#xff0c;免得消化不良还把前面吃的东…

【theano-windows】学习笔记八——预备知识

前言 按照上一个博客所说的&#xff0c;直接按照深度学习0.1文档进行学习&#xff0c;当然在此之前我们需要了解这一系列教程所需要的数据集&#xff0c;以及一些概念性的东西 国际惯例&#xff0c;参考博客网址&#xff1a; 深度学习0.1文档 深度学习0.1文档-中文翻译 基…