[petsc-users] [External] Re: MatVec on GPUs
Chang Liu
cliu at pppl.gov
Mon Oct 18 20:04:27 CDT 2021
Hi Junchao,
Thank you for your answer. I tried MatConvert and it works. I didn't
make it before because I forgot to convert a vector from mpi to mpicuda
previously.
For vector, there is no VecConvert to use, so I have to do VecDuplicate,
VecSetType and VecCopy. Is there an easier option?
Chang
On 10/18/21 5:23 PM, Junchao Zhang wrote:
>
>
> On Mon, Oct 18, 2021 at 3:42 PM Chang Liu via petsc-users
> <petsc-users at mcs.anl.gov <mailto: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>
> > <mailto: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>
> <mailto: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>
> <mailto: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/
> <https://www.cse.buffalo.edu/~knepley/>
> <http://www.cse.buffalo.edu/~knepley/
> <http://www.cse.buffalo.edu/~knepley/>>
>
> --
> Chang Liu
> Staff Research Physicist
> +1 609 243 3438
> cliu at pppl.gov <mailto:cliu at pppl.gov>
> Princeton Plasma Physics Laboratory
> 100 Stellarator Rd, Princeton NJ 08540, USA
>
--
Chang Liu
Staff Research Physicist
+1 609 243 3438
cliu at pppl.gov
Princeton Plasma Physics Laboratory
100 Stellarator Rd, Princeton NJ 08540, USA
More information about the petsc-users
mailing list