Newer
Older
.. |comparable| replace:: Instances of this class are hashable, and two
instances of this class may be compared using *"=="* and *"!="*.
(Hashability was added in version 2011.2.) Two objects are considered
the same if the underlying OpenCL object is the same, as established
by C pointer equality.
.. |buf-iface| replace:: must implement the Python buffer interface.
(e.g. by being an :class:`numpy.ndarray`)
.. |explain-waitfor| replace:: *wait_for*
may either be *None* or a list of :class:`pyopencl.Event` instances for
whose completion this command waits before starting exeuction.
.. |std-enqueue-blurb| replace:: Returns a new :class:`pyopencl.Event`. |explain-waitfor|
.. |copy-depr| replace:: **Note:** This function is deprecated as of PyOpenCL 2011.1.
Use :func:`~pyopencl.enqueue_copy` instead.
.. |glsize| replace:: *global_size* and *local_size* are tuples of identical length, with
between one and three entries. *global_size* specifies the overall size
of the computational grid: one work item will be launched for every
integer point in the grid. *local_size* specifies the workgroup size,
which must evenly divide the *global_size* in a dimension-by-dimension
manner. *None* may be passed for local_size, in which case the
implementation will use an implementation-defined workgroup size.
If *g_times_l* is *True*, the global size will be multiplied by the
local size. (which makes the behavior more like Nvidia CUDA) In this case,
*global_size* and *local_size* also do not have to have the same number
of entries.
.. |empty-nd-range| replace:: *allow_empty_ndrange* is a :class:`bool` indicating
how an empty NDRange is to be treated, where "empty" means that one or more
entries of *global_size* or *local_size* are zero. OpenCL itself does not
allow enqueueing kernels over empty NDRanges. Setting this flag to *True*
enqueues a marker with a wait list (``clEnqueueMarkerWithWaitList``)
to obtain the synchronization effects that would have resulted from
the kernel enqueue.
Setting *allow_empty_ndrange* to *True* requires OpenCL 1.2 or newer.