2012-02-02 3 views
3

저는 CUDA 커널을 llvm IR로 컴파일하는 데 3 일 동안 노력했지만 그럴 수는 없었습니다. langoptions.cpp을 변경했고 CUDA=1;을 생성자에서 추가했지만 여전히 clang이 cuda 구문 (예 : _synchthreads() 호출)에 대한 오류 메시지를 표시합니다. I 완료 한 다음CUDA를 llvm IR에 컴파일하는 방법은 무엇입니까?

  1. 다운로드 수정 langoptions.cpp (CUDA = 1; 생성자) (그 소리 포함) LLVM, 그리고 그것을 설치.
  2. 설치된 CUDA 툴킷 4.1 및 CUDA SDK.

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

을 내가 말한대로 작동하지 않습니다 :

  • 사용하여 연타를 사용하여 CUDA 예제를 컴파일.

    답변

    3

    clang –x=CUDA 공용 LLVM 트렁크는 NVIDIA 외부에서 실험적으로 수행 된 것으로, llvm-dev 별칭에 문의하십시오.

    NVCC는 LLVM IR 방출을 지원하지 않습니다.

    +0

    안녕하세요, 트렁크 llvm에는 현재 nvptx 대상이 있습니다 (저스틴 홀윈 스키 (Justin Holewinski)의 http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-April/049215.html)로 추정됩니다. 이제 clang과 함께 CUDA를 구축 할 수 있습니까? 또는 clang 프론트 엔드에서 아직 수행해야 할 작업이 있습니까? – lurscher

    관련 문제