接的前辈的项目,他用的cuda 4.2编写的程序,我机子上装的是cuda 5.0 toolkit,我新建的5.0的项目,把他的头文件和源文件都拷贝到我的项目中,调试时报错,调试的log文件内容如下:
[attach]3201[/attach]
我是刚学cuda的菜鸟,谢谢各位大侠帮我找到问题,万分感激!
接的前辈的项目,他用的cuda 4.2编写的程序,我机子上装的是cuda 5.0 toolkit,我新建的5.0的项目,把他的头文件和源文件都拷贝到我的项目中,调试时报错,调试的log文件内容如下:
[attach]3201[/attach]
我是刚学cuda的菜鸟,谢谢各位大侠帮我找到问题,万分感激!
楼主您好,通过下载您提供的gpu.rar, 发现您的错误是:
C:/Users/Administrator/Documents/Visual Studio 2010/Projects/gpu/gpu/NLM_kernel.cu(333): error : identifier “atomicAdd” is undefined
您可以在您的项目上点击右键,选择属性,再选择CUDA C/C++ → Device,
然后将Code Generation改成:
compute_*,sm_*改成符合贵卡的值。
例如您如果用GTX650, 可以改成compute_30,sm_30
如果您用GTX460, 可以改成compute_20,sm_21
如果您用GT240, 可以改成compute_13,sm_13
请按实际修改。
因为默认的是compute_10,sm_10,
此时将不支持atomicAdd()的。
感谢来访。
您好,我想知道对应于不同的显卡,这个需要改的值在哪里可以查找到,谢谢!
楼主您好,您可以从 https://developer.nvidia.com/cuda-gpus 页面,
得到您对应的卡的计算能力(形式为x.y),
以及,这里我列出一个表,您可以将计算能力和compute_*,sm_*对应起来:
计算能力, 设置:
1.0 compute_10,sm_10
1.1 compute_11,sm_11
1.2 compute_12,sm_12
1.3 compute_13,sm_13
2.0 compute_20,sm_20
2.1 compute_20,sm_21 (这里依然是compute_20,因为指令集是一样的,无新指令。请复制配置字符串的时候不要复制括号里的内容)
3.0 compute_30,sm_30
3.5 compute_35,sm_35
您的卡的型号可以从第一段的网址中找到计算能力,
找到计算能力后,可以用上表得到code generation配置字符串。
感谢您的来访,欢迎下次光临。
LZ您好:
您可以运行CUDA Samples里面的device Query程序,并在CUDA Capability Major/Minor version number这一行看到您的显卡的计算能力版本,并以此做出选择。
祝您好运~
————————————————————————————
选择的具体方式请参考楼上横扫斑竹给出的详细表格!
版主您好,我又遇到了一个问题,我的一格源文件中已经包含了math.h
为什么还会报这样的错:
1>cudaNLM.cpp(187): error C3861: “_set_SSE2_enable”: 找不到标识符
1>cudaNLM.cpp(198): warning C4244: “初始化”: 从“float”转换到“int”,可能丢失数据
1>cudaNLM.cpp(199): warning C4244: “初始化”: 从“float”转换到“int”,可能丢失数据
1>cudaNLM.cpp(219): warning C4244: “=”: 从“float”转换到“uchar”,可能丢失数据
1>cudaNLM.cpp(267): error C3861: “_set_SSE2_enable”: 找不到标识符
1>cudaNLM.cpp(279): warning C4244: “初始化”: 从“float”转换到“int”,可能丢失数据
1>cudaNLM.cpp(280): warning C4244: “初始化”: 从“float”转换到“int”,可能丢失数据
1>cudaNLM.cpp(307): warning C4244: “=”: 从“float”转换到“uchar”,可能丢失数据
1> 命令已退出,代码为 2。
1>已完成执行任务“CL”的操作 - 失败。
error c3861,给您添麻烦了,菜鸟伤不起。。
楼主您好,您的函数_set_SSE2_enable()之类的可能来自您的师兄,而不是来自cuda。
_set_SSE2_enable()不是CUDA的一部分,
将无法为您的非CUDA问题提供技术支持。
您可以立刻向您的师兄咨询此函数如何使用。谢谢。
好的,谢谢千军版主