daquang/YAMDA

CUDNN error, how to debug?

littleblackfish opened this issue · 15 comments

I made an environment using the environment.yml. I attempt a test run with:

YAMDA/run_em.py -i positive-sample.fa -j negative-sample.fa -o test

which ultimately fails with

RuntimeError: CUDNN_STATUS_EXECUTION_FAILED

I use tensorflow on this particular machine all the time, so I know the gpu is functional. I am at a loss on how to even start debugging this.

Can you post the whole error output and confirm whether pytorch works?

Here is the full output:

Traceback (most recent call last):                                                                                                                                       | 0/1 [00:00<?, ?it/s]
  File "YAMDA/run_em.py", line 146, in <module>                                                                                                                        | 0/547 [00:00<?, ?it/s]
    main()
  File "YAMDA/run_em.py", line 131, in main
    seqs, seqs_neg = model.fit(seqs, seqs_neg)
  File "/nfs/nfs7/home/muroztur/YAMDA/yamda/mixture.py", line 115, in fit
    self._online_em(X, ppms_seeds, ppms_bg_seeds, fracs_seeds, 1)
  File "/nfs/nfs7/home/muroztur/YAMDA/yamda/mixture.py", line 268, in _online_em
    log_ratios = m_log_ratios(x).data
  File "/nfs/nfs5/home/nobackup/muroztur/miniconda3/envs/YAMDA-env/lib/python3.6/site-packages/torch/nn/modules/module.py", line 491, in __call__
    result = self.forward(*input, **kwargs)
  File "/nfs/nfs5/home/nobackup/muroztur/miniconda3/envs/YAMDA-env/lib/python3.6/site-packages/torch/nn/modules/conv.py", line 176, in forward
    self.padding, self.dilation, self.groups)
RuntimeError: CUDNN_STATUS_EXECUTION_FAILED

Can you recommend a straightforward way to confirm pytorch works?

Okay, I ran some examples from pytorch tutorials, and they seem to be running fine with torch.device("cuda:0").

Can you confirm whether YAMDA works with the included examples?

python run_em.py -r -e -i Examples/H1_POU5F1_ChIP_HAIB.fa.masked -j Examples/H1_POU5F1_ChIP_HAIB_shuffled.fa.masked -oc H1_POU5F1_output

I'm wondering if there's an issue with pytorch. I know that the newest version of pytorch uses cuda 10.2 but tensorflow still uses cuda 10.1, so cudnn might have some issues

Example yields the same error. It looks like the environment.yml specifies pytorch=0.4.0 which is what I have.

Also, the script does not quit but hangs after the error. I can see some memory use and an active process in nvidia-smi, but it does not seem to be doing anything (utilization 0%).

Ah I see. Try upgrading to the latest version of pytorch. pytorch 0.4.0 probably isn't compatible with your current version of cuda. Or, pick a version of pytorch that is compatible with your cuda version

Upgrading to pytorch-1.1.0 got me a little further, but still failed ultimately running the included example: :

Computing log likelihood:   0%|                                                                                                                                        | 0/389 [00:00<?, ?it/s]
Traceback (most recent call last):
  File "run_em.py", line 146, in <module>
    main()
  File "run_em.py", line 131, in main
    seqs, seqs_neg = model.fit(seqs, seqs_neg)
  File "/nfs/nfs7/home/muroztur/YAMDA/yamda/mixture.py", line 118, in fit
    log_likelihoods = self._compute_log_likelihood(X, ppms, ppms_bg, fracs)
  File "/nfs/nfs7/home/muroztur/YAMDA/yamda/mixture.py", line 311, in _compute_log_likelihood
    ppms_bg_logprob = m_log_ppms_bg(x).data
  File "/nfs/nfs5/home/nobackup/muroztur/miniconda3/envs/YAMDA-env/lib/python3.6/site-packages/torch/nn/modules/module.py", line 493, in __call__
    result = self.forward(*input, **kwargs)
  File "/nfs/nfs5/home/nobackup/muroztur/miniconda3/envs/YAMDA-env/lib/python3.6/site-packages/torch/nn/modules/conv.py", line 196, in forward
    self.padding, self.dilation, self.groups)
RuntimeError: cuDNN error: CUDNN_STATUS_BAD_PARAM

Also tried upgrading cuDNN to 7.6.5 to no avail.

I have pytorch 1.5.1 and cuda 10.1 and cudnn 7.6.5 and it works fine on my Win10 machine. Can you try upgrading to those?

I am having trouble getting that particular combination to happen, could you please provide a complete environment.yml?

Can you tell me if this pytorch example works?

