看板 CompilerDev 關於我們 聯絡資訊
各位好 最近在寫 LLVM 的 Pass 主要是針對 Compile 成 IR 的 CUDA Code 做一些事情,我會把 distance 的參數傳進去 ,Pass 會利用這個參數做一些事情。以下是我下的 command opt -load buildDir/CUDAMemPass.so -cudamem -distance 4 main.bc -o main.i.bc 這樣下參數確實是可以傳進去的,但是因為把 CUDA 編譯成 IR 的 Makefile 實在很麻煩 ,要編成 ptx, fatbin,如果有好幾個 cuda file 就更複雜 ,所以在 Stackoveflow 看 到有人用 clang 前端傳參數進去,大概長這樣 clang++ um.cu -o um -Xclang -load -Xclang CUDAMemPass.so -Xclang -plugin-arg-distance -Xclang 4 --cuda-gpu-arch=sm_61 -L /usr/local/cuda/lib64/ 這樣確實是可以跑,不會有error,但是參數實際上卻沒有傳進去 (print 出來是0) 想請問大家我 clang 的 command 是否有下錯呢? 另外想請問有沒有什麼無腦用 clang 編譯 cuda 的方法,我現在都是 clang++ -v,再把 他手刻成 Makefile,但是就相當沒有效率。 希望沒有違反版規,有的話再麻煩提醒一下了,謝謝大家! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.112.25.99 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/CompilerDev/M.1649747193.A.D80.html
oToToT: 記得cmake設個compiler就能用clang編cuda了 04/14 18:12
sorcerer1973: 你不會偷瞄最Flat的最終執行的指令行,直接拷貝,每 04/21 16:53
sorcerer1973: 次都畫葫蘆編譯就好,都不學,比較利根。 04/21 16:53