BLAS

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

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

BLAS級別
BLAS按照功能被分为三个级别：
 Level 1：矢量-矢量运算

 Level 2：矩阵-矢量运算

 Level 3：矩阵-矩阵运算

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

實現
 Netlib BLAS官方参考实现，程序语言为Fortran 77。
 ACML（AMD Core Math Library）廠商AMD的BLAS實現。
 ATLASBSD许可证開源的BLAS實現。
 CUDA SDK NVIDIA CUDA SDK包含了BLAS功能，通过C编程实现在GeForce 8系列或更新一代显卡上运行。
 GotoBLAS 後藤和茂开发的BSD许可证開源的BLAS實現，但已停止了活跃开发，后继者为OpenBLAS。
 OpenBLAS 继任GotoBLAS的开源BLAS的实现，主要由中国科学院软件研究所并行软件与计算科学实验室进行开发。
 ESSL IBM的科学工程数值库ESSL，支持AIX和Linux系统下的PowerPC架构。
 Intel MKL Intel核心数学库，支持Pentium，Intel Core与ItaniumCPU系列。实现平台包括Linux, Windows及OS X。
 GSL GNU科学数值库（GNU Scientific Library）包含了GNU下的多平台C语言实现。
 RenderScript IntrinsicBLAS 基于Renderscript的Android移动终端高性能BLAS实现。

參考文獻 

應用程序接口