2012-02-02 171 views
3

我一直在嘗試三天,將CUDA內核編譯爲llvm IR,我無法做到這一點。我已經在構造函數中更改了langoptions.cpp並添加了CUDA=1;,但clang仍然給出了cuda語法的錯誤消息(如_synchthreads()調用)。 我已經做了以下內容:如何編譯CUDA到llvm IR?

  1. 下載LLVM(包括鐺)改性langoptions.cpp(CUDA = 1;在構造 ),並安裝它。
  2. 安裝了CUDA工具包4.1和CUDA SDK。
  3. 使用鐺採用編了CUDA例如:

    clang -I${CUDA_HOME}/include -I${CUDA_SDK_INC} 
    ~/workspace/cuda_example/mis_kernel.cu -S -emit-llvm -o 
    ~/workspace/cuda_example/a.ll 
    

和我說這是行不通的。

回答

3

clang –x=CUDA在公衆LLVM主幹是在NVIDIA之外做的實驗;你應該聯繫問題的llvm-dev別名。

NVCC不支持發射LLVM IR。

+0

嗨harri,trunk llvm目前有nvptx目標(我推測是由Justin Holewinski發佈的; http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-April/049215.html)所以我推測現在有可能用clang構建CUDA?或者鐺前端還有工作需要完成? – lurscher 2012-05-10 21:58:53