Building wav2letter++ 安裝依賴

安裝MKL

  • 官網(wǎng)下載Intel? Math Kernel Library for Linux安裝包
  • 采用tar -xvzf l_mkl_xxx.tgz命令解壓安裝包,進(jìn)入解壓后的安裝包,運(yùn)行./install.sh腳本執(zhí)行安裝過(guò)程
  • 根據(jù)提示一路接受,默認(rèn)安裝路徑是/opt/intel
  • 在目錄/opt/intel/mkl/bin下執(zhí)行./mklvars.sh intel64
  • 編輯vi ~/.bashrc設(shè)置環(huán)境變量
  • 在末尾加入代碼:
    export PATH=/opt/intel/bin:$PATH
    export LD_LIBRARY_PATH= /opt/intel/lib/intel64:/opt/intel/mkl/lib/intel64:$LD_LIBRARY_PATH
  • $ source ~/.bashrc 如果沒(méi)有報(bào)錯(cuò),則path生效

安裝Boost

  • wget https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.gz
  • tar zxvf boost_1_64_0.tar.gz
  • cd boost_1_64_0
  • ./bootstrap.sh
  • ./b2 install

安裝kenlm

安裝kenlm之前需要安裝好boost,xz,zlib,bzip,libbz2-dev等依賴。
它們的安裝參考博客:https://blog.csdn.net/sinat_33741547/article/details/79996742

  • wget https://kheafield.com/code/kenlm.tar.gz
  • tar -xvzf kenlm.tar.gz
  • cd kenlm
  • mkdir build && cd build
  • cmake ..
  • make -j 4
    這樣還無(wú)法在python環(huán)境中執(zhí)行
  • cd kenlm
  • python setup.py install
  • python #進(jìn)入python環(huán)境
  • import kenlm

安裝gflags

sudo apt-get install libgflags-dev

安裝glog

  • git clone https://github.com/google/glog
  • sudo apt-get install autoconf automake libtool
  • cd glog
  • ./autogen.sh
  • ./configure
  • make -j 4
  • make install

安裝google test

  • git clone https://github.com/google/googletest.git
  • mkdir mybuild
  • cd mybuild
  • cmake ${GTEST_DIR} #google test的下載目錄,比如我clone到了/data/xxx/googletest
  • make
  • make install

安裝fftw

sudo apt-get install fftw3

安裝libsndfile:

  • git clone git://github.com/erikd/libsndfile.git
  • sudo apt install autoconf autogen automake build-essential libasound2-dev \
    libflac-dev libogg-dev libtool libvorbis-dev pkg-config python
  • cd libsndfile
  • ./autogen.sh
  • ./configure --enable-werror
  • make
  • make check
    為了產(chǎn)生wav2letter++需要的.cmake配置文件
  • mkdir CMakeBuild
  • cd CMakeBuild
  • cmake ..
  • make
  • sudo make install

安裝ArrayFire

ArrayFire for Linux官方教程

  • sudo apt-get install -y build-essential git cmake libfreeimage-dev
    sudo apt-get install -y cmake-curses-gui
  • sudo apt-get install libglfw3-dev libfontconfig1-dev libglm-dev
  • git clone --recursive https://github.com/arrayfire/arrayfire.git
  • cd arrayfire
  • mkdir build && cd build
  • cmake .. -DCMAKE_BUILD_TYPE=Release
  • make -j 4
  • make install

然而我build一直有問(wèn)題,最后也沒(méi)成功。于是采用方法二:

  • 直接下載:ArrayFire-v3.6.1_Linux_x86_64.sh
  • bash ArrayFire-v3.6.1_Linux_x86_64.sh
  • 之后wav2letter++在cmake時(shí)加入選項(xiàng):
    -DArrayFire_DIR=/xxx/arrayfire/share/ArrayFire/cmake

安裝NCCL

到NVIDIA官網(wǎng)下載NCCL,選擇對(duì)應(yīng)的版本:

image.png

切換到NCCL文件所在目錄,運(yùn)行以下命令:

  • sudo dpkg -i nccl-repo-ubuntu1604-2.3.7-ga-cuda9.2_1-1_amd64.deb
  • sudo apt-get update
  • sudo apt install libnccl2=2.3.7-1+cuda9.2 libnccl-dev=2.3.7-1+cuda9.2

安裝flashlight

注意安裝flashlight之前需要安裝好arrayfire和nccl [flashlight還需要CUDA>=9.2,CUDNN>=7.2.1,所以我又去裝了cuda9.2 :(]

  • git clone https://github.com/facebookresearch/flashlight.git
  • export MKLROOT=/opt/intel/mkl
  • mkdir -p build #in the flashlight project directory:
  • cd build
  • cmake .. -DCMAKE_BUILD_TYPE=Release -DFLASHLIGHT_BACKEND=CUDA
    • 報(bào)錯(cuò)找不到ArrayFire,加上-D ArrayFire_DIR=/data/zd/arrayfire/share/ArrayFire/cmake選項(xiàng);
    • 報(bào)錯(cuò)找不到CUDA,加上-DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-9.2選項(xiàng);
  • make -j 4 #(or any number of threads)
  • make test
  • make install
    發(fā)現(xiàn)報(bào)錯(cuò)
     CMake Error at cmake_install.cmake:36 (file):
       file INSTALL cannot make directory
      "/usr/local/include/flashlight/cereal/cereal": No such file or directory
    
    可能是創(chuàng)建不了文件夾,于是改成sudo make install成功。

安裝wav2letter++

終于來(lái)到這一步了orz...

  • git clone --recursive https://github.com/facebookresearch/wav2letter.git
  • mkdir -p build
  • cd build
  • cmake .. -DCMAKE_BUILD_TYPE=Release -DCRITERION_BACKEND=CUDA
    -DArrayFire_DIR=/data/zd/arrayfire/share/ArrayFire/cmake
    -DCUDA_TOOLKIT_ROOT_DIR=/usr/local/cuda-9.2
  • make -j4

cmake過(guò)程依然出錯(cuò):

-- Looking for KenLM
CMake Error at cmake/Findkenlm.cmake:47 (message):
  kenlm library not found; please set CMAKE_LIBRARY_PATH or KENLM_LIB
Call Stack (most recent call first):
  src/decoder/CMakeLists.txt:5 (find_package)

-- Configuring incomplete, errors occurred!

需要在~/.bashrc中加上環(huán)境變量
export KENLM_ROOT_DIR=[your kenlm directory]
然后依然有錯(cuò):

--   Library mkl: not found
CMake Error at cmake/FindMKL.cmake:265 (MESSAGE):
  MKL library not found.  Please specify library location
Call Stack (most recent call first):
  src/feature/CMakeLists.txt:5 (find_package)

-- Configuring incomplete, errors occurred!

繼續(xù)在~/.bashrc中加上環(huán)境變量
export MKLROOT=/opt/intel/mkl
至此大功告成 :)。

參考文章:
https://www.cnblogs.com/venus024/p/5619373.html --MKL https://blog.csdn.net/u011641865/article/details/73498533 --Boost
https://blog.csdn.net/sinat_33741547/article/details/79996742 --kenlm
http://blog.topspeedsnail.com/archives/5462 --fftw

如果最后始終配置不成功,推薦使用Docker吧:-)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容