[petsc-users] [External] Re: MatVec on GPUs
Swarnava Ghosh
swarnava89 at gmail.com
Mon Oct 18 20:47:29 CDT 2021
Hi Junchao,
If I want to pass command line options as -mymat_mat_type aijcusparse,
should it be MatSetOptionsPrefix(A,"mymat"); or
MatSetOptionsPrefix(A,"mymat_"); ? Could you please clarify?
Sincerely,
Swarnava
On Mon, Oct 18, 2021 at 9:23 PM Junchao Zhang <junchao.zhang at gmail.com>
wrote:
> MatSetOptionsPrefix(A,"mymat")
> VecSetOptionsPrefix(v,"myvec")
>
> --Junchao Zhang
>
>
> On Mon, Oct 18, 2021 at 8:04 PM Chang Liu <cliu at pppl.gov> wrote:
>
>> 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?
>>
> As Matt suggested, you could single out the matrix and vector with
> options prefix and set their type on command line
>
> MatSetOptionsPrefix(A,"mymat");
> VecSetOptionsPrefix(v,"myvec");
>
> Then, -mymat_mat_type aijcusparse -myvec_vec_type cuda
>
> A simpler code is to have the vector type automatically set by
> MatCreateVecs(A,&v,NULL)
>
>
>> 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
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20211018/39b8d669/attachment.html>
More information about the petsc-users
mailing list