Hi Paul,

> 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:
pmullowney/txpetscgpu-package-removal.git

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?

Best regards,
Karli

Reply via email to