用clang编译CUDA

ash*_*ash 1 cuda clang llvm-clang

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

现在当我尝试用clang编译一个虚拟cuda程序时

clang -I /usr/local/cuda/include filename.cu 
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

 unknown type name '__global__'

 __global__ void nothing(int *A)
Run Code Online (Sandbox Code Playgroud)

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

小智 8

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

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

请注意,使用Clang编译CUDA仍然需要安装NVIDIA CUDA工具包的专有CUDA运行时.


Rog*_*ahl 3

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

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

  • @RogerDahl,您可能需要使用 3.8 版本的 CLANG 来更新您的帖子,该版本可以很好地支持 CUDA。 (3认同)