Skip to content
Snippets Groups Projects
Commit 1d4d948f authored by Matt Wala's avatar Matt Wala
Browse files

Merge branch 'master' into remove-auto-from-insn-temp-var-type

parents 967bc165 15e79877
No related branches found
No related tags found
No related merge requests found
......@@ -25,18 +25,18 @@ Want to try out loopy?
There's no need to go through :ref:`installation` if you'd just like to get a
feel for what loopy is. Instead, you may
`download a self-contained Linux binary <https://gitlab.tiker.net/inducer/loopy/builds/36708/artifacts/browse/build-helpers/>`_.
`download a self-contained Linux binary <https://gitlab.tiker.net/inducer/loopy/-/jobs/66778/artifacts/browse/build-helpers/>`_.
This is purposefully built on an ancient Linux distribution, so it should work
on most versions of Linux that are currently out there.
Once you have the binary, do the following::
chmod +x ./loopy-centos6
./loopy-centos6 --target=opencl hello-loopy-lp.py
./loopy-centos6 --target=cuda hello-loopy-lp.py
./loopy-centos6 --target=ispc hello-loopy-lp.py
./loopy-centos6 --target=opencl hello-loopy.loopy
./loopy-centos6 --target=cuda hello-loopy.loopy
./loopy-centos6 --target=ispc hello-loopy.loopy
Grab the example here: :download:`examples/python/hello-loopy.py <../examples/python/hello-loopy-lp.py>`.
Grab the example here: :download:`examples/python/hello-loopy.loopy <../examples/python/hello-loopy.loopy>`.
You may also donwload the most recent version by going to the `list of builds
<https://gitlab.tiker.net/inducer/loopy/builds>`_, clicking on the newest one
......
......@@ -406,7 +406,7 @@ Arguments
:members:
:undoc-members:
.. autoclass:: GlobalArg
.. autoclass:: ArrayArg
:members:
:undoc-members:
......@@ -595,7 +595,7 @@ Do not create :class:`LoopKernel` objects directly. Instead, refer to
Implementation Detail: The Base Array
-------------------------------------
All array-like data in :mod:`loopy` (such as :class:`GlobalArg` and
All array-like data in :mod:`loopy` (such as :class:`ArrayArg` and
:class:`TemporaryVariable`) derive from single, shared base array type,
described next.
......
......@@ -1361,7 +1361,7 @@ code-generation however additional implementation may be required for custom
functions. The full lists of available functions may be found in a the
:class:`TargetBase` implementation (e.g. :class:`CudaTarget`)
Custom user functions may be represented using the method described in :ref:`_functions`
Custom user functions may be represented using the method described in :ref:`functions`
Data-dependent control flow
......
# This is a version of hello-loopy.py that can be run through
# a loopy binary using
#
# ./loopy --lang=loopy hello-loopy-lp.py -
# ./loopy --lang=loopy hello-loopy.loopy -
knl = lp.make_kernel(
"{ [i]: 0<=i<n }",
......
......@@ -142,7 +142,7 @@ class LoopKernel(ImmutableRecordWithoutPickling):
.. note::
This data structure and its attributes should be considered immutable,
even if it contains mutable data types. See :method:`copy` for an easy
even if it contains mutable data types. See :meth:`copy` for an easy
way of producing a modified copy.
.. attribute:: domains
......
......@@ -549,15 +549,15 @@ class ArrayBase(ImmutableRecord):
.. attribute :: name
.. attribute :: dtype
the :class:`loopy.loopytype` of the array.
if this is *none*, :mod:`loopy` will try to continue without
knowing the type of this array, where the idea is that precise
knowledge of the type will become available at invocation time.
:class:`loopy.compiledkernel` (and thereby
:meth:`loopy.loopkernel.__call__`) automatically add this type
information based on invocation arguments.
note that some transformations, such as :func:`loopy.add_padding`
The :class:`loopy.types.LoopyType` of the array. If this is *None*,
:mod:`loopy` will try to continue without knowing the type of this
array, where the idea is that precise knowledge of the type will become
available at invocation time. Calling the kernel
(via :meth:`loopy.LoopKernel.__call__`)
automatically adds this type information based on invocation arguments.
Note that some transformations, such as :func:`loopy.add_padding`
cannot be performed without knowledge of the exact *dtype*.
.. attribute :: shape
......
......@@ -49,7 +49,7 @@ from warnings import warn
class auto(object): # noqa
"""A generic placeholder object for something that should be automatically
determined. See, for example, the *shape* or *strides* argument of
:class:`GlobalArg`.
:class:`ArrayArg`.
"""
......
......@@ -44,15 +44,15 @@ def add_barrier(knl, insn_before="", insn_after="", id_based_on=None,
be any inputs that are understood by :func:`loopy.match.parse_match`.
:arg insn_before: String expression that specifies the instruction(s)
before the barrier which is to be added
before the barrier which is to be added
:arg insn_after: String expression that specifies the instruction(s) after
the barrier which is to be added
the barrier which is to be added
:arg id: String on which the id of the barrier would be based on.
:arg tags: The tag of the group to which the barrier must be added
:arg synchronization_kind: Kind of barrier to be added. May be "global" or
"local"
"local"
:arg kind: Type of memory to be synchronied. May be "global" or "local". Ignored
for "global" bariers. If not supplied, defaults to :arg:`synchronization_kind`
for "global" bariers. If not supplied, defaults to *synchronization_kind*
"""
if mem_kind is None:
......
......@@ -106,6 +106,7 @@ def to_batched(knl, nbatches, batch_varying_args, batch_iname_prefix="ibatch",
sequential=False):
"""Takes in a kernel that carries out an operation and returns a kernel
that carries out a batch of these operations.
.. note::
For temporaries in a kernel that are private or read only
globals and if `sequential=True`, loopy does not does not batch these
......
......@@ -160,7 +160,7 @@ def buffer_array(kernel, var_name, buffer_inames, init_expression=None,
matching contexts. See :func:`loopy.match.parse_stack_match`
for syntax.
:arg temporary_scope: If given, override the choice of
:class:`AddressSpace` for the created temporary.
:class:`AddressSpace` for the created temporary.
:arg default_tag: The default :ref:`iname-tags` to be assigned to the
inames used for fetching and storing
:arg fetch_bounding_box: If the access footprint is non-convex
......
......@@ -66,8 +66,6 @@ __doc__ = """
.. autofunction:: affine_map_inames
.. autofunction:: realize_ilp
.. autofunction:: find_unused_axis_tag
.. autofunction:: make_reduction_inames_unique
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment