LAPACK 和 BLAS 的高性能版本是什么?

what is high performance version of LAPACK and BLAS?

IMSL 的page

To obtain improved performance we recommend linking with High Performance versions of LAPACK and BLAS, if available.

什么是 LAPACK 和 BLAS 的高性能版本?

有很多好的实现可供选择:

  1. Intel MKL 可能是英特尔机器上最好的。它不是免费的,所以这可能是个问题。
  2. 根据他们的说法 benchmark, OpenBLAS 与 Intel MKL 相比相当不错并且是免费的
  3. Eigen is also an option and has a largish (albeit old) benchmark 在小矩阵上表现出良好的性能(尽管从技术上讲它不是一个嵌入式 BLAS 库)
  4. ATLAS, OSKI, POSKI 是自动调整内核的示例,它们声称可以在许多架构上工作

一般来说,如果不进行基准测试,很难从中选择一个,因为:

  1. 一些实现在不同类型的矩阵上效果更好。例如,Eigen 在秩较小 (100s)
  2. 的矩阵上效果更好
  3. 一些针对特定架构(例如 Intel 的)进行了优化
  4. 在某些情况下,BLAS 库的多线程可能与多线程应用程序(例如 OpenBLAS)冲突
  5. 开发人员的基准测试可能倾向于强调在实施方面效果更好的案例。

我建议选择一个或两个适用于您的用例的库,并在您的特定(或类似)机器上针对您的特定应用程序对它们进行基准测试。这很容易做到

LAPACK 和 BLAS 是性能库,它们基本上为线性方程组提供线性代数数学运算。您可以找到在计算机视觉中有用的此类库,例如(对象检测和分类)、经典算法、建模、...

TAsking 提供了 LAPACK 和 BLAS 性能库的完整 C 实现,这两个库都符合 ISO-C99 标准,具有完整的文档和示例,您可以在此处查看 http://www.tasking.com/products/tasking-lapack-performance-libraries