-
Notifications
You must be signed in to change notification settings - Fork 31
Labels
bugThe problem described is something that must be fixedThe problem described is something that must be fixed
Description
Version of Awkward Array
2.8.1
Description and code to reproduce
For an operation that works fine for the cpu
backend, I am getting a ValueError
error when running with the cuda
backend. This code reproduces the issue:
import awkward as ak
from coffea.nanoevents.methods import candidate
def test(pt,eta,phi,mass,backend_type):
jets = ak.zip(
{
"pt" : ak.Array(pt, backend=backend_type),
"eta" : ak.Array(eta, backend=backend_type),
"phi" : ak.Array(phi, backend=backend_type),
"mass": ak.Array(mass, backend=backend_type)
},
with_name="PtEtaPhiMLorentzVector",
behavior=candidate.behavior,
)
jet_combs = ak.combinations(jets, 2, fields=["j1", "j2"])
print("\njet_combs backend:",ak.backend(jet_combs))
result = jet_combs.j1 + jet_combs.j2
pt = [[23.1, 21.0, 17.3], [72.6, 51.3, 33.7]]
eta = [[-2.3, 3.4, -0.5], [1.7, 2.2, 0.7]]
phi = [[0.2, -0.7, -2.8], [-2.5, -0.1, 2.1]]
mass = [[4.6, 5.5, 3.4], [12.0, 9.5, 7.8]]
test(pt,eta,phi,mass,"cpu")
test(pt,eta,phi,mass,"cuda")
The result = jet_combs.j1 + jet_combs.j2
line runs fine with cpu
, but with cuda
, the same line gives an error ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
. The full error is pasted here:
Traceback (most recent call last):
File "/home/k.mohrman/coffea_dir/gpu_studies/columnar_gpu/t.py", line 28, in <module>
test(pt,eta,phi,mass,"cuda")
File "/home/k.mohrman/coffea_dir/gpu_studies/columnar_gpu/t.py", line 20, in test
result = jet_combs.j1 + jet_combs.j2
~~~~~~~~~~~~~^~~~~~~~~~~~~~
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_operators.py", line 54, in func
return ufunc(self, other)
^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/highlevel.py", line 1619, in __array_ufunc__
with ak._errors.OperationErrorContext(name, inputs, kwargs):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_errors.py", line 80, in __exit__
raise self.decorate_exception(exception_type, exception_value)
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/highlevel.py", line 1620, in __array_ufunc__
return ak._connect.numpy.array_ufunc(ufunc, method, inputs, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_connect/numpy.py", line 469, in array_ufunc
out = ak._broadcasting.broadcast_and_apply(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 1200, in broadcast_and_apply
out = apply_step(
^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 1178, in apply_step
return continuation()
^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 1147, in continuation
return broadcast_any_list()
^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 671, in broadcast_any_list
outcontent = apply_step(
^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 1178, in apply_step
return continuation()
^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 1147, in continuation
return broadcast_any_list()
^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 747, in broadcast_any_list
outcontent = apply_step(
^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 1178, in apply_step
return continuation()
^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 1130, in continuation
return broadcast_any_indexed()
^^^^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 1080, in broadcast_any_indexed
return apply_step(
^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 1160, in apply_step
result = action(
^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_connect/numpy.py", line 381, in action
return _array_ufunc_adjust(custom, inputs, kwargs, behavior)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_connect/numpy.py", line 184, in _array_ufunc_adjust
out = custom(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/vector/_methods.py", line 3997, in add
return module.add.dispatch(self, other)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/vector/_compute/lorentz/add.py", line 207, in dispatch
handler._wrap_dispatched_function(function)(
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/vector/backends/awkward.py", line 1093, in __call__
return ak.transform(transformer, *awkward_arrays)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_dispatch.py", line 64, in dispatch
next(gen_or_result)
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/operations/ak_transform.py", line 469, in transform
return _impl(
^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/operations/ak_transform.py", line 632, in _impl
out = apply_broadcasting_step(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 1178, in apply_step
return continuation()
^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 1147, in continuation
return broadcast_any_list()
^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 671, in broadcast_any_list
outcontent = apply_step(
^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 1178, in apply_step
return continuation()
^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 1130, in continuation
return broadcast_any_indexed()
^^^^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 1080, in broadcast_any_indexed
return apply_step(
^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/_broadcasting.py", line 1160, in apply_step
result = action(
^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/awkward/operations/ak_transform.py", line 592, in action
out = transformation(tuple(inputs), **kwargs, behavior=behavior)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/vector/backends/awkward.py", line 1070, in transformer
out_numpys = bind(self.func, *args2bind)(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/vector/backends/awkward.py", line 1015, in __call__
return self.func(*args, *iargs, **keywords)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/vector/_compute/lorentz/add.py", line 148, in f
coord1, coord2, coord3 = spatial_add(
^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/vector/_compute/spatial/add.py", line 393, in rhophi_eta_rhophi_eta
return (rho, phi, eta.rhophi_z(lib, rho, phi, z1 + z2))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/vector/_compute/spatial/eta.py", line 56, in rhophi_z
return lib.nan_to_num(
^^^^^^^^^^^^^^^
File "cupy/_core/core.pyx", line 1766, in cupy._core.core._ndarray_base.__array_function__
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/cupy/_math/misc.py", line 422, in nan_to_num
nan = _check_nan_inf(nan, dtype)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/blue/p.chang/k.mohrman/dir_for_miniconda/miniconda3/envs/coffeagpu_env1/lib/python3.12/site-packages/cupy/_math/misc.py", line 402, in _check_nan_inf
elif cupy.isnan(x):
^^^^^^^^^^^^^
File "cupy/_core/core.pyx", line 1293, in cupy._core.core._ndarray_base.__nonzero__
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
This error occurred while calling
numpy.add.__call__(
<PtEtaPhiMLorentzVectorArray [[{pt: 23.1, ...}, ...], ...] type='2 ...'>
<PtEtaPhiMLorentzVectorArray [[{pt: 21.0, ...}, ...], ...] type='2 ...'>
)
Sub-issues
Metadata
Metadata
Assignees
Labels
bugThe problem described is something that must be fixedThe problem described is something that must be fixed