-
Notifications
You must be signed in to change notification settings - Fork 30
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tensor.clip throws ValueError on input generated by array API test #1742
Comments
It is tough to say what the correct behavior should be with this edge case. The array API demands output array has the same dtype as input. It could be possible to implement something like comparisons for unsigned and signed integer. But Numpy does not permit this case either (when restricting out dtype to input dtype). Numpy also has an open issue on the topic of not permitting promotion in the output like array API encourages Whatever decision dpctl makes, I feel that this test should be filed as an issue with array_api_tests regardless. Per the spec:
|
It seems the issue is also present when inputs are of the same kind: dpctl.__version__
# Out: '0.19.0dev0+428.g94b8f841fd'
x = dpt.asarray(0, dtype=numpy.uint8)
dpt.clip(x, min=1, max=dpt.asarray([], dtype=numpy.uint16))
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Cell In[9], line 1
----> 1 dpt.clip(x, min=1, max=dpt.asarray([], dtype=numpy.uint16))
File /localdisk/work/antonvol/soft/miniforge3/envs/dpnp_dev/lib/python3.11/site-packages/dpctl/tensor/_clip.py:463, in clip(x, min, max, out, order)
455 buf1_dt, buf2_dt, res_dt = _check_clip_dtypes(
456 x_dtype,
457 min_dtype,
458 max_dtype,
459 sycl_dev,
460 )
462 if res_dt is None:
--> 463 raise ValueError(
464 f"function '{clip}' does not support input types "
465 f"({x_dtype}, {min_dtype}, {max_dtype}), "
466 "and the inputs could not be safely coerced to any "
467 "supported types according to the casting rule ''safe''."
468 )
470 orig_out = out
471 if out is not None:
ValueError: function '<function clip at 0x7f434a032ac0>' does not support input types (uint8, uint16, uint16), and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''. While the above example works in numpy: numpy.__version__
# Out: '2.2.1'
x = numpy.asarray(0, dtype=numpy.uint8)
numpy.clip(x, min=1, max=numpy.asarray([], dtype=numpy.uint16))
# Out: array([], dtype=uint16) |
The input is
Raises
ValueError: function 'clip' does not support input types (uint8, int8), and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''.
.This causes failure in
array_api_tests/test_operators_and_elementwise_functions.py::test_clip
.The issue is to investigate the failure and either fix or file an issue with array_api_tests
The text was updated successfully, but these errors were encountered: