asappresearch / sru

Training RNNs as Fast as CNNs (https://arxiv.org/abs/1709.02755)
MIT License
2.11k stars 307 forks source link

Unable to reproduce speech experiments #36

Open breandan opened 6 years ago

breandan commented 6 years ago

Can you please provide more detailed instructions on how to run the speech experiments from your paper? I am a graduate student participating in the ICLR 2018 Reproduciblity Challenage and we are having some difficulty reproducing the speech experiments as described by the installation instructions provided in the sru/speech directory. I was able to install Kaldi and CUDA 8, but I am uncertain how to build @yzhang87's forked CNTK version. According to your instructions:

Build KaldiReader in CNTK (follow the instruction).

I assume "KaldiReader" is the name of the file in @yzhang87's fork, is this correct? Are Microsoft's official instructions the correct instructions or are there specific instructions we should look for in the forked repository? Several steps from the official instructions are no longer appropriate for the fork. Notably, the fork expects a missing file called mkl.h which is no longer provided in any of the open source MKLML releases, which are suggested by the Microsoft instructions. Can you clarify how to obtain the correct MKLML dependencies to run your experiment? Thank you!

taoleicn commented 6 years ago

@yzhang87

yzhang87 commented 6 years ago

I believe mkl.h is from cntk_customized mkl (version 2). Maybe here: https://www.microsoft.com/en-us/cognitive-toolkit/download-math-kernel-library/ ?

I believe my branch has diverged w/ official CNTK. Merge it needs some non-trivial work (I use latency-controlled BLSTM). So either you use the newest version and copy / modify my config. Or build my version and send email to me when you got any error message.

breandan commented 6 years ago

@yzhang87 When I try building your fork with the command configure --with-mkl=/usr/local/mklml --with-kaldi=/home/breandan/ClionProjects/kaldi, the build fails with this error. I am using g++ 6.3.0 with the Custom MKL v2 dependency as suggested above. Thanks for your help!

yzhang87 commented 6 years ago

I think you need install clapack. http://www.ifp.illinois.edu/grouper/clapack.html

On Wed, Dec 13, 2017 at 4:01 PM, breandan notifications@github.com wrote:

@yzhang87 https://github.com/yzhang87 When I try building your fork with the command configure --with-mkl=/usr/local/mklml --with-kaldi=/home/breandan/ClionProjects/kaldi, the build fails with this error https://gist.github.com/anonymous/83de863ee89450895296dc10acfd24f8. I am using g++ 6.3.0 with the Custom MKL v2 dependency as suggested above. Thanks for your help!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/taolei87/sru/issues/36#issuecomment-351564854, or mute the thread https://github.com/notifications/unsubscribe-auth/AErymqzsLGXV0VT62JIGGP2jyC3iCsG_ks5tAGVrgaJpZM4RAHYD .

-- Yu Zhang Computer Science and Artificial Intelligence Laboratory (CSAIL) Massachusetts Institute of Technology

breandan commented 6 years ago

Thanks! Still having trouble building the dependencies on Linux. I was able to install ATLAS and CLAPACK using the instructions provided. Installing ATLAS, this Kaldi thread was especially helpful (you need to run sudo apt-get install libatlas-base-dev first). This tutorial shares how to disable throttling on Sandybridge CPUs. Also I had to remove the following lines from the install_lib: section of ATLAS/build/Make.top as they do not apply to Linux:

        - cp $(LIBdir)/libsatlas.dylib $(INSTdir)/.
        - cp $(LIBdir)/libtatlas.dylib $(INSTdir)/.
        - cp $(LIBdir)/libsatlas.dll $(INSTdir)/.
        - cp $(LIBdir)/libtatlas.dll $(INSTdir)/.
        - cp $(LIBdir)/libsatlas.so $(INSTdir)/.
        - cp $(LIBdir)/libtatlas.so $(INSTdir)/.

CLAPACK was more difficult. I had to make several changes to build CLAPACK-3.2.1-CMAKE. The source code distributed on http://www.netlib.org/clapack/clapack-3.2.1-CMAKE.tgz was missing some header files (specifically signal1.h and sysdep1.h), which I was able to obtain from the F2CLIBS/libf2c directory of this repository. During testing, one of the tests (znep) failed, producing a segfault (please see log here). I was able to build all the *.a files required using the instructions contained in the README.install file, however I was not able to find any files named libF77.a and libI77.a as suggested in the link you provided. Finally, here is the logging output from the latest run of configure --with-mkl=/usr/local/mklml --with-kaldi=/home/breandan/ClionProjects/kaldi. Any advice?

yzhang87 commented 6 years ago

@breandan It seems still come version problem. I wasn't able to access my machine at school right now (already graduate). I'll try to rebuild it on my current machine.