专栏名称: GiantPandaCV
专注于机器学习、深度学习、计算机视觉、图像处理等多个方向技术分享。团队由一群热爱技术且热衷于分享的小伙伴组成。我们坚持原创,每天一到两篇原创技术分享。希望在传播知识、分享知识的同时能够启发你,大家一起共同进步(・ω<)☆
目录
相关文章推荐
今天看啥  ›  专栏  ›  GiantPandaCV

窥探Triton的lower(三)

GiantPandaCV  · 公众号  · 3D  · 2024-06-29 23:45
    

文章预览

作者丨液态黑洞 来源丨https://zhuanlan.zhihu.com/p/696133729 编辑丨GiantPandaCV 在上一章,我们完成了ttir->ttgir的过程分析,重点在于理解其中用到的数据结构和流程。有了上面的基础,我们理解接下来的内容会非常轻松。在这一阶段结束时我们的case还是包含arith::addi、tt.load、tt.store等节点,在这一阶段我们会看到它们的变化。所以让我们直接进入最后的make_llir阶段。 make_llir 根据注释,这一步其实又可以分为两小步,TritonGPU -> LLVM-IR (MLIR) 和 LLVM-IR (MLIR) -> LLVM-IR (LLVM)。这两步的区别在于,第一步是还是MLIR级别的,也就是在dialect空间的转换,转换的结果就是LLVMDialect,而第二步是将LLVMDialect转换为真正的LLVM IR。 @staticmethod def make_llir(src, metadata, options, capability): # warp-specialization mutates num_warps num_warp_groups = src.get_int_attr("triton_gpu.num-warp-groups-per-cta ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览