2012-08-23 180 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運行。