I've tried running docker build -f Dockerfile-CUDA .
and got this error:
[ 2%] Building CXX object CMakeFiles/wav2letter++.dir/src/data/Utils.cpp.o
[ 2%] Building CXX object CMakeFiles/wav2letter++.dir/src/data/W2lDataset.cpp.o
[ 2%] Building CXX object CMakeFiles/wav2letter++.dir/src/data/W2lNumberedFilesDataset.cpp.o
/root/wav2letter/src/data/W2lDataset.cpp: In member function 'virtual std::vector<af::array> w2l::W2lDataset::get(int64_t) const':
/root/wav2letter/src/data/W2lDataset.cpp:42:23: error: 'checkIndexBounds' was not declared in this scope
checkIndexBounds(idx);
^
CMakeFiles/wav2letter++.dir/build.make:422: recipe for target 'CMakeFiles/wav2letter++.dir/src/data/W2lDataset.cpp.o' failed
make[2]: *** [CMakeFiles/wav2letter++.dir/src/data/W2lDataset.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:181: recipe for target 'CMakeFiles/wav2letter++.dir/all' failed
make[1]: *** [CMakeFiles/wav2letter++.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
The command '/bin/sh -c export MKLROOT=/opt/intel/mkl && export KENLM_ROOT_DIR=/root/kenlm && cd /root/wav2letter && mkdir -p build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release -DCRITERION_BACKEND=CUDA && make -j8' returned a non-zero code: 2
when i checked out to commit fd2b33c31204836929caaa53578e1f99f9bb5901 everything worked fine
@AvielNiego — this was a breaking API addition from flashlight - recloning, building, and installing flashlight before building wav2letter++ again should work.
@AvielNiego I will update the image for flashlight for the latest master state (the wav2letter Dockerfile is based on it). After that, you could build the image for wav2letter.
@AvielNiego I will update the image for flashlight for the latest master state (the wav2letter Dockerfile is based on it). After that, you could build the image for wav2letter.
Cool, we will wait for the updates.
@AvielNiego @beknazar I have updated Dockerfile-CUDA in a way that it uses latest github version of flashlight during build. You can try to build image now.
@AvielNiego — this was a breaking API addition from flashlight - recloning, building, and installing flashlight before building wav2letter++ again should work.
@jacobkahn , I am trying to do "Building on Linux ".
cmake .. -DINTEL_MKL_DIR=/opt/intel/mkl/ -DCMAKE_BUILD_TYPE=Release -DCRITERION_BACKEND=CUDA worked fine.
But when I do make -j 4 , I get bellow error. How can I fix this?
megha@megha-ERAZER-X4709-D-C519:/media/home/megha/5_wav2letter/WAV_2_LETTER/wav2letter/build$ make -j 4
-- The C compiler identification is GNU 5.4.0
-- The CXX compiler identification is GNU 5.4.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- GTest found (library: /usr/lib/libgtest.so include: /usr/include)
-- ArrayFire found (include: /media/home/megha/5_wav2letter/arrayfire/include, library: ArrayFire::afcuda)
-- Found glog (include: /usr/local/include, library: /usr/local/lib/libglog.so)
-- GLOG found
-- Found gflags (include: /usr/include, library: /usr/lib/x86_64-linux-gnu/libgflags.so)
-- GFLAGS found
-- Found OpenMP_C: -fopenmp (found version "4.0")
-- Found OpenMP_CXX: -fopenmp (found version "4.0")
-- Found OpenMP: TRUE (found version "4.0")
-- OpenMP found
-- flashlight found (include: lib: flashlight::flashlight )
-- flashlight built in distributed mode.
-- Checking for [mkl_gf_lp64 - mkl_gnu_thread - mkl_core - iomp5 - pthread - m]
-- Library mkl_gf_lp64: /opt/intel/mkl/lib/intel64/libmkl_gf_lp64.so
-- Library mkl_gnu_thread: /opt/intel/mkl/lib/intel64/libmkl_gnu_thread.so
-- Library mkl_core: /opt/intel/mkl/lib/intel64/libmkl_core.so
-- Library iomp5: not found
-- Checking for [mkl_gf_lp64 - mkl_intel_thread - mkl_core - iomp5 - pthread - m]
-- Library mkl_gf_lp64: /opt/intel/mkl/lib/intel64/libmkl_gf_lp64.so
-- Library mkl_intel_thread: /opt/intel/mkl/lib/intel64/libmkl_intel_thread.so
-- Library mkl_core: /opt/intel/mkl/lib/intel64/libmkl_core.so
-- Library iomp5: not found
-- Checking for [mkl_gf - mkl_gnu_thread - mkl_core - iomp5 - pthread - m]
-- Library mkl_gf: not found
-- Checking for [mkl_gf - mkl_intel_thread - mkl_core - iomp5 - pthread - m]
-- Library mkl_gf: not found
-- Checking for [mkl_intel_lp64 - mkl_gnu_thread - mkl_core - iomp5 - pthread - m]
-- Library mkl_intel_lp64: /opt/intel/mkl/lib/intel64/libmkl_intel_lp64.so
-- Library mkl_gnu_thread: /opt/intel/mkl/lib/intel64/libmkl_gnu_thread.so
-- Library mkl_core: /opt/intel/mkl/lib/intel64/libmkl_core.so
-- Library iomp5: not found
-- Checking for [mkl_intel_lp64 - mkl_intel_thread - mkl_core - iomp5 - pthread - m]
-- Library mkl_intel_lp64: /opt/intel/mkl/lib/intel64/libmkl_intel_lp64.so
-- Library mkl_intel_thread: /opt/intel/mkl/lib/intel64/libmkl_intel_thread.so
-- Library mkl_core: /opt/intel/mkl/lib/intel64/libmkl_core.so
-- Library iomp5: not found
-- Checking for [mkl_intel - mkl_gnu_thread - mkl_core - iomp5 - pthread - m]
-- Library mkl_intel: not found
-- Checking for [mkl_intel - mkl_intel_thread - mkl_core - iomp5 - pthread - m]
-- Library mkl_intel: not found
-- Checking for [mkl_gf_lp64 - mkl_gnu_thread - mkl_core - pthread - m]
-- Library mkl_gf_lp64: /opt/intel/mkl/lib/intel64/libmkl_gf_lp64.so
-- Library mkl_gnu_thread: /opt/intel/mkl/lib/intel64/libmkl_gnu_thread.so
-- Library mkl_core: /opt/intel/mkl/lib/intel64/libmkl_core.so
-- Library pthread: /usr/lib/x86_64-linux-gnu/libpthread.so
-- Library m: /usr/lib/x86_64-linux-gnu/libm.so
-- MKL library found
-- MKL found
-- FFTW found
-- Required SndFile dependency Ogg found.
-- Required SndFile dependency Vorbis found.
-- Required SndFile dependency VorbisEnc found.
-- Required SndFile dependency FLAC found.
-- Found libsndfile: (lib: /usr/lib/x86_64-linux-gnu/libsndfile.so include: /usr/include
-- libsndfile found.
-- Looking for KenLM
-- Using kenlm library found in /media/home/megha/5_wav2letter/kenlm/build/lib/libkenlm.a
-- Using kenlm utils library found in /media/home/megha/5_wav2letter/kenlm/build/lib/libkenlm.a
-- kenlm lm/model.hh found in /media/home/megha/5_wav2letter/kenlm/lm/model.hh
-- Found kenlm (include: /media/home/megha/5_wav2letter/kenlm, library: /media/home/megha/5_wav2letter/kenlm/build/lib/libkenlm.a;/media/home/megha/5_wav2letter/kenlm/build/lib/libkenlm_util.a)
-- kenlm found
-- Could NOT find LibLZMA (missing: LIBLZMA_INCLUDE_DIR LIBLZMA_LIBRARY LIBLZMA_HAS_AUTO_DECODER LIBLZMA_HAS_EASY_ENCODER LIBLZMA_HAS_LZMA_PRESET)
-- LZMA not found
-- Could NOT find BZip2 (missing: BZIP2_LIBRARIES BZIP2_INCLUDE_DIR)
-- BZip2 not found
-- Z found (library: /usr/lib/x86_64-linux-gnu/libz.so include: /usr/include)
-- CUDA found (library: /usr/local/cuda/lib64/libcudart_static.a;-lpthread;dl;/usr/lib/x86_64-linux-gnu/librt.so include: /usr/local/cuda/include)
-- Adding warpctc:
-- Found CUDA: /usr/local/cuda (found suitable version "10.0", minimum required is "6.5")
-- warpctc: cuda found TRUE
-- warpctc: using CUDA 9.0 or above
-- warpctc: Building shared library with GPU support
-- Configuring done
-- Generating done
-- Build files have been written to: /media/home/megha/5_wav2letter/WAV_2_LETTER/wav2letter/build
[ 0%] Building NVCC (Device) object ../src/third_party/warpctc/build/CMakeFiles/warpctc.dir/src/warpctc_generated_reduce.cu.o
[ 0%] Building NVCC (Device) object ../src/third_party/warpctc/build/CMakeFiles/warpctc.dir/src/warpctc_generated_ctc_entrypoint.cu.o
Scanning dependencies of target warpctc
[ 0%] Linking CXX shared library libwarpctc.so
[ 0%] Built target warpctc
Scanning dependencies of target wav2letter++
[ 0%] Building CXX object CMakeFiles/wav2letter++.dir/src/common/Defines.cpp.o
[ 0%] Building CXX object CMakeFiles/wav2letter++.dir/src/common/Dictionary.cpp.o
[ 1%] Building CXX object CMakeFiles/wav2letter++.dir/src/common/Transforms.cpp.o
[ 1%] Building CXX object CMakeFiles/wav2letter++.dir/src/common/Utils.cpp.o
[ 1%] Building CXX object CMakeFiles/wav2letter++.dir/src/criterion/ConnectionistTemporalClassificationCriterion.cpp.o
[ 1%] Building CXX object CMakeFiles/wav2letter++.dir/src/criterion/CriterionUtils.cpp.o
[ 1%] Building CXX object CMakeFiles/wav2letter++.dir/src/criterion/ForceAlignmentCriterion.cpp.o
[ 1%] Building CXX object CMakeFiles/wav2letter++.dir/src/criterion/FullConnectionCriterion.cpp.o
[ 1%] Building CXX object CMakeFiles/wav2letter++.dir/src/criterion/Seq2SeqCriterion.cpp.o
[ 1%] Building CXX object CMakeFiles/wav2letter++.dir/src/criterion/backend/cuda/ConnectionistTemporalClassificationCriterion.cpp.o
[ 1%] Building CXX object CMakeFiles/wav2letter++.dir/src/criterion/attention/ContentAttention.cpp.o
[ 2%] Building CXX object CMakeFiles/wav2letter++.dir/src/criterion/attention/MedianWindow.cpp.o
[ 2%] Building CXX object CMakeFiles/wav2letter++.dir/src/criterion/attention/SoftWindow.cpp.o
[ 2%] Building CXX object CMakeFiles/wav2letter++.dir/src/criterion/attention/StepWindow.cpp.o
[ 2%] Building CXX object CMakeFiles/wav2letter++.dir/src/data/Utils.cpp.o
[ 2%] Building CXX object CMakeFiles/wav2letter++.dir/src/data/W2lDataset.cpp.o
[ 2%] Building CXX object CMakeFiles/wav2letter++.dir/src/data/W2lNumberedFilesDataset.cpp.o
/media/home/megha/5_wav2letter/WAV_2_LETTER/wav2letter/src/data/W2lDataset.cpp: In member function ‘virtual std::vector<af::array> w2l::W2lDataset::get(int64_t) const’:
/media/home/megha/5_wav2letter/WAV_2_LETTER/wav2letter/src/data/W2lDataset.cpp:42:23: error: ‘checkIndexBounds’ was not declared in this scope
checkIndexBounds(idx);
^
CMakeFiles/wav2letter++.dir/build.make:257: recipe for target 'CMakeFiles/wav2letter++.dir/src/data/W2lDataset.cpp.o' failed
make[2]: *** [CMakeFiles/wav2letter++.dir/src/data/W2lDataset.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:186: recipe for target 'CMakeFiles/wav2letter++.dir/all' failed
make[1]: *** [CMakeFiles/wav2letter++.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2
And also if you see in this, there are many libraries which were not found. For example, iomp5, mkl_gf so on. What am I missing?
Thanks :)
@megharangaswamy — don't worry about the MKL libraries that weren't found. The ones that were needed were found.
You need to reclone/pull flashlight from Github, then rebuild; make sure you sudo make install after building. After that, wav2letter should link to the updated lib.
Most helpful comment
@AvielNiego @beknazar I have updated
Dockerfile-CUDAin a way that it uses latest github version offlashlightduring build. You can try to build image now.