Skip to content

Commit b25da1a

Browse files
committed
rework
1 parent b7e80d3 commit b25da1a

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

spec/draft/design_topics/device_support.rst

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -76,16 +76,14 @@ rather than hard requirements:
7676

7777
- Respect explicit device assignment (i.e. if the input to the ``device=`` keyword is not ``None``, guarantee that the array is created on the given device, and raise an exception otherwise).
7878
- Preserve device assignment as much as possible (e.g. output arrays from a function are expected to be on the same device as input arrays to the function).
79+
- When a function accepts a mix of arrays and Python scalars, the scalars should inherit the device of the arrays, much like it happens with :ref:`type-promotion`.
7980
- Raise an exception if an operation involves arrays on different devices (i.e. avoid implicit data transfer between devices).
8081
- Use a default for ``device=None`` which is consistent between functions within the same library.
81-
- If a library has multiple ways of controlling device placement, the most explicit method should have the highest priority. For example:
82+
- If a library has multiple ways of controlling device placement, the most explicit method has the highest priority:
8283

8384
1. If ``device=`` keyword is specified, that always takes precedence
84-
85-
2. If ``device=None``, then use the device of the input array(s), if any.
86-
87-
3. If there are no input arrays, then use the setting from a context manager, if set.
88-
85+
2. If ``device=None`` or the function does not accept a ``device`` parameter, then use the device of the input array(s), if any.
86+
3. If there are no input arrays, then use the setting from a context manager, if any.
8987
4. If no context manager was used, then use the global default device/strategy
9088

9189
.. _device-out-of-scope:

0 commit comments

Comments
 (0)