随笔分类 -  CUDA

CUDA调试 数组传进kernel
摘要:之前采用的是:在Doc.cpp里,定义,并调用函数得到Gauskernel数组float Gauskernel[(2*f+1)*(2*f+1)]={0.0};make_Gauskernel(f,Gauskernel,2*f+1,2*f+1);然后NlmDenoise(pGpuData,pResult,PicWidth,PicHeight,Gauskernel);//此函数在host.cu里定义然后host.cu里调用kernel.cu。调试了超过2天,各种怀疑,最后终于认定是这个错误。不能这么传值。先cudaMalloc((void **)&kernel, sizeof(float)* 阅读全文

posted @ 2011-08-11 19:35 kyleada 阅读(1277) 评论(0) 推荐(0)

CUDA在Debug下编译有错而Release下无错
摘要:错误提示:1>LIBCMT.lib(invarg.obj) : error LNK2005: __invoke_watson already defined in msvcrtd.lib(MSVCR90D.dll)1>LIBCMT.lib(tidtable.obj) : error LNK2005: __encode_pointer already defined in msvcrtd.lib(MSVCR90D.dll)1>LIBCMT.lib(tidtable.obj) : error LNK2005: __decode_pointer already defined in 阅读全文

posted @ 2011-08-11 18:04 kyleada 阅读(1706) 评论(1) 推荐(0)

原创]基于CUDA的图像亮度直方图统计 转载
摘要:http://blog.21ic.com/user1/5184/archives/2009/61678.html算法:1、先计算原始图像每个像素的亮度:u = (unsigned char)(0.299f * r + 0.587f * g + 0.114f * b)。2、用一个256大小的数组统计每个亮度的点的数量。C++实现方法:memset(out, 0, sizeof(out));unsigned long offset;unsigned long p;unsigned char r, g, b, u;offset = 0;for(y = 0; y < h; y ++) for(x 阅读全文

posted @ 2011-08-09 16:04 kyleada 阅读(931) 评论(0) 推荐(0)

CUDA调试
摘要:各种错误,偏又没有像CPP那样文件编译时完整准确的错误提示。出错后一般是采取怀疑哪一部分可能出错,就将该部分注释掉,然后看编译是否成功。我在kernel函数里使用了new(现在知道是不能在这里申请内存的)曾经出现一个提示就是:Kernel函数里不能使用new.后来又有一个提示 Error: External calls are not supported 网上查询完全对不上,试着把new那段注释,就通过了。 阅读全文

posted @ 2011-08-09 09:28 kyleada 阅读(1232) 评论(0) 推荐(0)

CUDA学习1:配置记录
摘要:周五中午NV显卡送到,安装了驱动和师兄给的toolkit3.2和sdk,发现src里的光线追踪可以编译运行。但是网上下载的一个cuda示例编译不成功,认为配置不正确。晚上去Ada家,周日早上回来,继续配置。因为目的是用CUDA加速图像去噪,所以选择是在单文档程序里编制cu文件和MFC混合。配置是按照VS2008和CUDA配置 一篇文档进行的,但没有严格执行,只是配置到了tool,它的举例是对话框的,没有认真看。从csdn上下载了一篇文档和一个cudaMFC示例,是基于单文档的,VS2005下,按照它的方法,完整一步不落的配置,编译后各种连接错误。应该记录下当时的配置过程,现在记不清了,总之,周 阅读全文

posted @ 2011-07-25 22:28 kyleada 阅读(339) 评论(0) 推荐(0)

导航