VecCUDAGetArray#
Provides access to the CUDA buffer inside a vector.
Synopsis#
#include "petscvec.h"
PETSC_EXTERN PetscErrorCode VecCUDAGetArray(Vec v, PetscScalar **a)
Not Collective; No Fortran Support
Input Parameter#
v - the vector
Output Parameter#
a - the CUDA device pointer
Notes#
This function has semantics similar to VecGetArray()
: the pointer
returned by this function points to a consistent view of the vector
data. This may involve a copy operation of data from the host to the
device if the data on the device is out of date. If the device
memory hasn’t been allocated previously it will be allocated as part
of this function call. VecCUDAGetArray()
assumes that
the user will modify the vector data. This is similar to
intent(inout) in fortran.
The CUDA device pointer has to be released by calling
VecCUDARestoreArray()
. Upon restoring the vector data
the data on the host will be marked as out of date. A subsequent
access of the host data will thus incur a data transfer from the
device to the host.
See Also#
Vectors and Parallel Data, Vec
, VecCUDARestoreArray()
, VecCUDAGetArrayRead()
, VecCUDAGetArrayWrite()
, VecGetArray()
, VecGetArrayRead()
Level#
intermediate
Location#
src/vec/vec/interface/rvector.c
Index of all Vec routines
Table of Contents for all manual pages
Index of all manual pages