根据CUDA编程指南第122页,只要使用计算架构2.x,就可以在设备/全局函数内动态分配内存。
但我的问题是,当我尝试这样做时,会得到以下命令行消息: “some command” -gencode=arch=compute_10,code=\"sm_10,compute_10\" -gencode=arch=compute_20,code=\"sm_20,compute_20\"等...
然后,会出现一个错误,说不能从设备/全局函数中调用主机函数(malloc)。
以上消息显示它正在尝试在计算1.x下进行编译。我正在使用VS2010,并在“CUDA C/C++”属性页面中将“代码生成”设置为“compute_20,sm_20”,因此我不确定为什么它仍然尝试在计算1.x下进行编译。我肯定是在使用支持2.x的显卡。有什么想法吗?
但我的问题是,当我尝试这样做时,会得到以下命令行消息: “some command” -gencode=arch=compute_10,code=\"sm_10,compute_10\" -gencode=arch=compute_20,code=\"sm_20,compute_20\"等...
然后,会出现一个错误,说不能从设备/全局函数中调用主机函数(malloc)。
以上消息显示它正在尝试在计算1.x下进行编译。我正在使用VS2010,并在“CUDA C/C++”属性页面中将“代码生成”设置为“compute_20,sm_20”,因此我不确定为什么它仍然尝试在计算1.x下进行编译。我肯定是在使用支持2.x的显卡。有什么想法吗?