title: What does the error: `Loaded runtime CuDNN library: 5005 but source was compiled with 5103` mean?
body: <p>I was trying to use TensorFlow with GPU and got the following error:</p>
  
  <pre><code>I tensorflow/core/common_runtime/gpu/gpu_device.cc:838] Creating TensorFlow device (/gpu:0) -&gt; (device: 0, name: Tesla K20m, pci bus id: 0000:02:00.0)
  E tensorflow/stream_executor/cuda/cuda_dnn.cc:347] Loaded runtime CuDNN library: 5005 (compatibility version 5000) but source was compiled with 5103 (compatibility version 5100).  If using a binary install, upgrade your CuDNN library to match.  If building from sources, make sure the library loaded at runtime matches a compatible version specified during compile configuration.
  F tensorflow/core/kernels/conv_ops.cc:457] Check failed: stream-&gt;parent()-&gt;GetConvolveAlgorithms(&amp;algorithms)
  </code></pre>
  
  <p>of course I am trying to fix this error (though this has already been asked <a href="https://stackoverflow.com/questions/39859260/loaded-runtime-cudnn-library-5005-compatibility-version-5000-but-source-was-c">Loaded runtime CuDNN library: 5005 (compatibility version 5000) but source was compiled with 5103 (compatibility version 5100)</a>) but I'd like to understand the error. I always try to attempt solving (coding) problems myself before posting (asking for help) but I am having a hard time even starting this one because the error message seems a little cryptic/unclear to me and I can't seem to find a good resource to understand what the error means. </p>
  
  <p>To understand the error I focused on the line that seems to be where the error starts:</p>
  
  <pre><code>Loaded runtime CuDNN library: 5005 (compatibility version 5000) but source was compiled with 5103 (compatibility version 5100).
  </code></pre>
  
  <p>After reading some github pages that seemed relevant I realized that reading the error as follows is actually more helpful:</p>
  
  <blockquote>
    <p>Loaded runtime CuDNN library: 5005 but source was compiled with 5103.</p>
  </blockquote>
  
  <p>removing the parenthesis makes the error make a bit more sense (though I'd like to understand/know what the role of the parenthesis is in the error message to easy the debugging) since it seems that it loaded CuDNN library 5005 (at the level of UNIX/OS) but the TensorFlow (for python) was compiled with what I would guess is version 5103. Obviously if the TensorFlow library is using an API according to 5103 but the "real" API to talk to the (cuda) deep learning library CuDNN is version 5005, its clear it would be a problem. Though they are just guesses of whats going on.</p>
  
  <p>My first confusion is that as far as I can tell, there is no such thing CuDNN 5005 or 5103. It would be awesome to understand what that part of the error means for sure so that I can start trying to debug this for real. As far as I can tell when I use <code>module list</code> I am using:</p>
  
  <pre><code>cudnn/5.0
  </code></pre>
  
  <p>My second confusion is the parenthesis that I ignored and what they mean:</p>
  
  <ol>
  <li><code>Loaded runtime CuDNN library: 5005 (compatibility version 5000)</code></li>
  <li><code>but source was compiled with 5103 (compatibility version 5100)</code></li>
  </ol>
  
  <p>I honestly have no idea idea what the "compatibility version XXXX" means. Maybe its suggestion to install version 5000 (whatever that means) for CuDNN (which is still confusing because there isn't a 5 thousand version of CuDNN) and compile a version of TensorFlow (somehow) that uses CuDNN version 5100.</p>
  
  <p>Does someone know more precisely what the errors mean exactly (and make provide their solution to the question I linked?)</p>