[petsc-dev] code review request : txpetscgpu package removal
rupp at mcs.anl.gov
Tue Jun 25 15:50:43 CDT 2013
> I've been refactoring some pieces of PETSc to remove the txpetscgpu
> dependence by bringing that code directly into petsc. All of the
> capability in that package only depends on CUDA (and thrust), thus there
> is no need for an external package. I think removing this package is an
> improvement to the PETSc GPU capabilities as all the code is now easily
> visible (i.e. not hidden in some package).
Thanks a lot! Really. I merged the ViennaCL-stuff into master a little
less than two weeks back and now I'm just about to start my big
PETSc-GPU cleanup/unification/documentation project. I would have
addressed the txpetscgpu package sooner or later, so I'm really happy to
see that you are taking care of this.
> The new code is in the fork:
> This branch builds and run on a machine with CUDA/Thrust/CUSP (i.e. no
> need for --download-txpetscgpu). However, txpetscgpu has not been
> entirely removed yet as there are still some dependencies in the aijcusp
> matrix and cusp preconditioner classes.
How 'heavy' is this dependency? Is there some 'blocker' which prevents a
complete integration, or is it just not finished yet?
> I would like to start a discussion on the changes I have made which
> primarily affect aijcusparse, mpiaijcusparse, and veccusp. There are two
> commits that need to be reviewed:
Alright, I'll comment there.
> I think (1) should be reviewed first as this adds most of the serial GPU
> capability to aijcusparse. The second commit (2) adds changes to veccusp
> and mpiaijcusparse to get an efficient multi-GPU SpMV.
I assume that this only works on a single node in order to enumerate and
initialize the GPUs correctly?
More information about the petsc-dev