https://github.com/pytorch/examples/tree/master/mnist

btw, a conda installation will automatically install cuda with pytorch for you:

conda install pytorch torchvision cudatoolkit=10.2 -c pytorch

conda create -fmy -c defaults -c anaconda -c conda-forge -c bioconda -c pytorch -n YAMDA-env numpy scipy pyfaidx tqdm pytorch torchvision meme biopython pybedtools

finally yielded a working environment. Note that I had to remove few bits from the recommended install command to get it to solve.

I appreciate the hard work that was put into this. Looks like it will be able to go through datasets that I could never get MEME to do in whole, but seriously, if there is an environment.yml shipped with the project I expect it to be a known working environment, otherwise what's the point?

I am not sure what is the best practice here, but would you like me to put in a pull request with a snapshot of my current working environment?

This is certainly strange. I just tried it on a jupyterlab server with a V100 GPU and it ran fine. Here's my terminal output:

root@050ddac727e7:/opt/notebooks# git clone https://github.com/daquang/YAMDA.git
Cloning into 'YAMDA'...
remote: Enumerating objects: 359, done.
remote: Total 359 (delta 0), reused 0 (delta 0), pack-reused 359
Receiving objects: 100% (359/359), 20.61 MiB | 27.31 MiB/s, done.
Resolving deltas: 100% (197/197), done.
root@050ddac727e7:/opt/notebooks# cd YAMDA
root@050ddac727e7:/opt/notebooks/YAMDA# ls
Dockerfile  LICENSE    docker-compose.yml  erase_annoying_sequences.py  makefile   yamda
Examples    README.md  environment.yml     logo                         run_em.py
root@050ddac727e7:/opt/notebooks/YAMDA# conda env create -f environment.yml
Collecting package metadata (repodata.json): done
Solving environment: done

