:orphan:
# VecViennaCLGetCLMem
Provides access to the the CL buffer inside a Vec. 
## Synopsis
```
#include "petscvec.h" 
PETSC_EXTERN PetscErrorCode VecViennaCLGetCLMem(Vec v, PETSC_UINTPTR_T *mem)
```
Caller should cast (*mem) to (const cl_mem). Caller is responsible for
invoking clReleaseMemObject().

The device pointer has to be released by calling VecViennaCLRestoreCLMem().
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.


## Input Parameter

- ***v    -*** the vector



## Output Parameter

- ***mem -*** pointer to the device buffer





## See Also
 `VecViennaCLGetCLContext()`, `VecViennaCLRestoreCLMem()`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/vec/vec/impls/seq/seqviennacl/vecviennacl.cxx.html#VecViennaCLGetCLMem">src/vec/vec/impls/seq/seqviennacl/vecviennacl.cxx</A>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/vec/vec/impls/seq/seqviennacl/vecviennacl.cxx)


[Index of all Vec routines](index.md)  
[Table of Contents for all manual pages](/manualpages/index.md)  
[Index of all manual pages](/manualpages/singleindex.md)  
