Thanks to visit codestin.com
Credit goes to github.com

Skip to content

error: no instance of overloaded function "cv::cudev::blockReduce" matches the argument list #3728

@jiapei100

Description

@jiapei100
System information (version)
  • OpenCV => ❔ 5.X
  • Operating System / Platform => ❔ Ubuntu 24.04 LTS
  • Compiler => ❔ gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0
Detailed description
Steps to reproduce

Just trying to build OpenCV-5.x with OpenCV_contrib-5.x, and I got the following ERROR messages:

....../opencv_contrib/modules/cudev/include/opencv2/cudev/grid/detail/reduce.hpp(385): error: no instance of overloaded function "cv::cudev::blockReduce" matches the argument list
            argument types are: (cuda::std::__4::tuple<volatile int *, volatile int *>, cuda::std::__4::tuple<int &, int &>, int, cuda::std::__4::tuple<cv::cudev::minimum<int>, cv::cudev::maximum<int>>)
              blockReduce<BLOCK_SIZE, volatile double *, double, cv::cudev::minimum<double>, cv::cudev::maximum<double>>(smem_tuple(sminval, smaxval), tie(mymin, mymax), tid, make_tuple(minOp, maxOp));
              ^
....../opencv_contrib/modules/cudev/include/opencv2/cudev/block/reduce.hpp(72): note #3327-D: candidate function template "cv::cudev::blockReduce<N,P0,P1,P2,P3,P4,P5,P6,P7,P8,P9,R0,R1,R2,R3,R4,R5,R6,R7,R8,R9,Op0,Op1,Op2,Op3,Op4,Op5,Op6,Op7,Op8,Op9>(const thrust::THRUST_200302_800_860_NS::tuple<P0, P1, P2, P3, P4, P5, P6, P7, P8, P9> &, const thrust::THRUST_200302_800_860_NS::tuple<R0, R1, R2, R3, R4, R5, R6, R7, R8, R9> &, uint, const thrust::THRUST_200302_800_860_NS::tuple<Op0, Op1, Op2, Op3, Op4, Op5, Op6, Op7, Op8, Op9> &)" failed deduction
  __attribute__((device)) __inline__ __attribute__((always_inline)) void blockReduce(const tuple<P0, P1, P2, P3, P4, P5, P6, P7, P8, P9>& smem,
                                                                         ^
....../opencv_contrib/modules/cudev/include/opencv2/cudev/block/reduce.hpp(63): note #3323-D: substituting explicit template arguments "<<expression>, volatile double *, double, cv::cudev::minimum<double>, cv::cudev::maximum<double>>" for function template "cv::cudev::blockReduce<N,T,Op>(volatile T *, T &, uint, const Op &)" failed
  __attribute__((device)) __inline__ __attribute__((always_inline)) void blockReduce(volatile T* smem, T& val, uint tid, const Op& op)
Issue submission checklist
  • I report the issue, it's not a question
  • I checked the problem with documentation, FAQ, open issues,
    forum.opencv.org, Stack Overflow, etc and have not found any solution
  • I updated to the latest OpenCV version and the issue is still there
  • There is reproducer code and related data files: videos, images, onnx, etc

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions