Thank you, Andreas. The documentation does mention that PETSc internally
keeps track of which (host or device) vector is last updated. So when I
update the memory on the PyCUDA side, maybe PETSc doesn't know about it.

Thank you, I'll investigate further.

On Thu, Oct 16, 2014 at 1:28 PM, Andreas Kloeckner <[email protected]>
wrote:

> Ashwin Srinath <[email protected]> writes:
> > I'm not sure - but this may have something to do with the implementation
> of
> > `fill`. Because on the flip side, changes to the PETSc Vec *are*
> reflected
> > the GPUArray. So I can see that they are actually sharing device memory..
>
> As far as I know, PETSc maintains a copy of the vector on the host and
> on the device and tacitly assumes that nobody except it makes
> modifications to the vector. So if it assumes nobody has modified the
> device-side vector, it may give you a (stale) host-side copy.
>
> HTH,
> Andreas
>
_______________________________________________
PyCUDA mailing list
[email protected]
http://lists.tiker.net/listinfo/pycuda

Reply via email to