Hi,

>> I pushed a function for obtaining the CUDA pointer from a CUSP vector here:
https://bitbucket.org/petsc/petsc/commits/d831094ec27070ea54a249045841367f8aab0976

Karl, I think this is half-way to meed our needs, and the missing bits
are related to out-of-sync CPU/GPU buffers. To improve the
implementation and make it useful for petsc4py (and other plain-C
consumers), I would suggest the following:

1) Implement VecCUSPGetCUDAArray() by calling
VecCUSPGetArrayReadWrite(), this automatically handles calling
VecCUSPCopyToGPU()

2) I think we still need a VecCUSPRestoreCUDAArray(), you can
implement it by basically calling
VecCUSPRestoreArrayReadWrite(vec,NULL) to update the valid_GPU_array
flag and the internal object state.

Both 1) and 2) are now pushed to the feature branch. Any feedback appreciated :-)

Best regards,
Karli

Reply via email to