Reputation: 1200
I am new to LLVM. I heard that clang supports CUDA. How do I compile CUDA using clang? Do I have to make some config changes or include any specific header files? I couldn't find any information on this on the web. Is it possible at all?
Right now when I try to compile a dummy cuda program with clang as
clang -I /usr/local/cuda/include filename.cu
I get the following error
unknown type name '__global__'
__global__ void nothing(int *A)
any help is appreciated! btw i am running it in a mac.
Upvotes: 5
Views: 10399
Reputation: 15734
2016-05-01 Update: clang now supports CUDA. See @rivanvx' answer.
The CUDA compiler is based on LLVM. Clang, though also based on LLVM, does not support CUDA.
Upvotes: 3
Reputation: 131
Thanks to contributions from Google and others, Clang now supports building CUDA. Command line parameters are slightly different from nvcc
, though. According to the official documentation, assuming your file is named axpy.cu
, the basic usage is:
$ clang++ axpy.cu -o axpy --cuda-gpu-arch=<GPU arch> \
-L<CUDA install path>/<lib64 or lib> \
-lcudart_static -ldl -lrt -pthread
Note that using Clang for compiling CUDA still requires that you have the proprietary CUDA runtime from the NVIDIA CUDA toolkit installed.
Upvotes: 12