计算机科学

首页 > 计算机科学

BLAS

2018-08-31 10:21:39     所属分类:应用程序接口

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

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

目录

  • 1 BLAS级别
  • 2 原理
  • 3 实现
  • 4 参考文献

BLAS级别

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

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

原理

BLAS实现都一般对存储器层次结构最优化(Memory Hierarchy Optimization),使数据在快取重用、甚或减少转译后备缓冲器失误(TLB miss)而提高运算性能。[2] [3]

实现

  • Netlib BLAS:官方参考实现,程序语言为Fortran 77。[4]
  • ACML(AMD Core Math Library):厂商AMD的BLAS实现。[5]
  • ATLAS:BSD许可证开源的BLAS实现。[6]
  • CUDA SDK: NVIDIA CUDA SDK包含了BLAS功能,通过C编程实现在GeForce 8系列或更新一代显卡上运行。
  • GotoBLAS: 德克萨斯高级计算中心英语Texas Advanced Computing CenterKazushige Goto英语Kazushige Goto开发的BSD许可证开源的BLAS实现,但已停止了活跃开发,后继者为OpenBLAS。[7]
  • OpenBLAS: 继任GotoBLAS的开源BLAS的实现,主要由科学院软件研究所并行软件与计算科学实验室进行开发。[8]
  • ESSL: IBM的科学工程数值库ESSL,支持AIX和Linux系统下的PowerPC架构。[9]
  • Intel MKL: Intel核心数学库,支持Pentium,Intel Core与ItaniumCPU系列。实现平台包括Linux, Windows及OS X。[10]
  • GSL: GNU科学数值库(GNU Scientific Library)包含了GNU下的多平台C语言实现。
  • RenderScript IntrinsicBLAS: 基于Renderscript的Android移动终端高性能BLAS实现. [11]

参考文献

  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 互联网档案馆的存档,存档日期2010-06-14.
  4. ^ (英文)BLAS (Basic Linear Algebra Subprograms)
  5. ^ (英文)AMD Core Math Library 互联网档案馆的存档,存档日期2012-01-18.
  6. ^ (英文)Automatically Tuned Linear Algebra Software (ATLAS)
  7. ^ (英文)GOTOBLAS2
  8. ^ (英文)OpenBLAS
  9. ^ (英文)Engineering and Scientific Subroutine Library (ESSL)
  10. ^ (英文)Math Kernel Library from Intel
  11. ^ (英文)ScriptIntrinsicBLAS | Android Developers
版权声明:本文由北城百科网创作,转载请联系管理获取授权,未经容许转载必究。https://www.beichengjiu.com/computerscience/340365.html

显示全文

取消

感谢您的支持,我会继续努力的!

扫码支持
支付宝扫一扫赏金或者微信支付5毛钱,阅读全文

打开微信扫一扫,即可进行阅读全文哦


上一篇:HMPP开放标准
下一篇:OpenAL
相关推荐
爱淘宝