用clang编译CUDA
问题描述:
我是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中。
答
2016-05-01更新:clang现在支持CUDA。请参阅@rivanvx'的答案。
CUDA编译器基于LLVM。 Clang虽然也基于LLVM,但不支持CUDA。
答
感谢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运行。
但是,我应该如何解析.cu文件?没有其他工具? –
@RogerDahl,你可能希望用支持CUDA的3.8版本的CLANG更新你的文章。 –