blob: d6b7119b18182a8716ff40ef45fa815b175a620f [file] [log] [blame]
<?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 qualifierInc SYSTEM "qualifierInc.xml">
<!ENTITY qualifierExampleInc SYSTEM "qualifierExampleInc.xml">
]>
<!-- !!! code examples need nicer formatting. See the core spec, pp. 220-221 -->
<refentry>
<refentryinfo>
<keywordset>
<keyword>__local</keyword>
</keywordset>
</refentryinfo>
<refmeta>
<refentrytitle>__local</refentrytitle>
<refmiscinfo>
<copyright>
<year>2007-2011y</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="__local">
<refname>__local</refname>
<refpurpose>
Address Space Qualifier.
</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>
__local
local
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect2>
<!-- ================================ DESCRIPTION -->
<refsect1 id="description"><title>Description</title>
&qualifierInc;
</refsect1>
<!-- ================================ NOTES -->
<refsect1 id="notes"><title>Notes</title>
<para>
The <function>__local</function> or <function>local</function> address space name is
used to describe variables that need to be allocated in local memory and are shared by
all work-items of a work-group. Pointers to the <function>__local</function> address
space are allowed as arguments to functions (including <function>__kernel</function>
functions). Variables allocated in the <function>__local</function> address space can
also be defined inside a <function>__kernel</function> function scope.
</para>
</refsect1>
<!-- ================================ EXAMPLE -->
<refsect2 id="example1">
<title>
Example
</title>
&qualifierExampleInc;
<informaltable frame="none">
<tgroup cols="1" align="left" colsep="0" rowsep="0">
<colspec colname="col1" colnum="1" />
<tbody>
<row>
<entry>
// Examples of variables allocated in the __local address space
// inside a __kernel function
__kernel void my_func(...)
{
__local float a; // A single float allocated
// in local address space
__local float b[10]; // An array of 10 floats
// allocated in local address space.
if (...)
{
// example of variable in __local address space but not
// declared at __kernel function scope.
__local float c; // not allowed.
}
}
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
<para>
Variables allocated in the <function>__local</function> address space inside a
<function>__kernel</function> function cannot be initialized.
</para>
<literallayout>
__kernel void my_func(...)
{
local float a = 1; // not allowed __local float b; b = 1; // allowed
}
</literallayout> <para>NOTE: Variables allocated in the <function>__local</function> address
space inside a <function>__kernel</function> function are allocated for each work-group executing
the kernel.</para>
</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="addressSpaceQualifier">OpenCL Specification</olink>
</para>
</refsect1>
<!-- ================================ ALSO SEE -->
<refsect1 id="seealso"><title>Also see</title>
<para>
<citerefentry href="global"><refentrytitle>__global</refentrytitle></citerefentry>,
<citerefentry href="constant"><refentrytitle>__constant</refentrytitle></citerefentry>,
<citerefentry href="private"><refentrytitle>__private</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>
<!-- 16-Oct-2011 -->
</refentry>