diff --git a/doc/index.rst b/doc/index.rst index d862a8acd0cb258bfd1e9623bd5cef895871f6b1..b77bbb16f413defe5010c75d28464051553b4486 100644 --- a/doc/index.rst +++ b/doc/index.rst @@ -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 diff --git a/doc/ref_kernel.rst b/doc/ref_kernel.rst index c9ce206260c04fc883a0f980df0b18a9a826bbd9..896388d2911a6d3c0e7783d7b1b3833b87c770d0 100644 --- a/doc/ref_kernel.rst +++ b/doc/ref_kernel.rst @@ -406,7 +406,7 @@ Arguments :members: :undoc-members: -.. autoclass:: GlobalArg +.. autoclass:: ArrayArg :members: :undoc-members: @@ -593,7 +593,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. diff --git a/doc/tutorial.rst b/doc/tutorial.rst index 1272d2a59119725a903fa7cd1a08b7de8629c6f6..73f5dea75da6152503eb90a90fcfb7da376de89a 100644 --- a/doc/tutorial.rst +++ b/doc/tutorial.rst @@ -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 diff --git a/examples/python/hello-loopy.loopy b/examples/python/hello-loopy.loopy index 0ba44d6eccb18236ac13e17ca747318af3962634..7f79730985119096daf3bbdd31ff17a2c0e7ab2c 100644 --- a/examples/python/hello-loopy.loopy +++ b/examples/python/hello-loopy.loopy @@ -1,7 +1,7 @@ # 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 }", diff --git a/loopy/kernel/__init__.py b/loopy/kernel/__init__.py index 6b0033808c616829e60615b92849fa6353751a82..e3342d0f9d0cac2ef3c4e3d56423ce4b4ba0ac8a 100644 --- a/loopy/kernel/__init__.py +++ b/loopy/kernel/__init__.py @@ -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 diff --git a/loopy/kernel/array.py b/loopy/kernel/array.py index 6bf733a84f9df48fbb8433015e1e137f6dc0392c..bae9d7d1fbc873076a84b933e5c78f5c9b19dbb5 100644 --- a/loopy/kernel/array.py +++ b/loopy/kernel/array.py @@ -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 diff --git a/loopy/kernel/data.py b/loopy/kernel/data.py index 3e776bd0609f8c4c6f63aadae811d97a0f97b579..7877f8b939444bf3dc095037ffeaa1bb548c39d6 100644 --- a/loopy/kernel/data.py +++ b/loopy/kernel/data.py @@ -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`. """ diff --git a/loopy/transform/add_barrier.py b/loopy/transform/add_barrier.py index cfbbd56e906c5e622debcd82bd5368aa3b1fb34c..a20a798cfa35c64c0cbd7097b41824dda2a35a84 100644 --- a/loopy/transform/add_barrier.py +++ b/loopy/transform/add_barrier.py @@ -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: diff --git a/loopy/transform/batch.py b/loopy/transform/batch.py index f0b9814c43698a64af23f1555a27e910ef89762e..f6568918d30f33d4c7103e40d02bdc40c38dfa1b 100644 --- a/loopy/transform/batch.py +++ b/loopy/transform/batch.py @@ -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 diff --git a/loopy/transform/buffer.py b/loopy/transform/buffer.py index 801da4c13057edb089d9e9cba098ba41e9919ed6..63d3a40fb6c6967cac5e6149d5cf51bb7c2efbb9 100644 --- a/loopy/transform/buffer.py +++ b/loopy/transform/buffer.py @@ -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 diff --git a/loopy/transform/iname.py b/loopy/transform/iname.py index ad1da3e7e67d9d609f51bfed4db7141d14e508dd..83598dcc26646261703ce9b24fecebdd8a975774 100644 --- a/loopy/transform/iname.py +++ b/loopy/transform/iname.py @@ -66,8 +66,6 @@ __doc__ = """ .. autofunction:: affine_map_inames -.. autofunction:: realize_ilp - .. autofunction:: find_unused_axis_tag .. autofunction:: make_reduction_inames_unique