CUB-related test failures
See original GitHub issue-
Conditions CuPy Version : 7.0.0rc1 CUDA Root : /usr/local/cuda CUDA Build Version : 10010 CUDA Driver Version : 10010 CUDA Runtime Version : 10010 cuDNN Build Version : 7402 cuDNN Version : 7402 NCCL Build Version : None NCCL Runtime Version : None
-
Code to reproduce run pytest with / without CUB enabled
-
Error messages, stack traces, or logs
The following test cases give me an error when running pytest with CUB_DISABALED=0, but pass with CUB_DISABLED=1. I haven’t looked into specific cases, but based on the test names I would guess it is a combination of a few possible things:
1.) reduction in the presence of NaN values 2.) reduction of zero-sized arrays 3.) errors in some axis-specific reduction cases
- tests/cupy_tests/core_tests/test_ndarray_reduction.py:39 TestArrayReduction.test_max_nan
- tests/cupy_tests/core_tests/test_ndarray_reduction.py:51 TestArrayReduction.test_max_nan_imag
- tests/cupy_tests/core_tests/test_ndarray_reduction.py:45 TestArrayReduction.test_max_nan_real
- tests/cupy_tests/core_tests/test_ndarray_reduction.py:87 TestArrayReduction.test_min_nan
- tests/cupy_tests/core_tests/test_ndarray_reduction.py:99 TestArrayReduction.test_min_nan_imag
- tests/cupy_tests/core_tests/test_ndarray_reduction.py:93 TestArrayReduction.test_min_nan_real
- tests/cupy_tests/linalg_tests/test_einsum.py:279 TestEinSumUnaryOperation_param_20.test_einsum_unary
- tests/cupy_tests/linalg_tests/test_einsum.py:297 TestEinSumUnaryOperation_param_20.test_einsum_unary_dtype
- tests/cupy_tests/linalg_tests/test_einsum.py:279 TestEinSumUnaryOperation_param_49.test_einsum_unary
- tests/cupy_tests/linalg_tests/test_einsum.py:297 TestEinSumUnaryOperation_param_49.test_einsum_unary_dtype
- tests/cupy_tests/linalg_tests/test_einsum.py:279 TestEinSumUnaryOperation_param_136.test_einsum_unary
- tests/cupy_tests/linalg_tests/test_einsum.py:297 TestEinSumUnaryOperation_param_136.test_einsum_unary_dtype
- tests/cupy_tests/linalg_tests/test_einsum.py:289 TestEinSumUnaryOperation_param_136.test_einsum_unary_views
- tests/cupy_tests/linalg_tests/test_norms.py:18 TestTrace.test_external_trace
- tests/cupy_tests/linalg_tests/test_norms.py:12 TestTrace.test_trace
- tests/cupy_tests/padding_tests/test_pad.py:21 TestPadDefault_param_9.test_pad_default
- tests/cupy_tests/padding_tests/test_pad.py:21 TestPadDefault_param_10.test_pad_default
- tests/cupy_tests/padding_tests/test_pad.py:21 TestPadDefault_param_11.test_pad_default
- tests/cupy_tests/padding_tests/test_pad.py:21 TestPadDefault_param_12.test_pad_default
- tests/cupy_tests/padding_tests/test_pad.py:21 TestPadDefault_param_13.test_pad_default
- tests/cupy_tests/padding_tests/test_pad.py:21 TestPadDefault_param_14.test_pad_default
- tests/cupy_tests/padding_tests/test_pad.py:133 TestPad_param_9.test_pad
- tests/cupy_tests/padding_tests/test_pad.py:133 TestPad_param_10.test_pad
- tests/cupy_tests/padding_tests/test_pad.py:133 TestPad_param_11.test_pad
- tests/cupy_tests/padding_tests/test_pad.py:133 TestPad_param_12.test_pad
- tests/cupy_tests/padding_tests/test_pad.py:133 TestPad_param_13.test_pad
- tests/cupy_tests/padding_tests/test_pad.py:133 TestPad_param_14.test_pad
- tests/cupy_tests/padding_tests/test_pad.py:133 TestPad_param_15.test_pad
- tests/cupy_tests/padding_tests/test_pad.py:133 TestPad_param_16.test_pad
- tests/cupy_tests/sorting_tests/test_search.py:23 TestSearch.test_argmax_nan
- tests/cupy_tests/sorting_tests/test_search.py:65 TestSearch.test_argmax_zero_size
- tests/cupy_tests/sorting_tests/test_search.py:89 TestSearch.test_argmin_nan
- tests/cupy_tests/sorting_tests/test_search.py:137 TestSearch.test_argmin_zero_size
- tests/cupy_tests/sorting_tests/test_search.py:327 TestNanArgMin.test_nanargmin_zero_size
- tests/cupy_tests/sorting_tests/test_search.py:417 TestNanArgMax.test_nanargmax_zero_size
cc @leofang and @anaruse as fellow CUB contributors here
ref: #2579 which should help avoid similar issues in the future
Issue Analytics
- State:
- Created 4 years ago
- Reactions:3
- Comments:13 (12 by maintainers)
Top GitHub Comments
Found a way to treat NaNs without touching CUB source code! For example, this works for fixing
Max()
:Will add and expand this to #2636 later today.
For record: Using
gcc-7
instead ofgcc
(v5.4.0) by specifying--compiler-bindir gcc-7
tonvcc
(export NVCC="nvcc --compiler-bindir gcc-7"
) solved the issue on Ubuntu 16.04.cc/ @anaruse