MKL学习——功能简介
基本術(shù)語
BLAS : Basic Linear Algebra Subprograms 基本線性代數(shù)子程序
BLACS : Basic Linear Algebra Communication Subprograms 基本線性代數(shù)通信子程序
LAPACK : Linear Algebra PACKage 線性代數(shù)包
ScaLAPACK : Scalable LAPACK
PBLAS : Parallel Basic Linear Algebra Subprograms 可并行基本代數(shù)子程序
FFT : Fast Fourier Transform 快速傅里葉變換
VM : Vector Mathematics 矢量數(shù)學
VS : Vector Statistics 矢量統(tǒng)計學
BRNGs : Basic Random Number Generators 基本隨機數(shù)生成器
PDE : Partial Differential Equations 偏微分方程
主要功能
解決大型計算問題,提供BLAS、LAPACK線性代數(shù)程序、快速傅里葉變換、矢量數(shù)學函數(shù)、隨機數(shù)生成函數(shù)以及其它一些函數(shù)。
功能域
BLAS程序
- BLAS Level 1 Routines:提供向量數(shù)據(jù)的加、減、縮放、點乘
 - BLAS Level 2 Routines:提供向量-矩陣的運算,比如乘法運算、一階矩陣和二階矩陣的更新、三角形系統(tǒng)的解法
 - BLAS Level 3 Routines:提供矩陣-矩陣的運算,比如矩陣相乘、k階更新、三角形系統(tǒng)的解法
 
稀疏BLAS程序
也分為Level 1 2 3程序,與BLAS程序類似,只不過利用了稀疏向量、稀疏矩陣的有點: 僅存儲向量或者矩陣的非零元素。
LAPACK程序
根據(jù)操作分為兩種功能:
- 解線性方程組,矩陣分解,矩陣求逆,estimate condition numbers
 - 解決最小二乘問題,特征值、奇異值問題,Sylvester 方程
 
稀疏求解程序
針對具有實系數(shù)和復數(shù)系數(shù)的對稱系數(shù)矩陣,可以直接進行系數(shù)求解。對于對稱矩陣,子程序能夠解決正定和非正定系統(tǒng)。
擴展Eigensolver程序
Extended Eigensolver RCI Routines是解決標準的(Ax=λx)以及泛化的(Ax=λBx)特征值問題的高性能計算程序,其中A和B是對稱或者Hermitian形式。針對給定的搜索區(qū)間,能夠生成所有的特征值和特征向量。
矢量數(shù)學函數(shù)
包含高度優(yōu)化實現(xiàn)的核心數(shù)學函數(shù)(power, trigonometric, exponential, hyperbolic )等,可在實數(shù)域或者復數(shù)域上操作。
統(tǒng)計學函數(shù)
矢量統(tǒng)計包含(比較專業(yè)的詞匯,直接英文表示):
- Pseudorandom, quasi-random 和non-deterministic random number generator去實現(xiàn)連續(xù)和離散分布。包含一系列的高度優(yōu)化的隨機數(shù)生成器和矢量數(shù)學函數(shù)
 - 各種各樣的卷積和相關(guān)操作
 - 單精度和雙精度的多維數(shù)據(jù)的初等統(tǒng)計分析
 
傅里葉變換函數(shù)
具有混合基(mixed raidx)支持的多維快速傅里葉變換函數(shù),支持離散傅里葉變換的一致性。
偏微分方程
提供了解偏微分方程的工具,工具是三角變換接口程序(Trigonometric Transform interface routines)以及泊松解法(Poisson Solver).
三角變換程序?qū)τ谟脩魧崿F(xiàn)自己的解法有幫助。用戶可以通過快速的sine, cosine以及交錯余弦變換(staggered cosine transforms)實現(xiàn)三角變換接口
泊松解法是用于快速解決簡單的Helmholtz 、泊松、拉普拉斯問題。解法的基礎,也就是三角變換接口,是基于快速傅里葉變換的接口。
其它支持的函數(shù)
提供了對于MKL的相關(guān)操作,以及庫和庫操作的基本信息,比如當前庫版本,CPU頻率的定時、設置、衡量,錯誤處理,內(nèi)存分配
深度神經(jīng)網(wǎng)絡(DNN)的數(shù)學核心庫
對于卷積、池化、normalization、激活、多維變換操作(multi-dimensional transposition operations)的最基本的前向和后向計算。
MKL中C語言數(shù)據(jù)類型的指定方法
如果你的數(shù)據(jù)類型與MKL數(shù)據(jù)類型二進制兼容其具有相同的表示與存儲設置的話,可以重定義特定的MKL數(shù)據(jù)類型。
重定義方法是在包含mkl.h之前用#define聲明一下
#define MKL_INT size_t #include "mkl.h"也可以用-D操作重定義數(shù)據(jù)類型,比如
...-DMKL_INT=size_t...后續(xù)
看完功能簡介,下一篇就開始從最簡單的向量-向量,矩陣-向量,矩陣-矩陣的操作開始學習
總結(jié)
以上是生活随笔為你收集整理的MKL学习——功能简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: MKL学习——数学运算库安装调试
 - 下一篇: k8s服务网关ambassador部署