<div dir="ltr">On Mon, Sep 23, 2013 at 2:46 PM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> writes:<br>
<br>
> Okay, here is how I understand GPU matrix assembly. The only way it<br>
> makes sense to me is in COO format which you may later convert. In<br>
> mpiaijAssemble.cu I have code that<br>
><br>
> - Produces COO rows<br>
> - Segregates them into on and off-process rows<br>
<br>
</div>These users compute redundantly and set MAT_NO_OFF_PROC_ENTRIES.</blockquote><div><br></div><div>Fine, we should have a flag like that.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">
> - Sorts and reduces by key<br>
<br>
</div>... then insert into diagonal and off-diagonal parts of owned matrices.</blockquote><div><br></div><div>Yep.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">
> This can obviously be done incrementally, so storing a batch of<br>
> element matrices to global memory is not a problem.<br>
<br>
</div>If you store element matrices to global memory, you're using a ton of<br>
bandwidth (about 20x the size of the matrix if using P1 tets).<br>
<br>
What if you do the sort/reduce thing within thread blocks, and only<br>
write the reduced version to global storage?<br>
</blockquote></div><br>I think it should be easy, but we will have to see what is out there for thread blocks.</div><div class="gmail_extra"><br></div><div class="gmail_extra"> Matt<br clear="all"><div><br></div>-- <br>
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>