福生无量摸鱼天尊

Triton is all you need —— Triton 源码、编译和调试

(施工ing)

include日录主要存放了编译器核心功能的.h头文件,提供约定和规范

lib是.c和.cpp,主要是功能的实现,和include一一对应

Analysis文件夹用于相关分析

  • Alias.cpp用于内存别名分析

  • Allocation.cpp用于共享内存分配

  • AxisInfo.cpp用于轴分析相关内容

  • Membar.cpp与线程同步、内存屏障内容相关

  • Conversion目录主要负责dialect之间的转换

    • TritonGPUToLLVM文件夹用于Triton GPU dialect降级到llvm dialect

    • TritonToTritonGPU文件夹用于Triton dialect降级到Triton GPU dialect

  • Dialect目录下是各级中间表示Dialect的定义,以及在对应Dialect上进行的优化pass

    • 以Triton文件夹为例,包含IR和transforms

      • IR文件夹包含dialect、算子、属性以及类型的一些定义

      • Transforms文件爽存放相应中间表示上的优化pass

    • 需要注意的是这里是dialect上,之前的conversion是dialect之间

  • Tanget目录是将Ilvm dialect降级到llvm ir,并且链接外部数学库

  • tools就是调试分析的工具

编译流程及其源码位置:

参考文献:

先进编译实验室——OpenAI triton分享:triton源码结构