Downloading and Extracting Packages
libedit-3.1.20170329 | 172 KB    | ####################################################################################### | 100% 
perl-net-http-6.09   | 11 KB     | ####################################################################################### | 100% 
perl-xml-sax-0.99    | 24 KB     | ####################################################################################### | 100% 
nccl-1.3.5           | 8.6 MB    | ####################################################################################### | 100% 
six-1.11.0           | 21 KB     | ####################################################################################### | 100% 
samtools-1.7         | 1.0 MB    | ####################################################################################### | 100% 
sqlite-3.23.1        | 1.5 MB    | ####################################################################################### | 100% 
libtiff-4.0.9        | 566 KB    | ####################################################################################### | 100% 
freetype-2.8         | 804 KB    | ####################################################################################### | 100% 
readline-7.0         | 1.1 MB    | ####################################################################################### | 100% 
perl-xml-simple-2.22 | 31 KB     | ####################################################################################### | 100% 
pytorch-0.4.0        | 224.9 MB  | ####################################################################################### | 100% 
perl-http-date-6.02  | 8 KB      | ####################################################################################### | 100% 
bedtools-2.27.1      | 712 KB    | ####################################################################################### | 100% 
olefile-0.45.1       | 47 KB     | ####################################################################################### | 100% 
perl-xml-sax-expat-0 | 5 KB      | ####################################################################################### | 100% 
pip-10.0.1           | 1.8 MB    | ####################################################################################### | 100% 
libgcc-ng-7.2.0      | 6.1 MB    | ####################################################################################### | 100% 
ncurses-6.1          | 943 KB    | ####################################################################################### | 100% 
pyfaidx-0.5.3        | 41 KB     | ####################################################################################### | 100% 
tqdm-4.23.3          | 58 KB     | ####################################################################################### | 100% 
pysam-0.14.1         | 7.9 MB    | ####################################################################################### | 100% 
perl-io-socket-ssl-2 | 114 KB    | ####################################################################################### | 100% 
perl-xsloader-0.22   | 7 KB      | ####################################################################################### | 100% 
htslib-1.7           | 1.1 MB    | ####################################################################################### | 100% 
setuptools-39.1.0    | 550 KB    | ####################################################################################### | 100% 
perl-yaml-1.24       | 38 KB     | ####################################################################################### | 100% 
perl-html-tree-5.03  | 88 KB     | ####################################################################################### | 100% 
pandas-0.23.0        | 11.8 MB   | ####################################################################################### | 100% 
intel-openmp-2018.0. | 620 KB    | ####################################################################################### | 100% 
perl-xml-sax-base-1. | 13 KB     | ####################################################################################### | 100% 
perl-net-ssleay-1.84 | 261 KB    | ####################################################################################### | 100% 
wheel-0.31.1         | 62 KB     | ####################################################################################### | 100% 
perl-uri-1.71        | 54 KB     | ####################################################################################### | 100% 
perl-http-negotiate- | 7 KB      | ####################################################################################### | 100% 
libxslt-1.1.32       | 538 KB    | ####################################################################################### | 100% 
perl-scalar-list-uti | 33 KB     | ####################################################################################### | 100% 
libcurl-7.60.0       | 495 KB    | ####################################################################################### | 100% 
mkl_fft-1.0.1        | 140 KB    | ####################################################################################### | 100% 
perl-http-message-6. | 32 KB     | ####################################################################################### | 100% 
tk-8.6.7             | 3.2 MB    | ####################################################################################### | 100% 
pycparser-2.18       | 169 KB    | ####################################################################################### | 100% 
perl-xml-parser-2.44 | 151 KB    | ####################################################################################### | 100% 
ghostscript-9.18     | 15.1 MB   | ####################################################################################### | 100% 
libgfortran-ng-7.2.0 | 1.2 MB    | ####################################################################################### | 100% 
numpy-1.13.3         | 3.9 MB    | ####################################################################################### | 100% 
jpeg-9b              | 248 KB    | ####################################################################################### | 100% 
perl-encode-locale-1 | 9 KB      | ####################################################################################### | 100% 
anaconda-custom      | 6 KB      | ####################################################################################### | 100% 
pytz-2018.4          | 212 KB    | ####################################################################################### | 100% 
pillow-5.1.0         | 582 KB    | ####################################################################################### | 100% 
xz-5.2.4             | 366 KB    | ####################################################################################### | 100% 
perl-digest-hmac-1.0 | 6 KB      | ####################################################################################### | 100% 
libstdcxx-ng-7.2.0   | 2.5 MB    | ####################################################################################### | 100% 
curl-7.60.0          | 140 KB    | ####################################################################################### | 100% 
libgcc-7.2.0         | 304 KB    | ####################################################################################### | 100% 
perl-5.22.0.1        | 15.1 MB   | ####################################################################################### | 100% 
libffi-3.2.1         | 43 KB     | ####################################################################################### | 100% 
perl-mime-base64-3.1 | 14 KB     | ####################################################################################### | 100% 
biopython-1.71       | 2.4 MB    | ####################################################################################### | 100% 
certifi-2018.4.16    | 142 KB    | ####################################################################################### | 100% 
meme-4.12.0          | 11.0 MB   | ####################################################################################### | 100% 
bzip2-1.0.6          | 414 KB    | ####################################################################################### | 100% 
cudnn-7.1.2          | 367.8 MB  | ####################################################################################### | 100% 
perl-http-cookies-6. | 11 KB     | ####################################################################################### | 100% 
perl-xml-namespacesu | 6 KB      | ####################################################################################### | 100% 
torchvision-0.2.1    | 75 KB     | ####################################################################################### | 100% 
icu-58.2             | 22.5 MB   | ####################################################################################### | 100% 
cudatoolkit-9.0      | 340.4 MB  | ####################################################################################### | 100% 
perl-io-html-1.001   | 11 KB     | ####################################################################################### | 100% 
cffi-1.11.5          | 212 KB    | ####################################################################################### | 100% 
bcftools-1.7         | 2.7 MB    | ####################################################################################### | 100% 
ca-certificates-2018 | 124 KB    | ####################################################################################### | 100% 
scipy-0.19.1         | 17.4 MB   | ####################################################################################### | 100% 
zlib-1.2.11          | 101 KB    | ####################################################################################### | 100% 
perl-ntlm-1.09       | 9 KB      | ####################################################################################### | 100% 
perl-test-more-1.001 | 2 KB      | ####################################################################################### | 100% 
mkl-2018.0.2         | 205.2 MB  | ####################################################################################### | 100% 
perl-http-daemon-6.0 | 9 KB      | ####################################################################################### | 100% 
yaml-0.1.7           | 85 KB     | ####################################################################################### | 100% 
openssl-1.0.2o       | 3.4 MB    | ####################################################################################### | 100% 
perl-html-template-2 | 32 KB     | ####################################################################################### | 100% 
perl-html-parser-3.7 | 61 KB     | ####################################################################################### | 100% 
python-dateutil-2.7. | 260 KB    | ####################################################################################### | 100% 
perl-threaded-5.22.0 | 2 KB      | ####################################################################################### | 100% 
expat-2.2.5          | 186 KB    | ####################################################################################### | 100% 
ninja-1.8.2          | 1.3 MB    | ####################################################################################### | 100% 
perl-file-listing-6. | 5 KB      | ####################################################################################### | 100% 
perl-www-robotrules- | 6 KB      | ####################################################################################### | 100% 
mkl_random-1.0.1     | 373 KB    | ####################################################################################### | 100% 
perl-lwp-mediatypes- | 19 KB     | ####################################################################################### | 100% 
libpng-1.6.34        | 334 KB    | ####################################################################################### | 100% 
perl-libwww-perl-6.1 | 63 KB     | ####################################################################################### | 100% 
perl-html-tagset-3.2 | 9 KB      | ####################################################################################### | 100% 
perl-cgi-4.22        | 162 KB    | ####################################################################################### | 100% 
libssh2-1.8.0        | 243 KB    | ####################################################################################### | 100% 
pybedtools-0.7.10    | 13.0 MB   | ####################################################################################### | 100% 
python-3.6.5         | 29.4 MB   | ####################################################################################### | 100% 
libxml2-2.9.8        | 2.0 MB    | ####################################################################################### | 100% 
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
Ran pip subprocess with arguments:
['/opt/conda/envs/YAMDA-env/bin/python', '-m', 'pip', 'install', '-U', '-r', '/opt/notebooks/YAMDA/condaenv.1tsl8bup.requirements.txt']
Pip subprocess output:
Requirement already up-to-date: torch==0.4.0 in /opt/conda/envs/YAMDA-env/lib/python3.6/site-packages (from -r /opt/notebooks/YAMDA/condaenv.1tsl8bup.requirements.txt (line 1)) (0.4.0)

