• 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"

  • 相关阅读:
    解决错误:Your ApplicationContext is unlikely to start due to a @ComponentScan of the default package.
    IDEA编译时出现 Information:java: javacTask: 源发行版 1.8 需要目标发行版 1.8
    发票打印不全不完整的解决方案(Win10)
    Idea checkstyle插件的使用
    .Net转Java.08.format
    修复恢复"可疑"的SQLServer数据库
    .Net转Java.07.IDEA和VS常用操作、快捷键对照表
    .Net转Java.06.字符串的split的区别
    .Net转Java.05.为啥MySQL没有nolock
    .Net转Java.04.踩到switch的坑
  • 原文地址:https://www.cnblogs.com/huashiyiqike/p/3885996.html
Copyright © 2020-2023  润新知