title: Speedup GPU vs CPU for matrix operations
body: <p>I am wondering how much GPU computing would help me speed up my simulations.</p>
  
  <p>The critical part of my code is matrix multiplication. Basically the code looks like the following python code with matrices of order 1000 and long for loops.</p>
  
  <pre><code>import numpy as np
  m_size = 1000
  sim_length = 50
  
  a = np.random.rand(m_size, m_size)
  b = np.random.rand(m_size, m_size)
  
  for j in range(sim_length):
      result = np.dot(a,b)
  </code></pre>
  
  <p>Note: My matrices are dense, mostly random and for loops are compiled with cython.</p>
  
  <p>My naive guess would be that I have two factors:</p>
  
  <ul>
  <li>More parallel threads (Currently of order 1 thread, GPUs of order 100 threads?) --> Speedup of order 100? [<a href="https://gamedev.stackexchange.com/a/17255">Source</a> is quite outdated, from 2011]</li>
  <li>Lower processor frequency (Currently 3Ghz, GPUs typically 2 Ghz) --> Neglect</li>
  </ul>
  
  <p>I expect that this viewpoint is to naive, so what am I missing?</p>