无法编译CUDA C源。提供简单版本

时间:2012-03-29 11:54:57

标签: c++ visual-studio-2010 cuda nvcc

这是问题...... 对于学校项目,我需要使用CUDA C编写并行应用程序。即使是最简单的示例也无法编译。我正在使用Windows7和MS visual studio。代码取自本书:CUDA。通用GPU计算简介。

#include<iostream>
#include<cuda.h>

using namespace std;

__global__ void kernel(void){
}

int main(){
kernel<<<1, 1>>>();
cout << "Hello world" << endl;
return 0;
}

以下是错误:

1>c:\users\administrator\documents\visualstudio2010\projects\test\test\test.cpp(6): error C2144: syntax error : 'void' should be preceded by ';'
1>c:\users\administrator\documents\visualstudio2010\projects\test\test\test.cpp(6): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\users\administrator\documents\visualstudio2010\projects\test\test\test.cpp(10): error C2059: syntax error : '<'

我是否需要将nvcc.exe设置为默认编译器而不是cl.exe?如果是这样的话,该怎么做? 非常感谢任何帮助!

1 个答案:

答案 0 :(得分:3)

CUDA代码需要写在.cu文件中,并使用 NVCC 编译器进行编译。您看到上述错误,因为您已将代码写入.c.cpp文件,并尝试使用C ++编译器(Visual C ++编译器)进行编译。

您选择了正确的书来学习CUDA。但是,您没有按照本书中给出的所有步骤操作。请查看书中汇编的详细信息: - )