#
# To activate this environment, use
#
#     $ conda activate YAMDA-env
#
# To deactivate an active environment, use
#
#     $ conda deactivate

root@050ddac727e7:/opt/notebooks/YAMDA# conda activate YAMDA-env
(YAMDA-env) root@050ddac727e7:/opt/notebooks/YAMDA# python run_em.py -r -e -i Examples/H1_POU5F1_ChIP_HAIB.fa.masked -j Examples/H1_POU5F1_ChIP_HAIB_shuffled.fa.masked -oc H1_POU5F1_output 
Loading sequences from FASTA

Finding motif 1 of 1
Searching positive sequences: 100%|█████████████████████████████████████████████████████████████████| 9/9 [00:05<00:00,  1.73it/s]
Searching negative sequences: 100%|█████████████████████████████████████████████████████████████████| 9/9 [00:05<00:00,  1.73it/s]
On-line EM: 100%|███████████████████████████████████████████████████████████████████████████████████| 1/1 [00:05<00:00,  5.28s/it]
Batch EM: 100%|█████████████████████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  3.03it/s]
Computing log likelihood: 100%|███████████████████████████████████████████████████████████████| 389/389 [00:00<00:00, 2030.59it/s]
Using seed originating from word: NNNATGCATNACAAAGNNNN
Batch EM - convergence reached after 7 epochs: 100%|██████████████████████████████████████████████| 20/20 [00:01<00:00, 16.36it/s]
Pass 7/20: 100%|██████████████████████████████████████████████████████████████████████████████| 389/389 [00:00<00:00, 2236.09it/s]
Removing sequences containing at least one motif occurrence
Saving results to H1_POU5F1_output
(YAMDA-env) root@050ddac727e7:/opt/notebooks/YAMDA# nvidia-smi
Thu Jul 16 07:30:59 2020       
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.95.01    Driver Version: 440.95.01    CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Tesla V100-SXM2...  Off  | 00000000:00:1E.0 Off |                    0 |
| N/A   34C    P0    24W / 300W |      0MiB / 16160MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+
(YAMDA-env) root@050ddac727e7:/opt/notebooks/YAMDA# 

I'm not exactly sure what was the cause of the bug on your end, as I couldn't replicate it. You are free to put in a pull request.

Strange indeed, nothing seems to be far off, but that environment certainly did not work for me. Glad it was an easy fix.

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 440.100      Driver Version: 440.100      CUDA Version: 10.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  Quadro RTX 6000     Off  | 00000000:3B:00.0 Off |                    0 |
| N/A   35C    P0    55W / 250W |    978MiB / 22698MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  Quadro RTX 6000     Off  | 00000000:5E:00.0 Off |                    0 |
| N/A   28C    P8    12W / 250W |     11MiB / 22698MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  Quadro RTX 6000     Off  | 00000000:AF:00.0 Off |                    0 |
| N/A   27C    P8    13W / 250W |     11MiB / 22698MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   3  Quadro RTX 6000     Off  | 00000000:D8:00.0 Off |                    0 |
| N/A   28C    P8    15W / 250W |     11MiB / 22698MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+