<div dir="auto"><div>Well that's suboptimal. What are my options for 100% GPU solves with no host transfers?<br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 10, 2023, 2:23 PM Barry Smith <<a href="mailto:bsmith@petsc.dev">bsmith@petsc.dev</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="line-break:after-white-space"><br><div><br><blockquote type="cite"><div>On Jan 10, 2023, at 2:19 PM, Mark Lohry <<a href="mailto:mlohry@gmail.com" target="_blank" rel="noreferrer">mlohry@gmail.com</a>> wrote:</div><br><div><div dir="ltr"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>Is DILU a point-block method? We have -pc_type pbjacobi (and vpbjacobi 
if the node size is not uniform). The are good choices for 
scale-resolving CFD on GPUs.</div></blockquote><div><br></div><div>I was hoping you'd know :)  pbjacobi is underperforming ilu by a pretty wide margin on some of the systems i'm looking at.<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>We don't have colored smoothers currently in PETSc.</div></blockquote><div><br></div><div>So what happens under the hood when I run -mg_levels_pc_type sor on GPU? Are you actually decomposing the matrix into lower and computing updates with matrix multiplications? Or is it just the standard serial algorithm with thread safety ignored?<br></div></div></div></blockquote><div><br></div>  It is running the regular SOR on the CPU and needs to copy up the vector and copy down the result.<br><blockquote type="cite"><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jan 10, 2023 at 1:52 PM Barry Smith <<a href="mailto:bsmith@petsc.dev" target="_blank" rel="noreferrer">bsmith@petsc.dev</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
  We don't have colored smoothers currently in PETSc.<br>
<br>
> On Jan 10, 2023, at 12:56 PM, Jed Brown <<a href="mailto:jed@jedbrown.org" target="_blank" rel="noreferrer">jed@jedbrown.org</a>> wrote:<br>
> <br>
> Is DILU a point-block method? We have -pc_type pbjacobi (and vpbjacobi if the node size is not uniform). The are good choices for scale-resolving CFD on GPUs.<br>
> <br>
> Mark Lohry <<a href="mailto:mlohry@gmail.com" target="_blank" rel="noreferrer">mlohry@gmail.com</a>> writes:<br>
> <br>
>> I'm running GAMG with CUDA, and I'm wondering how the nominally serial<br>
>> smoother algorithms are implemented on GPU? Specifically SOR/GS and ILU(0)<br>
>> -- in e.g. AMGx these are applied by first creating a coloring, and the<br>
>> smoother passes are done color by color. Is this how it's done in petsc AMG?<br>
>> <br>
>> Tangential, AMGx and OpenFOAM offer something called "DILU", diagonal ILU.<br>
>> Is there an equivalent in petsc?<br>
>> <br>
>> Thanks,<br>
>> Mark<br>
<br>
</blockquote></div>
</div></blockquote></div><br></div></blockquote></div></div></div>