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 的高性能版本?
有很多好的实现可供选择:
- Intel MKL 可能是英特尔机器上最好的。它不是免费的,所以这可能是个问题。
- 根据他们的说法 benchmark, OpenBLAS 与 Intel MKL 相比相当不错并且是免费的
- Eigen is also an option and has a largish (albeit old) benchmark 在小矩阵上表现出良好的性能(尽管从技术上讲它不是一个嵌入式 BLAS 库)
- ATLAS, OSKI, POSKI 是自动调整内核的示例,它们声称可以在许多架构上工作
一般来说,如果不进行基准测试,很难从中选择一个,因为:
- 一些实现在不同类型的矩阵上效果更好。例如,Eigen 在秩较小 (100s)
的矩阵上效果更好
- 一些针对特定架构(例如 Intel 的)进行了优化
- 在某些情况下,BLAS 库的多线程可能与多线程应用程序(例如 OpenBLAS)冲突
- 开发人员的基准测试可能倾向于强调在实施方面效果更好的案例。
我建议选择一个或两个适用于您的用例的库,并在您的特定(或类似)机器上针对您的特定应用程序对它们进行基准测试。这很容易做到 。
LAPACK 和 BLAS 是性能库,它们基本上为线性方程组提供线性代数数学运算。您可以找到在计算机视觉中有用的此类库,例如(对象检测和分类)、经典算法、建模、...
TAsking 提供了 LAPACK 和 BLAS 性能库的完整 C 实现,这两个库都符合 ISO-C99 标准,具有完整的文档和示例,您可以在此处查看
http://www.tasking.com/products/tasking-lapack-performance-libraries
IMSL 的page 说
To obtain improved performance we recommend linking with High Performance versions of LAPACK and BLAS, if available.
什么是 LAPACK 和 BLAS 的高性能版本?
有很多好的实现可供选择:
- Intel MKL 可能是英特尔机器上最好的。它不是免费的,所以这可能是个问题。
- 根据他们的说法 benchmark, OpenBLAS 与 Intel MKL 相比相当不错并且是免费的
- Eigen is also an option and has a largish (albeit old) benchmark 在小矩阵上表现出良好的性能(尽管从技术上讲它不是一个嵌入式 BLAS 库)
- ATLAS, OSKI, POSKI 是自动调整内核的示例,它们声称可以在许多架构上工作
一般来说,如果不进行基准测试,很难从中选择一个,因为:
- 一些实现在不同类型的矩阵上效果更好。例如,Eigen 在秩较小 (100s) 的矩阵上效果更好
- 一些针对特定架构(例如 Intel 的)进行了优化
- 在某些情况下,BLAS 库的多线程可能与多线程应用程序(例如 OpenBLAS)冲突
- 开发人员的基准测试可能倾向于强调在实施方面效果更好的案例。
我建议选择一个或两个适用于您的用例的库,并在您的特定(或类似)机器上针对您的特定应用程序对它们进行基准测试。这很容易做到
LAPACK 和 BLAS 是性能库,它们基本上为线性方程组提供线性代数数学运算。您可以找到在计算机视觉中有用的此类库,例如(对象检测和分类)、经典算法、建模、...
TAsking 提供了 LAPACK 和 BLAS 性能库的完整 C 实现,这两个库都符合 ISO-C99 标准,具有完整的文档和示例,您可以在此处查看 http://www.tasking.com/products/tasking-lapack-performance-libraries