[問題] 利用clang前端傳遞參數給後端opt Pass

看板CompilerDev作者 (unimaybe)時間2年前 (2022/04/12 15:06), 編輯推噓1(102)
留言3則, 2人參與, 2年前最新討論串1/2 (看更多)
各位好 最近在寫 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

04/14 18:12, 2年前 , 1F
記得cmake設個compiler就能用clang編cuda了
04/14 18:12, 1F

04/21 16:53, 2年前 , 2F
你不會偷瞄最Flat的最終執行的指令行,直接拷貝,每
04/21 16:53, 2F

04/21 16:53, 2年前 , 3F
次都畫葫蘆編譯就好,都不學,比較利根。
04/21 16:53, 3F
文章代碼(AID): #1YLIJvs0 (CompilerDev)
文章代碼(AID): #1YLIJvs0 (CompilerDev)