<div dir="ltr"><div>Thanks for pointing the function MatXAIJSetPreallocation() out. I followed your suggestions and tried it on my problem:<br></div><div>preallocate the matrix with XAIJ, set its values by MatSetValuesBlockedLocal, and use this matrix with aijcusparse. <br></div><div><br></div><div>It works!</div><div><br></div><div>Thank you.</div><div><br></div><div>Xiangdong<br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 29, 2019 at 8:10 PM Mills, Richard Tran <<a href="mailto:rtmills@anl.gov">rtmills@anl.gov</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">



<div bgcolor="#FFFFFF">
We will let you know when this is ready, Xiangdong.<br>
<br>
Let me address a part of your original question that I don't think anyone else noticed:<br>
<br>
<blockquote type="cite">In my current code, the Jacobian matrix preallocated and assembled as BAIJ format. Do I have to rewrite this part of code to preallocate and assemble the matrix as AIJ in order to use aijcusparse?</blockquote>
<br>
If you are doing your preallocation via MatXAIJSetPreallocation() and setting values via MatSetValuesBlocked() (or its variants), you can change the type to AIJ (or AIJCUSPARSE) instead of BAIJ and things should just work. (If not, let us know, as this may
 mean a bug in PETSc.) If you are calling MatSetFromOptions(), you should be able to do this on the command line (or otherwise through the PETSc options database) -- no code rewrites needed.<br>
<br>
Best regards,<br>
Richard<br>
<br>
<br>
<div>On 10/28/19 7:40 AM, Xiangdong wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">
<div>Thanks for your information. Glad to hear that BAIJ gpu support is on the way. Waiting a few weeks is not a issue at all. Once you finish the BAIJ GPU interface, could you please make an announcement here or in the change log?</div>
<div><br>
</div>
<div>Thank you.</div>
<div><br>
</div>
<div>Xiangdong  <br>
</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Sat, Oct 26, 2019 at 12:11 AM Mills, Richard Tran <<a href="mailto:rtmills@anl.gov" target="_blank">rtmills@anl.gov</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">
<div>
<div dir="ltr">Xiangdong,
<div><br>
</div>
<div>cuSPARSE does support block compressed sparse row (BAIJ) format, but we don't currently support that cuSPARSE functionality in PETSc. It should be easy to add, but we are currently refactoring the way we interface with third party GPU libraries such as
 cuSPARSE, and it would probably make more sense to add this support after that refactor is done. Do you need this right away, or could it wait maybe a few weeks until this is completed?</div>
<div><br>
</div>
<div>Best regards,</div>
<div>Richard</div>
</div>
<br>
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, Oct 25, 2019 at 1:50 PM Smith, Barry F. via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</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>
  You would need to investigate if the Nvidia cuSPARSE package supports such a format. If it does then it would be reasonably straightforward for you to hook up the required interface from PETSc. If it does not then it is a massive job to provide such code
 and you should see if any open source packages provide such CUDA support and then you could hook PETSc up to use that.<br>
<br>
  Barry<br>
<br>
<br>
> On Oct 25, 2019, at 3:43 PM, Xiangdong via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>> wrote:<br>
> <br>
> Can anyone comment on the PETSc's GPU version of Block CSR, say BAIJCUSPARSE? Does it make sense to have such format on GPU? Is it under development?<br>
> <br>
> Thank you.<br>
> <br>
> Xiangdong<br>
> <br>
> On Wed, Oct 23, 2019 at 11:36 AM Xiangdong <<a href="mailto:epscodes@gmail.com" target="_blank">epscodes@gmail.com</a>> wrote:<br>
> Hello everyone,<br>
> <br>
> I am wondering whether there is a format BAIJCUSPARSE for Block CSR on GPU.<br>
> <br>
> In my current code, the Jacobian matrix preallocated and assembled as BAIJ format. Do I have to rewrite this part of code to preallocate and assemble the matrix as AIJ in order to use aijcusparse?<br>
> <br>
> Thank you.<br>
> <br>
> Xiangdong<br>
> <br>
<br>
</blockquote>
</div>
</div>
</blockquote>
</div>
</blockquote>
<br>
</div>

</blockquote></div>