• numpy delete


    手动安装

    sudo rm -rf /usr/local/lib/python2.7/site-packages/numpy/
    sudo rm -rf /usr/local/lib/python2.7/site-packages/numpy-*.egg* sudo rm -rf /usr/local/bin/f2py


    pip安装
     sudo rm -rf /usr/local/lib/python2.7/dist-packages/numpy/
     sudo rm -rf /usr/local/lib/python2.7/dist-packages/numpy-*.egg*
    sudo rm -rf /usr/local/bin/f2py


    export BLAS=~/.local/lib/libopenblas.a
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.local/lib/



    30down voteaccepted

    I just compiled numpy inside a virtualenv with OpenBLAS integration, and it seems to be working ok. This was my process:

    1. Compile OpenBlas:

      git clone git://github.com/xianyi/OpenBLAS
      cd OpenBLAS && make FC=gfortran
      sudo make PREFIX=/opt/OpenBLAS install
      sudo ldconfig
    2. Grab the numpy source code:

      git clone https://github.com/numpy/numpy
      cd numpy
    3. Copy site.cfg.example to site.cfg and edit the copy:

      cp site.cfg.example site.cfg
      nano site.cfg

      Uncomment these lines:

      ....
      [openblas]
      libraries = openblas
      library_dirs = /opt/OpenBLAS/lib
      include_dirs = /opt/OpenBLAS/include
      ....
    4. Check configuration, build, install (optionally in a virutalenv)

      python setup.py config

      The output should look something like this:

      ...
      openblas_info:
        FOUND:
          libraries = ['openblas', 'openblas']
          library_dirs = ['/opt/OpenBLAS/lib']
          language = f77
      
        FOUND:
          libraries = ['openblas', 'openblas']
          library_dirs = ['/opt/OpenBLAS/lib']
          language = f77
      ...

      Then just build and install:

      python setup.py build && python setup.py install
    5. Optional: you can use this script to test performance for different thread counts.

      OMP_NUM_THREADS=1 python build/test_numpy.py
      
      FAST BLAS
      version: 1.8.0.dev-27690e3
      maxint: 9223372036854775807
      
      dot: 0.100896406174 sec
      
      
      OMP_NUM_THREADS=8 python test_numpy.py
      
      FAST BLAS
      version: 1.8.0.dev-27690e3
      maxint: 9223372036854775807
      
      dot: 0.0660264015198 sec

    There seems to be a noticeable improvement in performance for higher thread counts. However, I haven't tested this very systematically, and it's likely that for smaller matrices the additional overhead would outweigh the performance benefit from a higher thread count.

    share|improve this answer
     
    1  
    I apply what you did bu tending with foollowing error at your test script /linalg/lapack_lite.so: undefined symbol: zgelsd_ –  Erogol Jan 30 at 17:47 
    1  
    @Erogol Could you check that lapack_lite.so is correctly linked against the libopenblas.so you just built? You can call ldd /<path-to-site-packages>/numpy/linalg/lapack_lite.so - if you installed OpenBLAS with PREFIX=/usr/local you should see something like libopenblas.so.0 => /usr/local/lib/libopenblas.so.0 in the output. –  ali_m Jan 30 at 18:01 
    1  
    I have following line even I do strictly what you typed above answer. libopenblas.so.0 => /usr/lib/libopenblas.so.0 (0x00007f77e08fc000) –  Erogol Jan 30 at 18:06 
        
    It sounds like numpy has not been built correctly. I would suggest you uninstall the broken copy of numpy, do a python setup.py clean and python setup.py build and look for any error messages during the compilation. –  ali_m Jan 30 at 18:14 
        
    Also, you should probably call sudo ldconfig after installing OpenBLAS if you haven't already (I've added this line to my answer) –  ali_m Jan 30 at 18:21

    OMP_NUM_THREADS=7 python test.py

    #!/usr/bin/env python
    import numpy
    import sys
    import timeit

    try:
    import numpy.core._dotblas
    print 'FAST BLAS'
    except ImportError:
    print 'slow blas'

    print "version:", numpy.__version__
    print "maxint:", sys.maxint
    print

    x = numpy.random.random((1000,1000))

    setup = "import numpy; x = numpy.random.random((1000,1000))"
    count = 5

    t = timeit.Timer("numpy.dot(x, x.T)", setup=setup)
    print "dot:", t.timeit(count)/count, "sec"

  • 相关阅读:
    【分布式架构】“spring cloud”与“dubbo”微服务的对比
    gradle项目与maven项目互转
    Maven和Gradle对比
    从头开始搭建一个dubbo+zookeeper平台
    Kafka、 RabbitMQ、Redis、 ZeroMQ、 ActiveMQ、 Kafka/Jafka 对比
    Docker下redis的主从、持久化配置
    HIBERNATE与 MYBATIS的对比
    叶金荣:MySQL通用优化技巧
    为 Virtual Box 中的 CentOS 6.6 配置本地DVD光盘做yum软件源
    eclipse发布项目时,会自动还原server.xml和content.xml文件
  • 原文地址:https://www.cnblogs.com/huashiyiqike/p/3885996.html
Copyright © 2020-2023  润新知