文章预览
作者丨液态黑洞 来源丨https://zhuanlan.zhihu.com/p/695255185 编辑丨GiantPandaCV 在第一章我们已经完成了源码到make_ir的大致过程的分析,通过处理AST得到了初始的ttir。在这一章,我们会继续往下走,完成最后一步compile_ir。我们编译的后端nvptx又将这一步分为了五个小阶段:make_ttir、make_ttgir、make_llir、make_ptx和make_cubin,其中后两个阶段借助llvm和nv的ptxas完成,因此我们主要关注前面三个阶段。这些阶段由多个pass组合而成(这里默认读者知晓了编译器中"pass"的含义和作用), 根据pass的来源,我们可以发现它们大致可以分为下面几种 common,定义在mlir/include/mlir/Transforms/Passes.td ttir,定义在 triton/include/triton/Dialect/Triton/Transforms/Passes.td ttgpuir,定义在 triton/include/triton/Dialect/TritonGPU/Transforms/Passes.td ttnvgpuir,定义在 triton/include/triton/Dialect/TritonNvidiaGPU/Transforms/Passes.td 它
………………………………