Mac OS 中的 BLAS/LAPACK 和原来的 BLAS/LAPACK 有什么区别(如果有的话)?

What is the difference (if there is any) between BLAS/LAPACK in Mac OS and the original BLAS/LAPACK?

我最近从 Linux 切换到 Mac OS。我需要 BLAS 和 LAPACK 来做一些计算。通过查看 BLAS 的维基百科,我了解到这两个库已在 Mac OS 中实现。不过据说

Apple's framework for Mac OS X and iOS, which includes tuned versions of BLAS and LAPACK. (https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms)

那么,MACBLAS/LAPACK和原来的有什么区别呢? (我查看了维基百科中引用的参考资料,但没有找到有关差异的信息。)

BLAS和LAPACK的实现有很多,也没有单一的Linux版本。 netlib.org 上有例程接口的规范和参考实现,但该参考实现并不侧重于特定平台上的最大性能(CPU、OS... ).

所以,Mac 库所做的是它有自己的代码来进行一些计算,这可能比参考库更快。它可以使用与参考 Fortran 代码不同的编程语言进行编程。

您可以尝试许多其他实现:Intel MKL、ATLAS、GotoBLAS、OpenBLAS、Sun Performance Library、Cray Scientific Libraries 等。它们通常是用 C 语言或汇编语言编写的特定 CPU.

Apple 为其 Accelerate 框架和 vecLib(包含 BLAS)宣传的最重要的功能是向量 (SIMD) 指令的优化使用。所有其他版本也尝试这样做。对于与其他实现的实际差异,有必要研究通常不可用的源代码(至少对于商业库而言)。