2012-08-23 148 views
1

我是LLVM的新手。我听说铿锵支持CUDA。如何使用clang编译CUDA?我必须进行一些配置更改或包含任何特定的头文件吗?我在网上找不到关于此的任何信息。它有可能吗?用clang编译CUDA

现在,当我尝试铿锵编译一个虚拟的CUDA程序作为

clang -I /usr/local/cuda/include filename.cu 

我收到以下错误

unknown type name '__global__' 

__global__ void nothing(int *A) 

任何帮助表示赞赏!顺便说一句,我正在运行它在Mac中。

回答

4

2016-05-01更新:clang现在支持CUDA。请参阅@rivanvx'的答案。

CUDA编译器基于LLVM。 Clang虽然也基于LLVM,但不支持CUDA。

+0

但是,我应该如何解析.cu文件?没有其他工具? –

+0

@RogerDahl,你可能希望用支持CUDA的3.8版本的CLANG更新你的文章。 –

6

感谢Google和其他人的贡献,Clang现在支持构建CUDA。不过,命令行参数与nvcc稍有不同。按照official documentation,假设你的文件被命名为axpy.cu,基本用法是:

$ clang++ axpy.cu -o axpy --cuda-gpu-arch=<GPU arch> \ 
    -L<CUDA install path>/<lib64 or lib>    \ 
    -lcudart_static -ldl -lrt -pthread 

注意,使用锵编译CUDA仍然需要你有从安装在NVIDIA CUDA toolkit专有的CUDA运行。