Hello World CUDA编译问题

时间:2014-05-29 23:03:39

标签: c++ c macos cuda nvcc

我正在使用CUDA by Example书籍并尝试编译本书中的第一个真实示例。我在OSX 10.9.2:

我的来源是:

@punk ~/Documents/Projects/CUDA$ /Developer/NVIDIA/CUDA-6.0/bin/nvcc hello.c
nvcc warning : The 'compute_10' and 'sm_10' architectures are deprecated, and may be removed in a future release.
hello.c:6:1: error: unknown type name '__global__'
__global__ void kernel(void) {
^
hello.c:6:12: error: expected identifier or '('
__global__ void kernel(void) {
           ^
hello.c:10:3: error: use of undeclared identifier 'kernel'
  kernel<<<1,1>>>();
  ^
hello.c:10:11: error: expected expression
  kernel<<<1,1>>>();
          ^
hello.c:10:17: error: expected expression
  kernel<<<1,1>>>();
                ^
hello.c:10:19: error: expected expression
  kernel<<<1,1>>>();
                  ^
6 errors generated.

我的来源很简单:

punk ~/Documents/Projects/CUDA$ cat hello.c

#include <cuda.h>
#include <stddef.h>
#include <stdio.h>
//#include "common/book.h"

__global__ void kernel(void) {
}

int main(void) {
  kernel<<<1,1>>>();

  printf("oh hai\n");
  return 0;
}

我还测试了/Developer/NVIDIA/CUDA-6.0/samples/1_Utilities/deviceQuery示例,并且构建并运行良好。

非常感谢任何帮助! TIA!

1 个答案:

答案 0 :(得分:7)

将您的文件重命名为hello.cu

nvcc by default直接向主机编译器发送.c.cpp文件,而不对其进行任何设备代码检查或编译。

有多种options可以改变这种行为。