task: add broadcast class implementation#2901
Conversation
aa39048 to
1b251bf
Compare
1b251bf to
a2f50c3
Compare
|
View rendered docs @ https://intelpython.github.io/dpnp/pull/2901/index.html |
|
Array API standard conformance tests for dpnp=0.21.0dev0=py313h509198e_51 ran successfully. |
| if len(dpnp_arrays) > 1: | ||
| exec_q = dpt.get_execution_queue( | ||
| tuple(array.sycl_queue for array in dpnp_arrays) | ||
| ) | ||
| if exec_q is None: | ||
| raise dpt.ExecutionPlacementError( | ||
| "Execution placement can not be unambiguously inferred " | ||
| "from input arguments." | ||
| ) |
There was a problem hiding this comment.
do we need to check for compute follows data here? The arrays can be broadcast even if they aren't, it just means device routines can't be run with both as inputs
There was a problem hiding this comment.
if we do keep this check, we would need to check if they are dpnp.tensor.usm_ndarray as well
| The number of iterators. | ||
|
|
||
| """ | ||
| return len(self._arrays) |
There was a problem hiding this comment.
primarily a question for @antonwolfy and @vlad-perevezentsev since it's design-related, but NumPy and CuPy differ drastically in this class implementation
https://numpy.org/doc/2.1/reference/generated/numpy.broadcast.html
https://docs.cupy.dev/en/latest/reference/generated/cupy.broadcast.html
do we want more of the CuPy or NumPy behavior? What is the intended use-case of this class to users?
Adds a
broadcastclass implementation