<div dir="ltr"><div dir="ltr">On Wed, Aug 23, 2023 at 9:27 AM TROTIGNON Laurent <<a href="mailto:laurent.trotignon@cea.fr">laurent.trotignon@cea.fr</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg3023990329261502793">





<div lang="FR">
<div class="m_3023990329261502793WordSection1">
<p class="MsoNormal">Hello all,<u></u><u></u></p>
<p class="MsoNormal">In the on line docs of PETSc, I found this paragraph :<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p><span style="font-size:11.5pt;font-family:"Segoe UI",sans-serif;color:rgb(50,50,50)">« </span><span style="font-size:11.5pt;font-family:"Segoe UI",sans-serif;color:rgb(0,112,192)">PETSc uses a single source programming model where solver back-ends are selected as </span><strong><span style="font-size:11.5pt;font-family:"Segoe UI",sans-serif;color:rgb(0,112,192)">runtime</span></strong><span style="font-size:11.5pt;font-family:"Segoe UI",sans-serif;color:rgb(0,112,192)"> options
 and configuration options with no changes to the API.<u></u><u></u></span></p>
<p style="box-sizing:border-box;margin:1.4rem;font-variant-ligatures:normal;font-variant-caps:normal;text-decoration-style:initial;text-decoration-color:initial;word-spacing:0px">
<span style="font-size:11.5pt;font-family:"Segoe UI",sans-serif;color:rgb(0,112,192)">Users should (ideally) never have to change their source code to take advantage of new backend implementations. </span><span style="font-size:11.5pt;font-family:"Segoe UI",sans-serif;color:rgb(50,50,50)">»<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I am looking for an example of runtime options that enable activation of GPU offloading of PETSc solvers.<u></u><u></u></p>
<p class="MsoNormal">I am not sure that runtime options for GPU offloading are currently available ?<u></u><u></u></p>
<p class="MsoNormal">I am currently using petsc/3.19.2 configured with cuda and nvhpc/22.2.<u></u><u></u></p>
<p class="MsoNormal"></p></div></div></div></blockquote><div><br></div><div>Here is the FAQ on this: <a href="https://petsc.org/main/faq/#doc-faq-gpuhowto">https://petsc.org/main/faq/#doc-faq-gpuhowto</a></div><div><br></div><div>The short answer is that GPU offloading is enabled by changing the types of vectors and matrices, so that all the operations are executed on the GPU. The solvers just organize those operations, so they need no changes.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="msg3023990329261502793"><div lang="FR"><div class="m_3023990329261502793WordSection1"><p class="MsoNormal">Best regards<u></u><u></u></p>
<p class="MsoNormal">Laurent<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>

</div></blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><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.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>