[petsc-users] CUDA with complex number

Barry Smith bsmith at mcs.anl.gov
Mon Jan 23 21:27:29 CST 2012


On Jan 23, 2012, at 4:17 PM, recrusader wrote:

> Dear Barry,
> 
> For complex number-based implementation, will the functions in Vec, Mat, KSP, and PC having been realized for real number work at least at the running level?
> Do I need to do more coding for them?

    I don't think it is a matter of much coding. It would be a matter of fixing little uses of templates to get it all working with complex. No way to know what it involves until you try.
> 
> To my knowledge, Victor Minden finished most of the coding work for GPU implementation in PETSc with your and Matt's help.
> However, it seems there is not people to further realize and optimize other GPU functions in PETSc.
> Do you think GPU-based computation is not important or has low efficiency compared to current CPU-based implementation in PETSc?

    There is only a certain amount a finite number of people can do. Our priorities are more adding more functionality to PETSc, better solvers etc. Honestly it would take the entire PETSc team working full time on GPUs to make it top notch, but would that be the best use of our time?  

    Basically Paul is the only one developing the GPU code at the moment.

   Barry


> 
> 
> Thank you very much,
> Yujie
>  
> 
> On Mon, Jan 23, 2012 at 3:46 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> 
>   Yujie,
> 
>    As I said we have never tried it. You are welcome to try it following the directions I gave. You must realize that we do not have an army of people to support GPUs so you are largely on your on in terms of getting things done and need to use your initiative in trying things yourself and working through the problems that may arise.
> 
>   Barry
> 
> On Jan 23, 2012, at 3:36 PM, recrusader wrote:
> 
> > Dear Paul,
> >
> > Please find the changelog in the following link for CUSP 0.2.0
> > http://code.google.com/p/cusp-library/source/browse/CHANGELOG
> >
> > They has added cusp:complex class to support complex number-based operation.
> >
> > does it not work for PETSc?
> >
> > Thanks a lot,
> > Yujie
> >
> >
> > On Mon, Jan 23, 2012 at 3:28 PM, Paul Mullowney <paulm at txcorp.com> wrote:
> > I would claim that Petsc does not support GPU capabilities for complex numbers right now.
> >
> > The CUSP library is templated over the scalar type (i.e. float or double), however I don't think it supports complex numbers. Although, I could be wrong on this.
> >
> > It could be somewhat straightforward to move from CUSP to CUSPARSE (yes, these are different Nvidia libraries). I believe CUSPARSE supports SpMV for complex types. It also supports triangular solve for complex types.
> >
> > -Paul
> >
> >
> >     This is an installation issue, please send all installation issues to petsc-maint at mcs.anl.gov with the entire configure.log
> >
> >
> >
> >
> >    You can try editing config/PETSc/packages/cuda.py and removing the two lines
> >
> >     if self.scalartypes.scalartype == 'complex':
> >       raise RuntimeError('Must use real numbers with CUDA')
> >
> >    As it says we have never tested for complex so I do not know how far it is from working.
> >
> >     Barry
> >
> > On Jan 23, 2012, at 1:24 PM, recrusader wrote:
> >
> > Dear PETSc Developers,
> >
> > I am compiling PETSc-dev using GPU in complex number mode.
> > However, when I configure PETSc-dev, I get the following errors
> > "
> > *******************************************************************************
> >         UNABLE to CONFIGURE with GIVEN OPTIONS    (see configure.log
> > for details):
> > -------------------------------------------------------------------------------
> > Cannot use cuda with complex numbers it is not coded for this capability
> > *******************************************************************************
> > "
> > I have checked CUSP. The latest version can support complex number.
> > What should I do for CUDA?
> > Thank you very much.
> >
> > Best,
> > Yujie
> >
> >
> 
> 



More information about the petsc-users mailing list