编译OpenCV+CUDA时报错no instance of overloaded function “cv::cudev::blockReduce”
编译CUDA支持的OpenCV时可能会出现编译错误:
Error: no instance of overloaded function “cv::cudev::blockReduce” matches the argument list
报错信息翻译成人话:CUDA中不存在OpenCV想调用的那个实例。也就是说,当前版本OpenCV和CUDA不匹配。
例如,我尝试编译OpenCV4.8.0+CUDA12.6,便会产生上述报错。
解决办法:降低CUDA版本,或使用更高版本的OpenCV。在我的例子里,使用CUDA版本11.6即可。
省流:OpenCV和CUDA版本对应关系
OpenCV4.8、4.9均支持CUDA<=12.3编译。如果同时启用了cuDNN,务必使用cuDNN<=8.9.7版本。使用了错误的cuDNN版本,可能会报错:
‘cudnnSetRNNDescriptor_v6’: identifier not found
自OpenCV4.10起支持CUDA>=12.6编译。
报错的根本原因
GitHub issue: CUDA Toolkit 12.4.0 tuple incompatibility
编译好的带CUDA支持的OpenCV-Python
访问github仓库下载,提供了多版本OpenCV的.whl文件。

1986

被折叠的 条评论
为什么被折叠?



