[petsc-dev] Improving and stabilizing GPU support
    Karl Rupp 
    rupp at mcs.anl.gov
       
    Fri Jul 19 14:12:43 CDT 2013
    
    
  
Hi guys,
now as the Paul's pull request for largely removing the txpetscgpu 
dependency is merged to next, I will proceed with further improving our 
GPU support. My ideas and TODO-list are as follows:
* Reduce CUSP dependency: The current elementary operations are mainly 
realized via CUSP. With better support via CUSPARSE and CUBLAS, I'd add 
a separate 'native' CUDA backend so that we can provide a full set of 
vector and sparse matrix operations out of the default NVIDIA toolchain. 
We will still keep CUSP for its preconditioners, yet we no longer depend 
on it.
* Integrate last bits of txpetscgpu package. I assume Paul will provide 
a helping hand here.
* Better ViennaCL bindings: The OpenCL version of VecMDot() will 
experience a boost with the ViennaCL 1.5.0 release, the CUDA version was 
fixed a couple of month back. Also, VecCopySome() will get improved in 
order to provide better MPI performance (similar to what Paul applied 
for CUSPARSE)
* Documentation: Add a chapter on GPUs to the manual, particularly on 
what to expect and what not to expect. Update documentation on webpage 
regarding installation.
* Integration of FEM quadrature from SNES ex52. The CUDA part requiring 
code generation is not very elegant, while the OpenCL approach is better 
suited for a library integration thanks to JIT. However, this requires 
user code to be provided as a string (again not very elegant) or loaded 
from file (more reasonable). How much FEM functionality do we want to 
provide via PETSc?
Please don't hesitate to post other GPU wishes. Now it's the best time 
for doing so :-)
Best regards,
Karli
    
    
More information about the petsc-dev
mailing list