Skip to content

Commit

Permalink
Merge pull request #1341 from IntelPython/docs/overview
Browse files Browse the repository at this point in the history
[Documentation] Update to overview section of documentation 4b1c8a9
  • Loading branch information
github-actions[bot] committed Feb 28, 2024
1 parent 08881da commit c764ee3
Show file tree
Hide file tree
Showing 110 changed files with 8,783 additions and 5,305 deletions.
2 changes: 1 addition & 1 deletion dev/.buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 13bddb14d704aab1a4c4fbe13f276b4c
config: 308e1cb1ebab6e0bb89dd6129cd87345
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file removed dev/_images/kernel-queue-device.png
Binary file not shown.
Binary file removed dev/_images/kernel_prog_model.png
Binary file not shown.
4 changes: 3 additions & 1 deletion dev/_sources/autoapi/index.rst.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,11 @@ API Reference
This page contains auto-generated API reference documentation [#f1]_.

.. toctree::
:maxdepth: 2
:maxdepth: 1

numba_dpex/kernel_api/index
numba_dpex/experimental/decorators/index
numba_dpex/experimental/launcher/index


.. [#f1] Created with `sphinx-autoapi <https://github.com/readthedocs/sphinx-autoapi>`_
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@

:orphan:

numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_fence_overloads
=============================================================================

.. py:module:: numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_fence_overloads
.. autoapi-nested-parse::

Provides overloads for functions included in kernel_api.atomic_fence
that generate dpcpp SPIR-V LLVM IR intrinsic function calls.



Overview
--------


.. list-table:: Function
:header-rows: 0
:widths: auto
:class: summarytable

* - :py:obj:`ol_atomic_fence <numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_fence_overloads.ol_atomic_fence>`\ (memory_order, memory_scope)
- SPIR-V overload for




Functions
---------
.. py:function:: ol_atomic_fence(memory_order, memory_scope)
SPIR-V overload for
:meth:`numba_dpex.kernel_api.atomic_fence`.

Generates the same LLVM IR instruction as DPC++ for the SYCL
`atomic_fence` function.





Original file line number Diff line number Diff line change
@@ -0,0 +1,193 @@

:orphan:

numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_ref_overloads
===========================================================================

.. py:module:: numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_ref_overloads
.. autoapi-nested-parse::

Implements the SPIR-V overloads for the kernel_api.AtomicRef class methods.



Overview
--------


.. list-table:: Function
:header-rows: 0
:widths: auto
:class: summarytable

* - :py:obj:`ol_atomic_ref <numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_ref_overloads.ol_atomic_ref>`\ (ref, index, memory_order, memory_scope, address_space)
- Overload of the constructor for the class
* - :py:obj:`ol_fetch_add <numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_ref_overloads.ol_fetch_add>`\ (atomic_ref, val)
- SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.fetch_add`.
* - :py:obj:`ol_fetch_sub <numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_ref_overloads.ol_fetch_sub>`\ (atomic_ref, val)
- SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.fetch_sub`.
* - :py:obj:`ol_fetch_min <numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_ref_overloads.ol_fetch_min>`\ (atomic_ref, val)
- SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.fetch_min`.
* - :py:obj:`ol_fetch_max <numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_ref_overloads.ol_fetch_max>`\ (atomic_ref, val)
- SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.fetch_max`.
* - :py:obj:`ol_fetch_and <numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_ref_overloads.ol_fetch_and>`\ (atomic_ref, val)
- SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.fetch_and`.
* - :py:obj:`ol_fetch_or <numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_ref_overloads.ol_fetch_or>`\ (atomic_ref, val)
- SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.fetch_or`.
* - :py:obj:`ol_fetch_xor <numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_ref_overloads.ol_fetch_xor>`\ (atomic_ref, val)
- SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.fetch_xor`.
* - :py:obj:`ol_load <numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_ref_overloads.ol_load>`\ (atomic_ref)
- SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.load`.
* - :py:obj:`ol_store <numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_ref_overloads.ol_store>`\ (atomic_ref, val)
- SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.store`.
* - :py:obj:`ol_exchange <numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_ref_overloads.ol_exchange>`\ (atomic_ref, val)
- SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.exchange`.
* - :py:obj:`ol_compare_exchange <numba_dpex.experimental._kernel_dpcpp_spirv_overloads._atomic_ref_overloads.ol_compare_exchange>`\ (atomic_ref, expected_ref, desired, expected_idx)
- SPIR-V overload for




Functions
---------
.. py:function:: ol_atomic_ref(ref, index, memory_order=MemoryOrder.RELAXED, memory_scope=MemoryScope.DEVICE, address_space=AddressSpace.GLOBAL)
Overload of the constructor for the class
class:`numba_dpex.kernel_api.AtomicRef`.

:raises errors.TypingError: If the `ref` argument is not a UsmNdArray type.
:raises errors.TypingError: If the dtype of the `ref` is not supported in an
:raises AtomicRef.:
:raises errors.TypingError: If the device does not support atomic operations on
:raises the dtype of the `ref`.:
:raises errors.TypingError: If the `memory_order`, `address_type`, or
:raises memory_scope:
:raises errors.TypingError: If the `address_space` argument is different from
:raises the address space attribute of the `ref` argument.:
:raises errors.TypingError: If the address space is PRIVATE.


.. py:function:: ol_fetch_add(atomic_ref, val)
SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.fetch_add`.

Generates the same LLVM IR instruction as dpcpp for the
`atomic_ref::fetch_add` function.

:raises TypingError: When the dtype of the aggregator value does not match the
:raises dtype of the AtomicRef type.:


.. py:function:: ol_fetch_sub(atomic_ref, val)
SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.fetch_sub`.

Generates the same LLVM IR instruction as dpcpp for the
`atomic_ref::fetch_sub` function.

:raises TypingError: When the dtype of the aggregator value does not match the
:raises dtype of the AtomicRef type.:


.. py:function:: ol_fetch_min(atomic_ref, val)
SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.fetch_min`.

Generates the same LLVM IR instruction as dpcpp for the
`atomic_ref::fetch_min` function.

:raises TypingError: When the dtype of the aggregator value does not match the
:raises dtype of the AtomicRef type.:


.. py:function:: ol_fetch_max(atomic_ref, val)
SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.fetch_max`.

Generates the same LLVM IR instruction as dpcpp for the
`atomic_ref::fetch_max` function.

:raises TypingError: When the dtype of the aggregator value does not match the
:raises dtype of the AtomicRef type.:


.. py:function:: ol_fetch_and(atomic_ref, val)
SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.fetch_and`.

Generates the same LLVM IR instruction as dpcpp for the
`atomic_ref::fetch_and` function.

:raises TypingError: When the dtype of the aggregator value does not match the
:raises dtype of the AtomicRef type.:


.. py:function:: ol_fetch_or(atomic_ref, val)
SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.fetch_or`.

Generates the same LLVM IR instruction as dpcpp for the
`atomic_ref::fetch_or` function.

:raises TypingError: When the dtype of the aggregator value does not match the
:raises dtype of the AtomicRef type.:


.. py:function:: ol_fetch_xor(atomic_ref, val)
SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.fetch_xor`.

Generates the same LLVM IR instruction as dpcpp for the
`atomic_ref::fetch_xor` function.

:raises TypingError: When the dtype of the aggregator value does not match the
:raises dtype of the AtomicRef type.:


.. py:function:: ol_load(atomic_ref)
SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.load`.

Generates the same LLVM IR instruction as dpcpp for the
`atomic_ref::load` function.



.. py:function:: ol_store(atomic_ref, val)
SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.store`.

Generates the same LLVM IR instruction as dpcpp for the
`atomic_ref::store` function.

:raises TypingError: When the dtype of the value stored does not match the
:raises dtype of the AtomicRef type.:


.. py:function:: ol_exchange(atomic_ref, val)
SPIR-V overload for :meth:`numba_dpex.kernel_api.AtomicRef.exchange`.

Generates the same LLVM IR instruction as dpcpp for the
`atomic_ref::exchange` function.

:raises TypingError: When the dtype of the value passed to `exchange`
:raises does not match the dtype of the AtomicRef type.:


.. py:function:: ol_compare_exchange(atomic_ref, expected_ref, desired, expected_idx=0)
SPIR-V overload for
:meth:`numba_dpex.experimental.kernel_iface.AtomicRef.compare_exchange`.

Generates the same LLVM IR instruction as dpcpp for the
`atomic_ref::compare_exchange_strong` function.

:raises TypingError: When the dtype of the value passed to `compare_exchange`
:raises does not match the dtype of the AtomicRef type.:





Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@

:orphan:

numba_dpex.experimental._kernel_dpcpp_spirv_overloads._group_barrier_overloads
==============================================================================

.. py:module:: numba_dpex.experimental._kernel_dpcpp_spirv_overloads._group_barrier_overloads
.. autoapi-nested-parse::

Provides overloads for functions included in kernel_api.barrier that
generate dpcpp SPIR-V LLVM IR intrinsic function calls.



Overview
--------


.. list-table:: Function
:header-rows: 0
:widths: auto
:class: summarytable

* - :py:obj:`ol_group_barrier <numba_dpex.experimental._kernel_dpcpp_spirv_overloads._group_barrier_overloads.ol_group_barrier>`\ (group, fence_scope)
- SPIR-V overload for




Functions
---------
.. py:function:: ol_group_barrier(group, fence_scope=MemoryScope.WORK_GROUP)
SPIR-V overload for
:meth:`numba_dpex.kernel_api.group_barrier`.

Generates the same LLVM IR instruction as DPC++ for the SYCL
`group_barrier` function.

Per SYCL spec, group_barrier must perform both control barrier and memory
fence operations. Hence, group_barrier requires two scopes and one memory
consistency specification as its three arguments.

mem_scope - scope of any memory consistency operations that are performed by
the barrier. By default, mem_scope is set to `work_group`.
exec_scope - scope that determines the set of work-items that synchronize at
barrier. Set to `work_group` for group_barrier always.
spirv_memory_semantics_mask - Based on SYCL implementation. Always set to
use sequential consistency memory order.





Loading

0 comments on commit c764ee3

Please sign in to comment.