title: I get almost same performance on both Tesla K40 and Tesla K80
body: <p>I have developed two CUDA kernels. One is a memory-bound kernel and the other is compute-bound. The kernels, first have been optimized on Tesla K40 and I am doing a performance test on both Tesla K40 and Tesla K80 now to compare their performance results. However, I am really confused because I get almost same performance on both boards while K80 provides almost 2x wider theoretical bandwidth and DP peak performance. I also tested with different number of threads per block but again did not see any tangible performance improvement on Tesla K80 (around 2%) comparing to Tesla K40. </p>
  
  <p>I compile the code using following flags:</p>
  
  <p>On Tesla K40:</p>
  
  <pre><code>nvcc --cudart static --relocatable-device-code=false -gencode arch=compute_35,code=compute_35 -gencode arch=compute_35,code=sm_35 -link -o  "test"
  </code></pre>
  
  <p>On Tesla K80:</p>
  
  <pre><code>nvcc --cudart static --relocatable-device-code=false -gencode arch=compute_37,code=compute_37 -gencode arch=compute_37,code=sm_37 -link -o  "test"
  </code></pre>
  
  <p>Theoretically, I should get higher performance on Tesla K80 but I do not have any idea why that does not work. </p>
  
  <p>Thanks for any answer or comment!</p>