MatSetOptionsPrefix(A,"mymat") VecSetOptionsPrefix(v,"myvec")
--Junchao Zhang On Mon, Oct 18, 2021 at 8:04 PM Chang Liu <[email protected]> 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 > > <[email protected] <mailto:[email protected]>> 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 > > <[email protected] <mailto:[email protected]> > > > <mailto:[email protected] <mailto:[email protected]>>> > 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 > > > <[email protected] <mailto:[email protected]> > > <mailto:[email protected] <mailto:[email protected]>>> > > 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 > > > <[email protected] <mailto:[email protected]> > > <mailto:[email protected] <mailto:[email protected]>>> 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 > > [email protected] <mailto:[email protected]> > > Princeton Plasma Physics Laboratory > > 100 Stellarator Rd, Princeton NJ 08540, USA > > > > -- > Chang Liu > Staff Research Physicist > +1 609 243 3438 > [email protected] > Princeton Plasma Physics Laboratory > 100 Stellarator Rd, Princeton NJ 08540, USA >
