<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook MathML Module V1.1b1//EN"
              "http://www.oasis-open.org/docbook/xml/mathml/1.1CR1/dbmathml.dtd" [
<!ENTITY asyncCopyInc SYSTEM "asyncCopyInc.xml">
<!ENTITY vectorHalfFunctionsInc SYSTEM "vectorHalfFunctionsInc.xml">
]>

<refentry>
    <refentryinfo>
        <keywordset>
            <keyword>async_work_group_copy</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>
        <refentrytitle>async_work_group_copy</refentrytitle>

        <refmiscinfo>
            <copyright>
                <year>2007-2013</year>
                <holder>The Khronos Group Inc.
 Permission is hereby granted, free of charge, to any person obtaining a
copy of this software and/or associated documentation files (the
"Materials"), to deal in the Materials without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Materials, and to
permit persons to whom the Materials are furnished to do so, subject to
the condition that this copyright notice and permission notice shall be included
in all copies or substantial portions of the Materials.</holder>
            </copyright>
        </refmiscinfo>
        <manvolnum>3</manvolnum>
    </refmeta>

<!-- ================================ SYNOPSIS -->

    <refnamediv id="async_work_group_copy">
        <refname>async_work_group_copy</refname>

        <refpurpose>
            Perform an async copy.
        </refpurpose>
    </refnamediv>

    <refsynopsisdiv xmlns:xlink="http://www.w3.org/1999/xlink"><title></title>
        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="otherDataTypes.html">event_t</link>
                    <function>
                        async_work_group_copy
                    </function>
                </funcdef>
                <paramdef><link xlink:href="local.html">__local</link> gentype<parameter>*dst</parameter></paramdef>
                <paramdef>const <link xlink:href="global.html">__global</link> gentype<parameter>*src</parameter></paramdef>
                <paramdef><link xlink:href="scalarDataTypes.html">size_t</link>
                    <parameter>num_gentypes</parameter></paramdef>
                <paramdef><link xlink:href="otherDataTypes.html">event_t</link><parameter>event</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>

        <funcsynopsis>
            <funcprototype>
                <funcdef>
                    <link xlink:href="otherDataTypes.html">event_t</link>
                    <function>
                        async_work_group_copy
                    </function>
                </funcdef>
                <paramdef><link xlink:href="global.html">__global</link> gentype<parameter>*dst</parameter></paramdef>
                <paramdef>const <link xlink:href="local.html">__local</link> gentype<parameter>*src</parameter></paramdef>
                <paramdef><link xlink:href="scalarDataTypes.html">size_t</link><parameter>num_gentypes</parameter></paramdef>
                <paramdef><link xlink:href="otherDataTypes.html">event_t</link><parameter>event</parameter></paramdef>
            </funcprototype>
        </funcsynopsis>
    </refsynopsisdiv>

<!-- ================================ DESCRIPTION  -->

    <refsect1 id="description"><title>Description</title>

        <para>
          <function>async_work_group_copy</function> performs an 
          async copy of <varname>num_gentypes</varname> <type>gentype</type> elements from
          <varname>src</varname> to <varname>dst</varname>. The async copy is performed by all
          work-items in a work-group and this built-in function must therefore be encountered
          by all work-items in a work-group executing the kernel with the same argument values;
          otherwise the results are undefined.
          This rule applies to ND-ranges implemented with uniform
          and non-uniform work-groups.
        </para>

        <para>
          Returns an event object that can be used by
          <citerefentry><refentrytitle>wait_group_events</refentrytitle></citerefentry> to
          wait for the async copy to finish. The <varname>event</varname> argument can also be
          used to associate the <function>async_work_group_copy</function> with a previous
          async copy allowing an event to be shared by multiple async copies; otherwise
          <varname>event</varname> should be zero.
        </para>

        <para>
          If <varname>event</varname> argument is not zero, the event object supplied in
          <varname>event</varname> argument will be returned.
        </para>

        <para>
          This function does not perform any implicit synchronization of source data such as
          using a <citerefentry><refentrytitle>barrier</refentrytitle></citerefentry> before
          performing the copy.
        </para>

        &asyncCopyInc;

        &vectorHalfFunctionsInc;

        <para>
            The kernel must wait for the completion of all async copies using the 
            <function>wait_group_events</function> built-in function before 
            exiting; otherwise the behavior is undefined.
        </para>

    </refsect1>

<!-- ================================ NOTES  -->

    <refsect1 id="notes"><title>Notes</title>

      <para>
        <function>async_work_group_copy</function> and
        <function>async_work_group_strided_copy</function> for 3-component
        vector types behave as <function>async_work_group_copy</function> and
        <function>async_work_group_strided_copy</function> respectively for 4-component vector
        types.
      </para>

 </refsect1>

<!-- ================================ EXAMPLE  -->
<!-- DO NOT DELETE IN CASE AN EXAMPLE IS ADDED IN THE FUTURE -->
<!--
    <refsect2 id="example1">
        <title>
            Example
        </title>

        <informaltable frame="none">
            <tgroup cols="1" align="left" colsep="0" rowsep="0">
                <colspec colname="col1" colnum="1" />
                <tbody>
                    <row>
                        <entry>
                            Example goes here - it will be set in "code" type with white space preserved.
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect2>
-->

<!-- ================================ SPECIFICATION  -->
<!-- Set the "uri" attribute in the <olink /> element to the "named destination" for the PDF page-->

    <refsect1 id="specification"><title>Specification</title>
        <para>
            <imageobject>
                <imagedata fileref="pdficon_small1.gif" format="gif" />
            </imageobject>

            <olink uri="asyncCopyFunctions">OpenCL Specification</olink>
        </para>
    </refsect1>

<!-- ================================ ALSO SEE -->

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry href="asyncCopyFunctions"><refentrytitle>Async Copy and Prefetch  Functions</refentrytitle></citerefentry>
        </para>
    </refsect1>

<!-- ============================== COPYRIGHT -->
<!-- Content included from copyright.inc.xsl -->

    <refsect3 id="Copyright"><title></title>
        <imageobject>
                <imagedata fileref="KhronosLogo.jpg" format="jpg" />
        </imageobject>
        <para />
    </refsect3>

<!-- 9-Nov-2015, API ver 2.1 rev 19; Ext ver 2.1 rev 10; C lang ver 2.0 rev 30 -->
</refentry>

