作者sunneo (艾斯寇德)
站内Programming
标题[闲聊] 聊聊LLVM吧o_O
时间Sun May 3 21:35:39 2015
自我大学毕业时(2009)LLVM已经算热门,
LLVM-IR的处理速度快,而且格式完整,还很好用,
IR层的使用者可以将成熟的编译器理论跟优化策略应用上去,
如果你有disasm跟codegen,也能利用LLVM的pass生成转换器。
目前在上面的应用有Renderscript/Filterscript、LLVMPipe(mesa/Gallium)…。
近几年NVIDIA也扩充LLVM弄了个nvvm
http://docs.nvidia.com/cuda/nvvm-ir-spec
不过自从jserv大大的这篇
http://www.slideshare.net/jserv/nes-llvm
我就很少看到国内讨论llvm,ptt上的文章还因为时间的关系都消失了。
目前我在学术研究上也看过一些应用,像是看上llvm codegen的效能,
把qemu的binary translation换成llvm-codegen,用jit结果导致效能下降的例子。
另一个是利用llvm当CPU multicore的backend,把multicore cpu当CUDA device
https://code.google.com/p/gpuocelot/ 用这作法的是ocelot
他是在__cudaRegisterFatBinary那个nvcc插入的undocumented function解出,
取出fatbin後用gz解压缩,得到ptx,再交给他的Module,ptx-parser。接着就是由
configuration决定转给哪个ExecutiveDevice,他可以给RemoteDevice、ATI GPU、
NVIDIA GPU、Emulator(1 CPU)、LLVM(Multicore)。不过ocelot在2013就没继续了,
只支援到CUDA 5。
目前在llvm都玩什麽?在vm/ir这一块好像很少国内分享跟讨论?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 220.132.1.247
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Programming/M.1430660144.A.EEC.html
1F:推 KoenigseggG: FB 上有 Taiwanese Compiler Researc 218.161.96.194 05/03 22:25
2F:→ KoenigseggG: -hers and Engineers 社团,去那边问 218.161.96.194 05/03 22:25
3F:→ KoenigseggG: 看看? 218.161.96.194 05/03 22:25
4F:推 LPH66: OpenCL 未来的 IR 标准 SPIR 是从 LLVM IR 123.195.39.85 05/03 22:57
5F:→ LPH66: 为底改来的 123.195.39.85 05/03 22:57
6F:→ LPH66: 印象中好像是 LLVM 3.2 的 IR 的样子 123.195.39.85 05/03 22:57
7F:推 suhorng: 说到 VM 就想到徐慰中老师XD 36.225.42.55 05/03 23:08
8F:→ sunneo: SPIR强化了opencl,这下终於有个标准了= = 220.132.1.247 05/04 04:12
9F:→ sunneo: 瞧瞧那悲惨的FreeOCL以及libPVROCL 220.132.1.247 05/04 04:13
10F:→ sunneo: freeocl的validate认为结构前宣告为非法 220.132.1.247 05/04 04:14
12F:推 bobi1101: 有趣 1.160.93.82 04/23 11:49