Hi,

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).

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.

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:

(1) https://bitbucket.org/pmullowney/txpetscgpu-package-removal/commits/d958d7291a1c03bca66b61ff38ec3bf7cd177769 (2) https://bitbucket.org/pmullowney/txpetscgpu-package-removal/commits/263367a00e0a4a32cfef67c220c1904473582547

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.

Should I submit a pull request?
-Paul

Reply via email to