[petsc-users] MatVec on GPUs

Junchao Zhang junchao.zhang at gmail.com
Mon Oct 18 16:23:46 CDT 2021


On Mon, Oct 18, 2021 at 3:42 PM Chang Liu via petsc-users <
petsc-users at mcs.anl.gov> wrote:

> Hi Matt,
>
> I have a related question. In my code I have many matrices and I only
> want to have one living on GPU, the others still staying on CPU mem.
>
> I wonder if there is an easier way to copy a mpiaij matrix to
> mpiaijcusparse (in other words, copy data to GPUs). I can think of
> creating a new mpiaijcusparse matrix, and copying the data line by line.
> But I wonder if there is a better option.
>
> I have tried MatCopy and MatConvert but neither work.
>
Did you use  MatConvert(mat,matype,MAT_INPLACE_MATRIX,&mat)?

>
> Chang
>
> On 10/17/21 7:50 PM, Matthew Knepley wrote:
> > On Sun, Oct 17, 2021 at 7:12 PM Swarnava Ghosh <swarnava89 at gmail.com
> > <mailto:swarnava89 at gmail.com>> wrote:
> >
> >     Do I need convert the MATSEQBAIJ to a cuda matrix in code?
> >
> >
> > You would need a call to MatSetFromOptions() to take that type from the
> > command line, and not have
> > the type hard-coded in your application. It is generally a bad idea to
> > hard code the implementation type.
> >
> >     If I do it from command line, then are the other MatVec calls are
> >     ported onto CUDA? I have many MatVec calls in my code, but I
> >     specifically want to port just one call.
> >
> >
> > You can give that one matrix an options prefix to isolate it.
> >
> >    Thanks,
> >
> >       Matt
> >
> >     Sincerely,
> >     Swarnava
> >
> >     On Sun, Oct 17, 2021 at 7:07 PM Junchao Zhang
> >     <junchao.zhang at gmail.com <mailto:junchao.zhang at gmail.com>> wrote:
> >
> >         You can do that with command line options -mat_type aijcusparse
> >         -vec_type cuda
> >
> >         On Sun, Oct 17, 2021, 5:32 PM Swarnava Ghosh
> >         <swarnava89 at gmail.com <mailto:swarnava89 at gmail.com>> wrote:
> >
> >             Dear Petsc team,
> >
> >             I had a query regarding using CUDA to accelerate a matrix
> >             vector product.
> >             I have a sequential sparse matrix (MATSEQBAIJ type). I want
> >             to port a MatVec call onto GPUs. Is there any code/example I
> >             can look at?
> >
> >             Sincerely,
> >             SG
> >
> >
> >
> > --
> > What most experimenters take for granted before they begin their
> > experiments is infinitely more interesting than any results to which
> > their experiments lead.
> > -- Norbert Wiener
> >
> > https://www.cse.buffalo.edu/~knepley/ <
> http://www.cse.buffalo.edu/~knepley/>
>
> --
> Chang Liu
> Staff Research Physicist
> +1 609 243 3438
> cliu at pppl.gov
> Princeton Plasma Physics Laboratory
> 100 Stellarator Rd, Princeton NJ 08540, USA
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20211018/a9458aac/attachment.html>


More information about the petsc-users mailing list