II (a). Build ML libs from Scratch

2867 ワード

Overview


The following packages will be installed:
  • OpenBLAS 0.2.19
  • Numpy 1.12.1
  • OpenCV 3.2

  • OpenBLAS 0.2.19


    Install LAPACK.
    sudo apt install liblapacke-dev
    

    Make and install (be careful of the prefix).
    make
    sudo make PREFIX=/usr/local/openblas install
    

    Add the following to .bashrc
    export PATH=$PATH:/usr/local/openblas/bin
    export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/openblas/lib
    export CPATH=$CPATH:/usr/local/openblas/include
    

    Numpy 1.12.1


    Download Numpy (https://github.com/numpy/numpy/releases/tag/v1.12.1)
    sudo apt install libfftw3-dev
    cd numpy
    cp site.cfg.example site.cfg
    

    Uncomment these lines to enable OpenBLAS and fftw3.
    [openblas]
    libraries = openblas
    library_dirs = /usr/local/openblas/lib
    include_dirs = /usr/local/openblas/include
    
    [fftw]
    libraries = fftw3
    

    Check configuration, and the output should look something like this.
    python setup.py config
    openblas_info:
      FOUND:
        libraries = ['openblas', 'openblas']
        library_dirs = ['/usr/local/openblas/lib']
        language = c
        define_macros = [('HAVE_CBLAS', None)]
    
      FOUND:
        libraries = ['openblas', 'openblas']
        library_dirs = ['/usr/local/openblas/lib']
        language = c
        define_macros = [('HAVE_CBLAS', None)]
    

    Then just build and install.
    python setup.py build
    sudo python setup.py install
    

    Install OpenCV 3.2


    Download:
  • https://github.com/opencv/opencv/archive/3.2.0.zip
  • https://github.com/opencv/opencv_contrib/archive/3.2.0.zip

  • Install dependent packages.
    sudo apt install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libgtk-3-dev libatlas-base-dev
    

    Configure CMAKE , build, and install. Note: don't compile under virtualenv , otherwise some of the libraries will have wrong Python path.
    mkdir build && cd build
    cmake -D CMAKE_BUILD_TYPE=RELEASE \
        -D WITH_OPENGL=ON \
        -D WITH_CUDA=ON \
        -D ENABLE_FAST_MATH=1 \
        -D CUDA_FAST_MATH=1 \
        -D WITH_CUBLAS=1 \
        -D CMAKE_INSTALL_PREFIX=/usr/local \
        -D INSTALL_PYTHON_EXAMPLES=ON \
        -D INSTALL_C_EXAMPLES=ON \
        -D OPENCV_EXTRA_MODULES_PATH=~/tmp/opencv_contrib-3.2.0/modules \
        -D BUILD_EXAMPLES=ON ..
    make -j8
    sudo make install
    

    References
  • http://withr.me/install-opencv-on-ubuntu-16/
  • http://notes.maxwi.com/2017/03/01/ubuntu-compile-opencv2-with-cuda-and-ffmpeg/