File: VecCUDAGetArrayReadWrite.html

package info (click to toggle)
petsc 3.7.5%2Bdfsg1-4
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 163,864 kB
  • ctags: 618,438
  • sloc: ansic: 515,133; python: 29,793; makefile: 20,458; fortran: 18,998; cpp: 6,515; f90: 3,914; sh: 1,012; xml: 621; objc: 445; csh: 240; java: 13
file content (52 lines) | stat: -rw-r--r-- 3,157 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD> <link rel="canonical" href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/Vec/VecCUDAGetArrayReadWrite.html" />
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>VecCUDAGetArrayReadWrite</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
   <div id="version" align=right><b>petsc-3.7.5 2017-01-01</b></div>
   <div id="bugreport" align=right><a href="mailto:petsc-maint@mcs.anl.gov?subject=Typo or Error in Documentation &body=Please describe the typo or error in the documentation: petsc-3.7.5 v3.7.5 docs/manualpages/Vec/VecCUDAGetArrayReadWrite.html "><small>Report Typos and Errors</small></a></div>
<A NAME="VecCUDAGetArrayReadWrite"><H1>VecCUDAGetArrayReadWrite</H1></A>
Provides access to the CUDA buffer inside a vector. 
<H3><FONT COLOR="#CC3333">Synopsis</FONT></H3>
<PRE>
PETSC_EXTERN PetscErrorCode VecCUDAGetArrayReadWrite(Vec v, PetscScalar **a)
</PRE>
This function has semantics similar to <A HREF="../Vec/VecGetArray.html#VecGetArray">VecGetArray</A>():  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.  <A HREF="../Vec/VecCUDAGetArrayReadWrite.html#VecCUDAGetArrayReadWrite">VecCUDAGetArrayReadWrite</A>() assumes that
the user will modify the vector data.  This is similar to
intent(inout) in fortran.
<P>
The CUDA device pointer has to be released by calling
<A HREF="../Vec/VecCUDARestoreArrayReadWrite.html#VecCUDARestoreArrayReadWrite">VecCUDARestoreArrayReadWrite</A>().  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.
<P>
<P>
<H3><FONT COLOR="#CC3333">Input Parameter</FONT></H3>
<DT><B>v </B> -the vector
<br>
<P>
<H3><FONT COLOR="#CC3333">Output Parameter</FONT></H3>
<DT><B>a </B> -the CUDA device pointer
<br>
<P>
<H3><FONT COLOR="#CC3333">Fortran note</FONT></H3>
This function is not currently available from Fortran.
<P>

<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
 <A HREF="../Vec/VecCUDARestoreArrayReadWrite.html#VecCUDARestoreArrayReadWrite">VecCUDARestoreArrayReadWrite</A>(), <A HREF="../Vec/VecCUDAGetArrayRead.html#VecCUDAGetArrayRead">VecCUDAGetArrayRead</A>(), <A HREF="../Vec/VecCUDAGetArrayWrite.html#VecCUDAGetArrayWrite">VecCUDAGetArrayWrite</A>(), <A HREF="../Vec/VecGetArray.html#VecGetArray">VecGetArray</A>(), <A HREF="../Vec/VecGetArrayRead.html#VecGetArrayRead">VecGetArrayRead</A>()
<BR><P><B><P><B><FONT COLOR="#CC3333">Level:</FONT></B>intermediate
<BR><FONT COLOR="#CC3333">Location:</FONT></B><A HREF="../../../src/vec/vec/impls/seq/seqcuda/veccuda2.cu#VecCUDAGetArrayReadWrite">src/vec/vec/impls/seq/seqcuda/veccuda2.cu</A>
<BR><A HREF="./index.html">Index of all Vec routines</A>
<BR><A HREF="../../index.html">Table of Contents for all manual pages</A>
<BR><A HREF="../singleindex.html">Index of all manual pages</A>
</BODY></HTML>