VS CUDA OpenCV编程 遇到gpu端核函数 应输入表达式的报错解决办法

这篇具有很好参考价值的文章主要介绍了VS CUDA OpenCV编程 遇到gpu端核函数 应输入表达式的报错解决办法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

最近在做开发时,用到了cuda和opencv结合的使用方法。其中,cuda能够提供的公式就那么多,所以打算自己写一个核函数来实现自己想要实现的算法。结果遇到了<<<>>>核函数调用的时候报错,提示应输入表达式。
经过在网上查找,大家的解决办法基本上都说在cu文件中出现没事,可以通过。但是我这个就没法通过,经过最后的排查,找到了解决办法。


一、报错

报错例如如下代码“swap_image_kernel<<<grid, block>>>(src, dst, h, w);”就会报错为应输入表达式,因为编译器把这个当作C++的符号了。

extern "C" void swap_image(cuda::GpuMat src, cuda::GpuMat dst, int h, int w)
{
	assert(src.cols == w && src.rows == h);
	int uint = 32;
	//参考前面两文的block和grid的计算方法,注意不要超过GPU限制
	dim3 block(uint, uint);
	dim3 grid((w + block.x - 1) / block.x, (h + block.y - 1) / block.y);
	printf("grid = %4d %4d %4d\n", grid.x, grid.y, grid.z);
	printf("block= %4d %4d %4d\n", block.x, block.y, block.z);
	swap_image_kernel<<<grid, block>>>(src, dst, h, w);
	//同步一下,因为计算量可能很大
	CHECK_ERROR(cudaDeviceSynchronize());
}

二、解决办法

1.操作

1.工程上右键-生成自定义-生成依赖项
2.勾选第一个CUDA的
应输入表达式怎么解决,OpenCV相关,实用技巧,opencv,人工智能,计算机视觉
3.在你的.cu文件上右键-属性
4.在项类型里,勾选CUDA C/C++
应输入表达式怎么解决,OpenCV相关,实用技巧,opencv,人工智能,计算机视觉
5.接下来编译,就可以通过了。

2.外部调用

调用的时候,在另外一个cpp文件中,不需要写任何头文件,直接通过如下代码引入即可

extern "C" int swap_image(cv::cuda::GpuMat src, cv::cuda::GpuMat dst, int h, int w);

总结

通过以上方法则可以解决应输入表达式的报错。文章来源地址https://www.toymoban.com/news/detail-718132.html

到了这里,关于VS CUDA OpenCV编程 遇到gpu端核函数 应输入表达式的报错解决办法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CUDA编程之GPU图像数据结构的设计

    参考OpenCV中Mat和GpuMat的设计,对当前Image类设计了GPU版本,即GPUImage。 设计图像头。 其中指针指向的是GPU上的地址。引用计数用来实现浅拷贝以及显存的自动释放管理。不像OpenCV和Nppi,分通道和深度的做法。GPUImage的nChannel可以理解为通道*深度。 GPUImage用来管理CudaMalloc申请的

    2024年02月11日
    浏览(37)
  • openCV的CUDA GPU 版本安装 (Ubuntu windows 通用)

    需要做template match, 比较注重时间,因此opencv 的普通版本不适用。需要用GPU 的。 4090的GPU 测试: 使用普通的python-opencv template match 耗时0.089秒。 GPU 版本:0.0065秒 快了13.69倍 Oh YEAH, case sealed 1: visual studio (不是vs code)

    2024年01月22日
    浏览(45)
  • OpenCV_CUDA_VS编译安装

    我这里是下载的OpenCV4.5.4,但是不知道到在vs里面build时一直报错,后面换了4.7.0的版本测试,安装成功。 Release OpenCV 4.5.4 · opencv/opencv · GitHub 这个里面有官方预编译好的OpenCV库,可以直接食用。 扩展包: https://github.com/opencv/opencv_contrib/releases/tag/4.5.4 这里cmake版本要求应该不是

    2024年02月09日
    浏览(47)
  • GPU编程 CUDA C++ 线性代数求解器 cuSolver库

    cuSolver库较cuBLAS库更为高级,其能处理矩阵求逆,矩阵对角化,矩阵分解,特征值计算等问题。cuSolver库的实现是基于cuBLAS库和cuSPARSE库这两个基本库。cuSolver库的功能类似于Fortran中的LAPACK库:是Linear Algebra PACKage的简称。 以下以一个厄米矩阵的本征值(特征值)问题,代码示

    2024年02月05日
    浏览(50)
  • 【opencv】【GPU】windows10下opencv4.8.0-cuda C++版本源码编译教程

    提示:博主取舍了很多大佬的博文并亲测有效,分享笔记邀大家共同学习讨论 OpenCV是一个开源的计算机视觉库,包含了核心模块和扩展模块,提供了基础的图像处理和计算机视觉算法,以及一些机器学习工具。而OpenCV Contrib是OpenCV社区贡献的一组扩展模块之一,包含了一些较为

    2024年02月08日
    浏览(82)
  • vs配置opencv和libtorch(cuda12.0)

    网上很多教程刚开始都让切release模式,博主最初因为没找到哪里切换,所以用的默认的debug模式。他们配置方法一样,其区别在于 Debug:调试版本,包含调试信息,所以容量比Release大很多,并且不进行任何优化(优化会使调试复杂化,因为源代码和生成的指令间关系会更复杂

    2024年04月17日
    浏览(30)
  • Python OpenCV配置CUDA以支持GPU加速 (不使用Visual Studio)

    Welcome to My Blog 文章唯一地址:https://blog.csdn.net/REAL_liudebai/article/details/119356958 问题:   1)Python通过pip或conda安装的OpenCV库仅支持CPU;   2)网上找到的教程基本都是通过VS配置CUDA环境( VS太强大了,但并不想安装 ); 解决办法:   3)可以使用官方预构建源代码配置支

    2024年01月22日
    浏览(60)
  • cmake 编译opencv4.5.5/opencv4.6.0/opencv4.7.0 gpu版以及vs2022配置opencv-gpu

    cmake 编译opencv4.5.5/opencv4.6.0/opencv4.7.0 gpu版本编译方法相同,本文以opencv4.5.5为例 一定确保已经成功安装了cuda工具包,以及VS编译器,清单如下 cuda工具包 visual studio 编译器 cmake构建工具 opencv源码 opencv-contrib源码 1.1 cmake构建工具下载 https://cmake.org/download/ 1.2 opencv源码下载 官网

    2023年04月25日
    浏览(52)
  • 一文彻底搞懂为什么OpenCV用GPU/cuda跑得比用CPU慢?

    最近项目需要,发现了这个问题。网上找原因,汇总起来,有以下几点原因: 1、首先对于任何一个CUDA程序,在调用它的第一个CUDA API时后都要花费秒级的时间去初始化运行环境,后续还要分配显存,传输数据,启动内核,每一样都有延迟。这样如果你一个任务CPU运算都仅要

    2024年02月03日
    浏览(63)
  • Win10 + VS2022 + OpenCV 4.7 + contrib + cuda加速 编译

    https://download.csdn.net/download/Kasper_2009/88252429 https://download.csdn.net/download/Kasper_2009/88252429 在cmd命令中打nvidia-smi看支持的cuda最高版本 cuda版本选择也不能过于早,作者之前用过cuda11.2,在后续vs编译环节发现其最高只支持vs2019,不支持vs2022。目前作者使用cuda11.8。 下载安装cuda:CU

    2024年02月17日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包