Bug#1031414: clinfo breaks libgpuarray autopkgtest on i386: numerical deltas

Paul Gevers elbrus at debian.org
Thu Feb 16 21:03:07 GMT 2023


Source: clinfo, libgpuarray
Control: found -1 clinfo/3.0.23.01.25-1
Control: found -1 libgpuarray/0.7.6-13
Severity: serious
Tags: sid bookworm
User: debian-ci at lists.debian.org
Usertags: breaks needs-update

Dear maintainer(s),

With a recent upload of clinfo the autopkgtest of libgpuarray fails in 
testing when that autopkgtest is run with the binary packages of clinfo 
from unstable. It passes when run with only packages from testing. In 
tabular form:

                        pass            fail
clinfo                 from testing    3.0.23.01.25-1
libgpuarray            from testing    0.7.6-13
versioned deps [0]     from testing    from unstable
all others             from testing    from testing

I copied some of the output at the bottom of this report.

Currently this regression is blocking the migration of clinfo to testing 
[1]. Due to the nature of this issue, I filed this bug report against 
both packages. Can you please investigate the situation and reassign the 
bug to the right package?

More information about this bug and the reason for filing it can be found on
https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation

Paul

[0] You can see what packages were added from the second line of the log 
file quoted below. The migration software adds source package from 
unstable to the list if they are needed to install packages from 
clinfo/3.0.23.01.25-1. I.e. due to versioned dependencies or 
breaks/conflicts.
[1] https://qa.debian.org/excuses.php?package=clinfo

https://ci.debian.net/data/autopkgtest/testing/i386/libg/libgpuarray/31439784/log.gz

=================================== FAILURES 
===================================
__________________________ test_ielemwise2_ops_mixed 
___________________________

     def test_ielemwise2_ops_mixed():
         for op in ioperators2:
             for dtype in dtypes_test:
                 for elem in elems:
>                   ielemwise2_ops_mixed(op, dtype, (50,), elem)

/usr/lib/python3/dist-packages/pygpu/tests/test_elemwise.py:173: _ _ _ _ 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3/dist-packages/pygpu/tests/support.py:44: in f
     func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ _ _
op = <built-in function imod>, dtype = 'float32', shape = (50,), elem = 0.3

     @guard_devsup
     def ielemwise2_ops_mixed(op, dtype, shape, elem):
         incr = 0
         if op == operator.isub and dtype[0] == 'u':
             # array elements are smaller than 10 by default, so we 
avoid underflow
             incr = 10
         c, g = gen_gpuarray(shape, dtype, incr=incr, ctx=context,
                             cls=elemary)
             try:
             out_c = op(c, elem)
         except TypeError:
             # TODO: currently, we use old Numpy semantic and tolerate 
more case.
             # So we can't test that we raise the same error
             return
         out_g = op(g, elem)
             assert out_g is g
         assert out_c.shape == out_g.shape
         assert out_c.dtype == out_g.dtype
