Hi Barry, Thanks for the explanation! Removing the calls to PetscMalloc(Re)SetCUDAHost solved that issue.
Just to clarify, all PetscMalloc(s) happen on the host and there is no special PetscMalloc for device memory allocation ? (Say for an operation sequence PetscMalloc1(N, &ptr), VecCUDAGetArray(cudavec, &ptr) ) Thank You, Sajid Ali | PhD Candidate Applied Physics Northwestern University s-sajid-ali.github.io