<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Apr 9, 2018 at 6:12 PM, Manuel Valera <span dir="ltr"><<a href="mailto:mvalera-w@sdsu.edu" target="_blank">mvalera-w@sdsu.edu</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">Hello guys,<div><br></div><div>I've made advances in my CUDA acceleration project, as you remember i have a CFD model in need of better execution times. </div><div><br></div><div>So far i have been able to solve the pressure system in the GPU and the rest in serial, using PETSc only for this pressure solve, the library i got to work was ViennaCL. First question, do i still have to switch installations to use either CUDA library? this was a suggestion before, so in order to use CUSP instead of ViennaCL, for example, i currently have to change installations, is this still the case?</div></div></blockquote><div><br></div><div>I am not sure what that means exactly. However, you can build a PETSc with CUDA and ViennaCL support. The type of Vec/Mat is selected at runtime.</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>Now, i started working in a fully parallelized version of the model, which uses the DMs and DMDAs to distribute the arrays, if i try the same flags as before i get an error saying "Currently only handles ViennaCL matrices" when trying to solve for pressure, i get this is a feature still not implemented? what options do i have to solve pressure, or assign a DMDA array update to be done specifically in a GPU device?</div></div></blockquote><div><br></div><div>If we can't see the error, we are just guessing. Please send the entire error message.</div><div><br></div><div>Note, we only do linear algebra on the GPU, so none of the FormFunction/FormJacobian stuff for DMDA would be on the GPU.</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>I was thinking of using the VecScatterCreateToZero for a regular vector,</div></div></blockquote><div><br></div><div>Why do you want a serial vector?</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> but then i would have to create a vector and copy the DMDAVec into it,</div></div></blockquote><div><br></div><div>I do not understand what it means to copy the DM into the Vec.</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> is this accomplished with DMDAVecGetArrayReadF90 and then just copy? do you think this will generate too much overhead? </div><div><br></div><div>Thanks so much for your input,</div><div><br></div><div>Manuel </div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><div dir="ltr"><div><div dir="ltr"><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><div><br></div><div><a href="http://www.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>