>       assert numpy.allclose(out_c, numpy.asarray(out_g))
E       assert False
E        +  where False = <function allclose at 
0xf3ad35c8>(array([0.16798985, 0.10199559, 0.00094628, 0.284034  , 
0.00356799,\n       0.18276209, 0.06017095, 0.12363595, 0.14555043, 
0.06383288,\n       0.27849692, 0.23479545, 0.1120947 , 0.03348678, 
0.17435497,\n       0.10784233, 0.15038443, 0.08132076, 0.26949704, 
0.28150958,\n       0.08847237, 0.07874835, 0.14240652, 0.22457486, 
0.02050698,\n       0.24944574, 0.29784787, 0.03708786, 0.23751181, 
0.26554942,\n       0.26809436, 0.02403933, 0.23044948, 0.13133025, 
0.29589295,\n       0.05166197, 0.07869713, 0.10319626, 0.07735932, 
0.241211  ,\n       0.27668405, 0.16557133, 0.26950228, 0.230201  , 
0.2993518 ,\n       0.0713675 , 0.02841425, 0.04263723, 0.194592  , 
0.2564727 ],\n      dtype=float32), array([0.16798979, 0.10199571, 
0.00094652, 0.28403443, 0.00356805,\n       0.1827622 , 0.06017077, 
0.12363613, 0.14555037, 0.063833  ,\n       0.2784968 , 0.23479551, 
0.11209452, 0.03348672, 0.17435497,\n       0.10784221, 0.1503846 , 
0.08132076, 0.26949698, 0.28150946,\n       0.08847237, 0.07874823, 
0.14240658, 0.22457486, 0.0205071 ,\n       0.24944574, 0.29784793, 
0.0370878 , 0.2375117 , 0.26554942,\n       0.26809436, 0.02403933, 
0.23044948, 0.13133001, 0.29589337,\n       0.05166197, 0.07869713, 
0.10319638, 0.07735932, 0.24121124,\n       0.276684  , 0.16557115, 
0.26950234, 0.230201  , 0.29935163,\n       0.07136726, 0.02841425, 
0.04263711, 0.19459194, 0.25647253],\n      dtype=float32))
E        +    where <function allclose at 0xf3ad35c8> = numpy.allclose
E        +    and   array([0.16798979, 0.10199571, 0.00094652, 
0.28403443, 0.00356805,\n       0.1827622 , 0.06017077, 0.12363613, 
0.14555037, 0.063833  ,\n       0.2784968 , 0.23479551, 0.11209452, 
0.03348672, 0.17435497,\n       0.10784221, 0.1503846 , 0.08132076, 
0.26949698, 0.28150946,\n       0.08847237, 0.07874823, 0.14240658, 
0.22457486, 0.0205071 ,\n       0.24944574, 0.29784793, 0.0370878 , 
0.2375117 , 0.26554942,\n       0.26809436, 0.02403933, 0.23044948, 
0.13133001, 0.29589337,\n       0.05166197, 0.07869713, 0.10319638, 
0.07735932, 0.24121124,\n       0.276684  , 0.16557115, 0.26950234, 
0.230201  , 0.29935163,\n       0.07136726, 0.02841425, 0.04263711, 
0.19459194, 0.25647253],\n      dtype=float32) = <built-in function 
asarray>(gpuarray.array([0.16798979, 0.10199571, 0.00094652, 0.28403443, 
0.00356805,\n       0.1827622 , 0.06017077, 0.12363613, 0.14555037, 
0.063833  ,\n       0.2784968 , 0.23479551, 0.11209452, 0.03348672, 
0.17435497,\n       0.10784221, 0.1503846 , 0.08132076, 0.26949698, 
0.28150946,\n       0.08847237, 0.07874823, 0.14240658, 0.22457486, 
0.0205071 ,\n       0.24944574, 0.29784793, 0.0370878 , 0.2375117 , 
0.26554942,\n       0.26809436, 0.02403933, 0.23044948, 0.13133001, 
0.29589337,\n       0.05166197, 0.07869713, 0.10319638, 0.07735932, 
0.24121124,\n       0.276684  , 0.16557115, 0.26950234, 0.230201  , 
0.29935163,\n       0.07136726, 0.02841425, 0.04263711, 0.19459194, 
0.25647253],\n      dtype=float32))
E        +      where <built-in function asarray> = numpy.asarray

/usr/lib/python3/dist-packages/pygpu/tests/test_elemwise.py:217: 
AssertionError
_________________________________ test_divmod 
__________________________________

     def test_divmod():
         for dtype1 in dtypes_test:
             for dtype2 in dtypes_test:
                 divmod_array(dtype1, dtype2, (50,))
         for dtype in dtypes_test:
             for elem in elems:
>               divmod_mixed(dtype, (50,), elem)

