2012-11-06 66 views
1

我想將CUDA代碼轉換爲llvm bitcode,這樣我就可以測試它了。我試過gpuocelot,它將ptx編譯爲CPU可執行代碼。儘管如此,我無法從中獲取llvm位碼,所以我無法對其進行檢測。已經有一些活動試圖在llvm中獲得CUDA的支持。任何人都可以提供一個強大的解決方案,將CUDA轉換爲可行的llvm位碼嗎?謝謝。cuda to llvm bitcode conversion

+0

看來gpuocelot是使用LLVM實現的,所以在這裏的中間步驟應該將ptx解析爲LLVM IR。你試圖做些什麼來獲得它,它是如何失敗的? – Oak

+0

@Oak:gpuocelot從nvcc開始,輸出.out文件執行。我不知道如何獲得llvm儀器的bitcode .bc文件。任何建議? –

+0

由於gpucelot是開源的,您可以獲取它的源代碼,修改它以在LLVM IR解析之後轉儲它,然後在輸入上運行它。例如,每個LLVM元素都有一個'dump()'方法,用於將IR(以文本格式,但很容易轉換爲位代碼)轉儲爲標準輸出,我相信還有更多更精細的方法。 – Oak

回答

0

你應該能夠使用Clang的編譯CUDA(混合模式),以LLVM IR現在。檢查this page了。請注意,這種支持仍然是實驗性的。隨意向LLVM社區報告錯誤。