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 <[email protected]> wrote: > 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 >> >
