Hi, Here's a reworked patch for running BiCG on GPUs (with ILU(0) preconditioners) on GPUs for the aijcusparse.cu class. I fixed the comments from the previous emails on this patch. In particular, I added
(1) VecConjugate implementation in veccusp.cu with the correct method for getting the device ptr (VecCUSPGetArrayReadWrite()). (2) Various methods in aijcusparse.cu for building the transpose matrices for MatSolveTranspose* methods. The implementation of the solves is done under the hood in the txpetscgpu library. A protection was added to ensure the matrix generation routines are only called once. (3) I fixed the uninitialized compiler warning when building in double complex. This required a slight fix in VecCUSPGetArrayWrite(). (4) Small Style fixes. I wasn't clear to me how to break this up patch into a small organizational patch and then a large implementation patch. If you have suggestions on what corresponds to organization and what corresponds to implementation, I can try to do that in subsequent patches. Everything builds and runs fine on my end. Thanks, -Paul -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: bicg-complex-2ndtry.patch URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20130201/d33f99b3/attachment-0001.ksh>
