<?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 atomicFunctionsInc SYSTEM "atomicFunctionsInc.xml">
]>

<refentry>
    <refentryinfo>
        <keywordset>
            <keyword>memory_scope</keyword>
        </keywordset>
    </refentryinfo>

    <refmeta>
        <refentrytitle>memory_scope</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="memory_scope">
        <refname>memory_scope</refname>

        <refpurpose>
            Identify if memory_scope applies to work-items in a work-group or work-items of a kernel(s).
        </refpurpose>
    </refnamediv>

    <!-- ALTERNATIVE SYNTAX SYNOPSIS (NON-FUNCTION) -->

    <refsect2 id="synopsis">
        <title>
        </title>

        <informaltable frame="none">
            <tgroup cols="1" align="left" colsep="0" rowsep="0">
                <colspec colname="col1" colnum="1" />
                <tbody>
                    <row>
                        <entry>
memory_scope
                        </entry>
                    </row>
                </tbody>
            </tgroup>
        </informaltable>
    </refsect2>

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

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

<!-- general atomic functions info -->

        <para>
            The OpenCL C programming language implements a subset of the C11 atomics (refer to section 
            7.17 of the C11 specification) and synchronization operations. These operations play a special 
            role in making assignments in one work-item visible to another.
            A synchronization operation on 
            one or more memory locations is either an acquire operation, a release operation, or both an 
            acquire and release operation. (The C11 consume operation is not supported.)
            A synchronization operation without an associated memory 
            location is a fence and can be either an acquire fence, a release fence or both an acquire and 
            release fence. In addition, there are relaxed atomic operations, which are not synchronization 
            operations, and atomic read-modify-write operations which have special characteristics
        </para>

<!-- start of memory_scope-specific text -->

        <para>
            The enumerated type <type>memory_scope</type> specifies 
            whether the memory ordering constraints given by 
            <citerefentry><refentrytitle>memory_order</refentrytitle></citerefentry> 
            apply to work-items in a work-group or work-items of a kernel(s) 
            executing on the device or across devices (in the case of shared virtual memory).
            Its enumeration constants are as follows:
        </para>

        <para>
<literallayout><code>     <constant>memory_scope_work_item</constant>
     <constant>memory_scope_work_group</constant>
     <constant>memory_scope_device</constant>
     <constant>memory_scope_all_svm_devices</constant>
</code></literallayout>
        </para>

        <para>
            The <constant>memory_scope_work_item</constant> value for 
            <type>memory_scope</type> can only be used with 
            <citerefentry><refentrytitle>atomic_work_item_fence</refentrytitle></citerefentry>
            with <varname>flags</varname> set to 
            <constant>CLK_IMAGE_MEM_FENCE</constant>.
        </para>

        <para>
            The memory scope should only be used when performing atomic operations to global memory. 
            Atomic operations to local memory only guarantee memory ordering in the work-group not 
            across work-groups and therefore ignore the <type>memory_scope</type> value.
        </para>
    </refsect1>

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

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

    </refsect1>

<!-- ================================ EXAMPLE  -->

<!--
    <refsect2 id="example1">
        <title>
            Example
        </title>

        <para>
        </para>

        <informaltable frame="none">
            <tgroup cols="1" align="left" colsep="0" rowsep="0">
                <colspec colname="col1" colnum="1" />
                <tbody>
                    <row>
                        <entry>
example code
                        </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="memory_scope">OpenCL Specification</olink>
        </para>
    </refsect1>

<!-- ================================ ALSO SEE  -->
<!-- Enter comma-delimited list of all other pages in the system to link to, using
     <citerefentry /><refentrytitle /> to make it a link. For any case where the text of the link needs to differ
     from the filename of the html file this links to, use the "href" attribute in <citerefentry />. For example:
     <citerefentry href="thatPage"><refentrytitle>clGetDeviceInfo</refentrytitle></citerefentry> -->

    <refsect1 id="seealso"><title>Also see</title>
        <para>
            <citerefentry href="atomicFunctions"><refentrytitle>Atomic Functions</refentrytitle></citerefentry>,
            <citerefentry><refentrytitle>memory_order</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>

 <!-- 28-Oct-2015, Ext ver 2.1 rev 10; C lang ver 2.0 rev 30 -->
</refentry>

