File: VecScatterInitializeForGPU.html

package info (click to toggle)
petsc 3.4.2.dfsg1-8.1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 129,104 kB
  • ctags: 516,422
  • sloc: ansic: 395,939; cpp: 47,201; python: 34,788; makefile: 17,193; fortran: 16,251; f90: 1,592; objc: 954; sh: 822; xml: 621; java: 381; lisp: 293; csh: 241
file content (35 lines) | stat: -rw-r--r-- 2,961 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
<!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/VecScatterInitializeForGPU.html" />
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>VecScatterInitializeForGPU</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
   <div id="version" align=right><b>petsc-3.4.2 2013-07-02</b></div>
<A NAME="VecScatterInitializeForGPU"><H1>VecScatterInitializeForGPU</H1></A>
Initializes a generalized scatter from one vector to another for GPU based computation.  Effectively, this function creates all the necessary indexing buffers and work vectors needed to move data only those data points in a vector which need to be communicated across ranks. This is done at the first time this function is called. Thereafter, this function launches a kernel, VecCUSPCopySomeToContiguousBufferGPU_Public, which moves the scattered data into a contiguous buffer on the GPU. Currently, this only used in the context of the parallel SpMV call in MatMult_MPIAIJCUSP (in mpi/mpicusp/mpiaijcusp.cu) or MatMult_MPIAIJCUSPARSE (in mpi/mpicusparse/mpiaijcusparse.cu). This function is executed before the call to <A HREF="../Mat/MatMult.html#MatMult">MatMult</A>. This enables the memory transfers to be overlapped with the <A HREF="../Mat/MatMult.html#MatMult">MatMult</A> SpMV kernel call. 
<H3><FONT COLOR="#CC3333">Synopsis</FONT></H3>
<PRE>
#include "petscvec.h" 
PetscErrorCode  VecScatterInitializeForGPU(VecScatter inctx,Vec x,ScatterMode mode)
</PRE>
<H3><FONT COLOR="#CC3333">Input Parameters</FONT></H3>
<TABLE border="0" cellpadding="0" cellspacing="0">
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>inctx </B></TD><TD>- scatter context generated by <A HREF="../Vec/VecScatterCreate.html#VecScatterCreate">VecScatterCreate</A>()
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>x </B></TD><TD>- the vector from which we scatter
</TD></TR>
<TR><TD WIDTH=40></TD><TD ALIGN=LEFT VALIGN=TOP><B>mode </B></TD><TD>- the scattering mode, usually <A HREF="../Vec/SCATTER_FORWARD.html#SCATTER_FORWARD">SCATTER_FORWARD</A>.  The available modes are:
<A HREF="../Vec/SCATTER_FORWARD.html#SCATTER_FORWARD">SCATTER_FORWARD</A> or <A HREF="../Vec/SCATTER_REVERSE.html#SCATTER_REVERSE">SCATTER_REVERSE</A>
</TD></TR></TABLE>
<P>

<P>
<H3><FONT COLOR="#CC3333">See Also</FONT></H3>
 <A HREF="../Vec/VecScatterCreate.html#VecScatterCreate">VecScatterCreate</A>(), <A HREF="../Vec/VecScatterEnd.html#VecScatterEnd">VecScatterEnd</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/utils/veccusp/vscatcusp.c.html#VecScatterInitializeForGPU">src/vec/vec/utils/veccusp/vscatcusp.c</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>