如果是,哪个?
我感兴趣的具体例子是np.einsum
。
我真的很困惑OPENBLAS/BLAS/LAPACK/ATLAS/Intel MKL提供什么。
我尝试阅读有关此内容并安装软件包,但弄得一团糟,所以我决定回到基础。
理想的答案将是是/否,如果答案是肯定,则是执行此操作的功能和配置的示例。通过配置,我的意思是操作系统,python/numpy/BLAS/LAPACK等版本
谢谢
为了消除你的困惑:
- BLAS 和 LAPACK 是标准化的 API(您可以将它们视为头文件)
- OpenBLAS、ATLAS 和 MKL 提供了这些 API 的优化实现。 如果你有MKL,你应该被覆盖,否则我推荐OpenBLAS而不是ATLAS。
如果没有另行说明,BLAS 库将检查某些环境变量以决定使用多少线程。 如果没有定义更具体的变量,大多数库将默认为 OMP_NUM_THREADS
,因此在例如 4 个线程上运行,尝试
export OMP_NUM_THREADS=4
在开始程序之前。 有关如何控制线程的更多详细信息,请查看 BLAS 实现手册/文档。