源码结构解析


triton学习:源码结构解析

研读使用代码版本:Triton v3.5.1

源码结构目录

核心目录如下:

  • utils:存放项目配置文件
  • unittest:存放单元测试代码
  • third_party:存放第三方库的代码
  • test:存放测试代码
  • python:存放Python接口代码
  • lib:存放功能实现的核心代码
  • include:存放功能定义的核心代码

includelib目录

两个目录中的子目录结构类似,都包含以下文件夹:

  • Analysis:用于进行相关分析
  • Conversion:负责不同dialect之间的转换
  • Dialect:各级中间表示(IR)的定义及优化pass,包含GluonTritonTriton-GPUTritonInstrumentTritonNvidiaGPU
  • Target:将LLVM-dialect降级到LLVM-IR,并链接外部数学库
  • Tools:包含一些辅助工具的头文件,用于分析和调试生成的代码

Analysis目录

  • Alias.cpp:用于内存别名分析
  • Allocation.cpp:用于共享内存分配相关的分析
  • AxisInfo.cpp:实现轴分析相关的内容
  • Membar.cpp:与线程同步内存屏障相关
  • Utility.cpp:一些相关组件

Conversion目录

  • TritonToTritonGPU:负责将 Triton-dialect 降级到 Triton-GPU-dialect
  • TritonGPUToLLVM:负责将 Triton-GPU-dialect 降级到 LLVM-dialect

Dialect目录

triton 目录为例,每一级中间表示目录下都包含以下两个文件夹:

  • IR:包含 dialect、算子、属性以及类型的定义
  • Transforms:存放相应的中间表示上的优化 pass

transforms 作用于各级中间表示 dialect 之上,而 conversion 作用于各级中间表示 dialect 之间。

Target目录

用于将 LLVM-dialect 降级到 LLVM-IR,并为其添加元数据以及链接外部数学库。

Tools目录

包含了一些辅助工具的头文件,帮助开发者更好地分析、调试和优化生成的代码。

以上目录结构解析参考自 Triton 源码目录结构


文章作者: leven
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 leven !
评论
  目录