用clang编译CUDA

时间:2012-08-23 20:43:48

标签: cuda clang llvm-clang

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

现在,当我尝试使用clang编译虚拟cuda程序

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

我收到以下错误

 unknown type name '__global__'

 __global__ void nothing(int *A)

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

2 个答案:

答案 0 :(得分:7)

感谢Google和其他人的贡献,Clang现在支持构建CUDA。但是,命令行参数与nvcc略有不同。根据{{​​3}},假设您的文件名为axpy.cu,基本用法是:

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

请注意,使用Clang编译CUDA仍然需要安装official documentation的专有CUDA运行时。

答案 1 :(得分:4)

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

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