跳转到内容

BLAS:修订间差异

维基百科,自由的百科全书
删除的内容 添加的内容
Time killer留言 | 贡献
Andeling留言 | 贡献
添加OpenBLAS
第21行: 第21行:
* ATLAS:BSD[[開源軟體|開源]]的BLAS實現。<ref>{{en}}[http://math-atlas.sourceforge.net/ Automatically Tuned Linear Algebra Software (ATLAS)]</ref>
* ATLAS:BSD[[開源軟體|開源]]的BLAS實現。<ref>{{en}}[http://math-atlas.sourceforge.net/ Automatically Tuned Linear Algebra Software (ATLAS)]</ref>
* CUDA SDK: [[NVIDIA]] [[CUDA]] SDK包含了BLAS功能,通过C编程实现在GeForce 8系列或更新一代显卡上运行。
* CUDA SDK: [[NVIDIA]] [[CUDA]] SDK包含了BLAS功能,通过C编程实现在GeForce 8系列或更新一代显卡上运行。
* GotoBLAS:BSD開源的BLAS實現<ref>{{en}}[http://www.tacc.utexas.edu/tacc-projects/gotoblas2 GOTOBLAS2]</ref>
* GotoBLAS: {{Link-en|德克萨斯高级计算中心|Texas Advanced Computing Center}}{{Link-en|Kazushige Goto|Kazushige Goto}}开发的[[BSD协议]]開源的BLAS實現,但已停止了活跃开发,后继者为OpenBLAS。<ref>{{en}}[http://www.tacc.utexas.edu/research-development/tacc-software/gotoblas2 GOTOBLAS2]</ref>
* OpenBLAS: 继任GotoBLAS的开源BLAS的实现,主要由[[中国科学院软件研究所]]并行软件与计算科学实验室进行开发。<ref>{{en}}[http://www.openblas.net OpenBLAS]</ref>
* ESSL: [[IBM]]的科学工程数值库ESSL,支持[[AIX]]和[[Linux]]系统下的[[PowerPC]]架构。<ref>{{en}}[http://publib.boulder.ibm.com/infocenter/clresctr/vxrx/index.jsp?topic=/com.ibm.cluster.essl.doc/esslbooks.html Engineering and Scientific Subroutine Library (ESSL)]</ref>
* ESSL: [[IBM]]的科学工程数值库ESSL,支持[[AIX]]和[[Linux]]系统下的[[PowerPC]]架构。<ref>{{en}}[http://publib.boulder.ibm.com/infocenter/clresctr/vxrx/index.jsp?topic=/com.ibm.cluster.essl.doc/esslbooks.html Engineering and Scientific Subroutine Library (ESSL)]</ref>
* [[Intel MKL]]: [[Intel]]核心数学库,支持[[Pentium]],[[Intel Core]]与[[Itanium]]CPU系列。实现平台包括[[Linux]], [[Microsoft Windows|Windows]]及[[Mac OS X]]。<ref>{{en}}[http://software.intel.com/en-us/articles/intel-mkl/ Math Kernel Library from Intel]</ref>
* Intel MKL: [[Intel]]核心数学库,支持[[Pentium]],[[Intel Core]]与[[Itanium]]CPU系列。实现平台包括[[Linux]], [[Microsoft Windows|Windows]]及[[OS X]]。<ref>{{en}}[http://software.intel.com/en-us/articles/intel-mkl/ Math Kernel Library from Intel]</ref>
* [[GSL]]: [[GNU]]科学数值库(GNU Scientific Library)包含了[[GNU]]下的多平台C语言实现。
* GSL: [[GNU]]科学数值库(GNU Scientific Library)包含了[[GNU]]下的多平台C语言实现。



== 參考文獻 ==
== 參考文獻 ==

2014年12月7日 (日) 06:38的版本

BLAS(Basic Linear Algebra Subprograms,基础线性代数程序集)是一个应用程序接口(API)标准,用以规范发布基础线性代数操作的数值库(如矢量或矩阵乘法)。该程序集最初发布于1979年,并用于建立更大的数值程序包(如LAPACK)。在高性能计算领域,BLAS被广泛使用。例如,LINPACK的运算成绩则很大程度上取决于BLAS中子程序DGEMM的表现。

为提高性能,各軟硬件厂商则针对其產品对BLAS接口实现进行高度最佳化。

BLAS級別

BLAS按照功能被分为三个级别:[1]

  • Level 1:矢量-矢量运算
  • Level 2:矩阵-矢量运算
  • Level 3:矩阵-矩阵运算

原理

BLAS實現都一般對記憶體階層最佳化(Memory Hierarchy Optimization),使數據在快取重用、甚或減少轉譯後備緩衝區失誤(TLB miss)而提高運算效能。[2] [3]

實現


參考文獻

  1. ^ (英文)Eijkhout, Victor. Introduction to High Performance Scientific Computing (PDF). 2011: Page 349. ISBN 978-1-257-99254-6. 
  2. ^ (简体中文)BLAS庫在多核處理器上的性能測試與分析
  3. ^ (英文)Anatomy of High-Performance Matrix Multiplication
  4. ^ (英文)BLAS (Basic Linear Algebra Subprograms)
  5. ^ (英文)AMD Core Math Library
  6. ^ (英文)Automatically Tuned Linear Algebra Software (ATLAS)
  7. ^ (英文)GOTOBLAS2
  8. ^ (英文)OpenBLAS
  9. ^ (英文)Engineering and Scientific Subroutine Library (ESSL)
  10. ^ (英文)Math Kernel Library from Intel