Hi Junchao,
Thank you for the suggestion. I did some more tests and found that
MatConvert does not always work. In one of my tests, I did MatConvert to
convert the matrix to aijcusparse, then did a preonly ksp solver and it
works well. But then I tried a fgmres solver and it gave an error. It
only happen when the matrix is mpiaijcusparse and for seqaijcusparse it
works.
So I tried to create a new aijcusparse matrix and copy the data line by
line, then both solvers works. So I guess there are some tricky things
with MatConvert.
Chang
On 10/18/21 9:23 PM, Junchao Zhang wrote:
MatSetOptionsPrefix(A,"mymat")
VecSetOptionsPrefix(v,"myvec")
--Junchao Zhang
On Mon, Oct 18, 2021 at 8:04 PM Chang Liu <c...@pppl.gov
<mailto:c...@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@mcs.anl.gov <mailto:petsc-users@mcs.anl.gov>
<mailto:petsc-users@mcs.anl.gov <mailto:petsc-users@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
> <swarnav...@gmail.com <mailto:swarnav...@gmail.com>
<mailto:swarnav...@gmail.com <mailto:swarnav...@gmail.com>>
> > <mailto:swarnav...@gmail.com <mailto:swarnav...@gmail.com>
<mailto:swarnav...@gmail.com <mailto:swarnav...@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.zh...@gmail.com
<mailto:junchao.zh...@gmail.com> <mailto:junchao.zh...@gmail.com
<mailto:junchao.zh...@gmail.com>>
> <mailto:junchao.zh...@gmail.com
<mailto:junchao.zh...@gmail.com> <mailto:junchao.zh...@gmail.com
<mailto:junchao.zh...@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
> > <swarnav...@gmail.com
<mailto:swarnav...@gmail.com> <mailto:swarnav...@gmail.com
<mailto:swarnav...@gmail.com>>
> <mailto:swarnav...@gmail.com <mailto:swarnav...@gmail.com>
<mailto:swarnav...@gmail.com <mailto:swarnav...@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/>
> <https://www.cse.buffalo.edu/~knepley/
<https://www.cse.buffalo.edu/~knepley/>>
> <http://www.cse.buffalo.edu/~knepley/
<http://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
> c...@pppl.gov <mailto:c...@pppl.gov> <mailto:c...@pppl.gov
<mailto:c...@pppl.gov>>
> Princeton Plasma Physics Laboratory
> 100 Stellarator Rd, Princeton NJ 08540, USA
>
--
Chang Liu
Staff Research Physicist
+1 609 243 3438
c...@pppl.gov <mailto:c...@pppl.gov>
Princeton Plasma Physics Laboratory
100 Stellarator Rd, Princeton NJ 08540, USA
--
Chang Liu
Staff Research Physicist
+1 609 243 3438
c...@pppl.gov
Princeton Plasma Physics Laboratory
100 Stellarator Rd, Princeton NJ 08540, USA