BLAS 和 LAPACK 库是久经考验的传统标准,用于解算各种线性代数问题。英特尔® 数学核心函数库(英特尔® MKL)包含已针对英特尔® 处理器高度优化的 BLAS 和 LAPACK 实现。与 BLAS 和 LAPACK 的其他实现相比,英特尔® MKL 使您能够获得极大的性能提升。
BLAS
基本线性代数子程序 (BLAS) 提供作为许多线性代数问题基础的基本矢量和矩阵运算。英特尔® MKL BLAS 支持包括:
- BLAS 级别 1 - 矢量间的运算
- BLAS 级别 2 - 矢量与矩阵间的运算
- BLAS 级别 3 - 矩阵间的运算
- 稀疏 BLAS - BLAS 级别 1、2 和 3 的扩展
针对 BLAS 级别 2 和 3 提供了多种矩阵存储方案(完整、压缩和带状)。
英特尔 MKL 内的所有 BLAS 函数都是线程安全的。使用来自英特尔 MKL 的并行化(线程化)BLAS 例程,您无需改变应用程序即可获得增强的多处理性能。
稀疏 BLAS
使用已针对数据稀疏性进行细致优化的稀疏 BLAS 例程,可以大大节约计算机时间和内存。稀疏 BLAS 包含对稀疏数据(大多数元素都是零的数据)执行常见矢量和矩阵运算的一组函数。稀疏 BLAS 涵盖了针对双精度实函数选定的级别 1、2 和 3 BLAS 例程。稀疏 BLAS 通常会与稀疏矩阵解算器结合使用。英特尔 MKL 支持 NIST* 和 SparseKit* 类型的接口。
支持以下矩阵类型和数据存储格式:
| 矩阵类型 | | 数据存储格式 |
| 一般矩阵 | | 压缩稀疏行 (CSR) |
| 对称矩阵 | | 压缩稀疏列 (CSC) |
| 三角形矩阵 | | 块稀疏行 (BSR) |
| 对角矩阵 | | 对角 (DIA) |
| 斜对称 | | 坐标 (COO) |
| | 地平线矩阵 |
LAPACK
英特尔® MKL 中包含的线性代数程序包(LAPACK)例程用于解算以下问题:
LAPACK 例程支持实数和复数数据。对于具有下列类型矩阵的方程组,支持这些例程:一般矩阵、带状矩阵、对称或厄密共轭矩阵、三角形和对角矩阵。英特尔® MKL 内的 LAPACK 例程提供了多种矩阵存储方案。LAPACK 例程通过 Fortran 接口使用。
双精度一般矩阵乘法(DGEMM)是用于密集线性代数的重负荷例程。下图比较了英特尔® MKL 8.0 与 ATLAS*(自动调整线性代数软件)之间的 DGEMM 性能。ATLAS 是常用的线性代数软件包,其中包含完整的 BLAS API 和一小部分 LAPACK API。如欲了解更多 ATLAS 信息,请访问
http://math-atlas.sourceforge.net/ 
。*
已对英特尔 MKL 进行了优化和调试,以实现更高的性能并针对多线程提供更出色的伸缩能力。在当今双核和四核处理器上使用英特尔 MKL 所实现的性能是使用其他备选方案的 2 到 5 倍。下表可表明以下几点:
1. 英特尔 MKL 与 ATLAS* 相比具有明显的性能优势。
2. 英特尔 MKL BLAS 的多处理器/线程伸缩性能非常出色。
 点击放大
 点击放大
下图显示了使用多个线程时英特尔 MKL DGEMM 出色的可伸缩性能,以及相对于 ATLAS 的性能优势。
|
英特尔 MKL 内包含的 BLAS 和 LAPACK 功能针对英特尔处理器进行了高度优化,与 BLAS 和 LAPACK 的其他实现相比,它可以极大地提高应用程序的性能。
§性能测试和等级评定均使用特定的计算机系统和/或组件进行测量,这些测试反映了英特尔产品的大致性能。任何系统设计或配置方面的差异均可能对实际性能结果造成影响。购买者应进行多方咨询,以评估他们考虑购买的系统或组件的性能。如欲了解更多关于英特尔产品性能与性能测试信息,请访问
http://www.intel.com/cn/software/products/。