Numpy和Scipy以及他们的Lapack和Atlas依赖关系

时间:2014-12-07 09:24:22

标签: performance numpy scipy lapack atlas

我试图通过图书馆Lapack和Atlas从源代码安装python numpy。我意识到Atlas本身包含lapack库。但是,如果我编译它(仅限地图集),它有0.5 MB。当部署Netlib Lapack时,liblapac.a库超过13 MB。这导致我提出以下问题:

关于numpy / scipy的问题:

  1. 我可以只使用netlib的Lapack安装numpy / scipy,还是只安装Atlas lib?
  2. (如果1的答案是肯定的)如果只安装了Atlas lib(没有netlib' Lapack) - 有任何缺点(性能,功能不可用,......)
  3. 是否有任何性能评估numpy / scipy如何安装Lapack / Atlas?
  4. Numpy,或者Scipy确实使用了更多的Atlas / Lapack?是否有任何显着差异?
  5. 谢谢!

1 个答案:

答案 0 :(得分:2)

ATLAS不是完整的LAPACK实现。它只提供了一些优化的例程。 This ATLAS page解释了如何构建也使用ATLAS的完整LAPACK。

从页面:

  

ATLAS本身仅提供相对少数包含LAPACK的例程。

The SciPy Homepage告诉你需要为SciPy进行LAPACK,而不是numpy:

  

在构建之前,您还需要安装NumPy和SciPy所依赖的软件包

     
      
  • BLAS和LAPACK库(可选,但强烈推荐用于NumPy,SciPy所需):通常为ATLAS + LAPACK,或MKL,或ACML
  •   
     

[...]

总结一下,如果你想要SciPy,你需要LAPACK。如果您想要更快的LAPACK,您可能也想安装ATLAS。如果您只想要numpy,则不需要LAPACK,但SciPy人员认为这是一个好主意。