-
Notifications
You must be signed in to change notification settings - Fork 33
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1341 from IntelPython/docs/overview
[Documentation] Update to overview section of documentation 4b1c8a9
- Loading branch information
1 parent
08881da
commit c764ee3
Showing
110 changed files
with
8,783 additions
and
5,305 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
44 changes: 44 additions & 0 deletions
44
...xperimental/_kernel_dpcpp_spirv_overloads/_atomic_fence_overloads/index.rst.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. | ||
|
||
|
||
|
||
|
||
|
193 changes: 193 additions & 0 deletions
193
.../experimental/_kernel_dpcpp_spirv_overloads/_atomic_ref_overloads/index.rst.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.: | ||
|
||
|
||
|
||
|
||
|
55 changes: 55 additions & 0 deletions
55
...perimental/_kernel_dpcpp_spirv_overloads/_group_barrier_overloads/index.rst.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. | ||
|
||
|
||
|
||
|
||
|
Oops, something went wrong.