<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Mar 10, 2016 at 4:48 PM, Justin Chang <span dir="ltr"><<a href="mailto:jychang48@gmail.com" target="_blank">jychang48@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Matt,<br><br></div>So what's an example of "doing a bunch of iterations to make sending the initial datadown worth it"? Is there a correlation between that and arithmetic intensity, where an application is likely to be more compute-bound and memory-bandwidth bound?<br></div></div></div></blockquote><div><br></div><div>Say</div><div><br></div><div>  1) Send rhs and assume 0 initial guess</div><div><br></div><div>  2) Perform k matvecs for some Krylov solver</div><div><br></div><div>  3) Get back output vector</div><div><br></div><div>the elephant in the room here is that I have not specified a preconditioner. It is here that GPUs have the most</div><div>trouble, but if you can find a GPU PC that works, and you use a bunch of iterations before communicating back,</div><div>you can realize the 2x speed benefit over a modern CPU.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div></div>Thanks,<br></div>Justin<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 10, 2016 at 2:50 PM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><span>On Thu, Mar 10, 2016 at 12:29 PM, Justin Chang <span dir="ltr"><<a href="mailto:jychang48@gmail.com" target="_blank">jychang48@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi all,<div><br></div>When would I ever use GPU computing for a finite element simulation where the limiting factor of performance is the memory bandwidth bound? Say I want to run problems similar to SNES ex12 and 62. I understand that there is an additional bandwidth associated with offloading data from the CPU to GPU but is there more to it? I recall reading through some email threads about GPU's potentially giving you a speed up of 3x that on a CPU but the gain in performance may not be worth the increase in time moving data around.</blockquote><div><br></div></span><div>The main use case is if you are being forced to use a machine which has GPUs. Then you can indeed get some benefit<br></div><div>from the larger bandwidth. You need a problem where you are doing a bunch of iterations to make sending the initial data</div><div>down worth it.</div><div><br></div><div>It would certainly be better if you are computing the action of your operator directly on the GPU, but that is much more</div><div>disruptive to the code right now.</div><div><br></div><div>  Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Thanks,</div><div>Justin</div></blockquote></div><span class="HOEnZb"><font color="#888888"><span><font color="#888888">-- <br><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</font></span></font></span></div></div>
</blockquote></div><br></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>