/usr/lib/python3/dist-packages/pygpu/tests/test_elemwise.py:226: _ _ _ _ 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3/dist-packages/pygpu/tests/support.py:44: in f
     func(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ _ _
dtype = 'float32', shape = (50,), elem = 0.3

     @guard_devsup
     def divmod_mixed(dtype, shape, elem):
         c, g = gen_gpuarray(shape, dtype, nozeros=True, ctx=context,
                             cls=elemary)
             out_c = divmod(c, elem)
         out_g = divmod(g, elem)
             assert out_c[0].shape == out_g[0].shape
         assert out_c[1].shape == out_g[1].shape
         assert out_c[0].dtype == out_g[0].dtype
         assert out_c[1].dtype == out_g[1].dtype
         assert numpy.allclose(out_c[0], numpy.asarray(out_g[0]))
>       assert numpy.allclose(out_c[1], numpy.asarray(out_g[1]))
E       assert False
E        +  where False = <function allclose at 
0xf3ad35c8>(array([0.2521088 , 0.2836941 , 0.05266976, 0.00755119, 
0.17025375,\n       0.2285108 , 0.06255573, 0.06197608, 0.1856674 , 
0.26505286,\n       0.18549734, 0.27583724, 0.03870684, 0.16486251, 
0.17411846,\n       0.09358519, 0.12554586, 0.01363301, 0.00828314, 
0.04343516,\n       0.261779  , 0.04072005, 0.00380832, 0.28958058, 
0.13663614,\n       0.22343624, 0.20055461, 0.08957297, 0.10135204, 
0.11293399,\n       0.05493516, 0.11353195, 0.22038537, 0.19169307, 
0.18670362,\n       0.24050438, 0.2955721 , 0.02828538, 0.05727512, 
0.05640584,\n       0.04807675, 0.11259919, 0.22207952, 0.21197051, 
0.23034668,\n       0.11212981, 0.20312387, 0.13975441, 0.06139827, 
0.1847195 ],\n      dtype=float32), array([0.25210875, 0.2836941 , 
0.05267   , 0.00755119, 0.1702537 ,\n       0.2285108 , 0.06255567, 
0.06197619, 0.18566746, 0.2650531 ,\n       0.18549758, 0.27583724, 
0.0387069 , 0.16486257, 0.17411858,\n       0.09358513, 0.12554574, 
0.01363301, 0.00828314, 0.04343522,\n       0.2617789 , 0.04072011, 
0.00380838, 0.289581  , 0.13663602,\n       0.2234363 , 0.20055455, 
0.08957303, 0.1013521 , 0.11293387,\n       0.05493534, 0.11353183, 
0.22038537, 0.19169301, 0.18670374,\n       0.2405042 , 0.2955721 , 
0.02828538, 0.05727518, 0.05640566,\n       0.04807675, 0.11259902, 
0.22207993, 0.21197039, 0.23034662,\n       0.11212993, 0.20312387, 
0.13975453, 0.06139803, 0.18471962],\n      dtype=float32))
E        +    where <function allclose at 0xf3ad35c8> = numpy.allclose
E        +    and   array([0.25210875, 0.2836941 , 0.05267   , 
0.00755119, 0.1702537 ,\n       0.2285108 , 0.06255567, 0.06197619, 
0.18566746, 0.2650531 ,\n       0.18549758, 0.27583724, 0.0387069 , 
0.16486257, 0.17411858,\n       0.09358513, 0.12554574, 0.01363301, 
0.00828314, 0.04343522,\n       0.2617789 , 0.04072011, 0.00380838, 
0.289581  , 0.13663602,\n       0.2234363 , 0.20055455, 0.08957303, 
0.1013521 , 0.11293387,\n       0.05493534, 0.11353183, 0.22038537, 
0.19169301, 0.18670374,\n       0.2405042 , 0.2955721 , 0.02828538, 
0.05727518, 0.05640566,\n       0.04807675, 0.11259902, 0.22207993, 
0.21197039, 0.23034662,\n       0.11212993, 0.20312387, 0.13975453, 
0.06139803, 0.18471962],\n      dtype=float32) = <built-in function 
asarray>(gpuarray.array([0.25210875, 0.2836941 , 0.05267   , 0.00755119, 
0.1702537 ,\n       0.2285108 , 0.06255567, 0.06197619, 0.18566746, 
0.2650531 ,\n       0.18549758, 0.27583724, 0.0387069 , 0.16486257, 
0.17411858,\n       0.09358513, 0.12554574, 0.01363301, 0.00828314, 
0.04343522,\n       0.2617789 , 0.04072011, 0.00380838, 0.289581  , 
0.13663602,\n       0.2234363 , 0.20055455, 0.08957303, 0.1013521 , 
0.11293387,\n       0.05493534, 0.11353183, 0.22038537, 0.19169301, 
0.18670374,\n       0.2405042 , 0.2955721 , 0.02828538, 0.05727518, 
0.05640566,\n       0.04807675, 0.11259902, 0.22207993, 0.21197039, 
0.23034662,\n       0.11212993, 0.20312387, 0.13975453, 0.06139803, 
0.18471962],\n      dtype=float32))
E        +      where <built-in function asarray> = numpy.asarray

/usr/lib/python3/dist-packages/pygpu/tests/test_elemwise.py:259: 
AssertionError
=============================== warnings summary 
===============================
test_gpu_ndarray.py::test_bool
test_gpu_ndarray.py::test_bool
   /usr/lib/python3/dist-packages/pygpu/tests/test_gpu_ndarray.py:52: 
DeprecationWarning: The truth value of an empty array is ambiguous. 
Returning False, but in future this will result in an error. Use 
`array.size > 0` to check that an array is not empty.
     assert (bool(pygpu.asarray(data, context=ctx)) ==

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info 
============================
FAILED test_elemwise.py::test_ielemwise2_ops_mixed - assert False
FAILED test_elemwise.py::test_divmod - assert False
======= 2 failed, 70 passed, 11 skipped, 2 warnings in 471.71s (0:07:51) 
=======
autopkgtest [09:35:26]: test upstreamtests

-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <http://alioth-lists.debian.net/pipermail/debian-science-maintainers/attachments/20230216/6c56353d/attachment.sig>


More information about the debian-science-maintainers mailing list