12. 环境变量

12.1. MLIR_ENABLE_DUMP

MLIR_ENABLE_DUMP=1 会在每次编译时,dump MLIR IR。在MLIR_ENABLE_DUMP=1不起作用的情况下,尝试清理Triton缓存:rm -r ~/.triton/cache/*

建议配合TRITON_ALWAYS_COMPILE使用。

12.2. TRITON_ALWAYS_COMPILE

TRITON_ALWAYS_COMPILE=1 强制每次运行Triton都会重新编译Triton kernel,忽略kernel cache。

12.3. TRITON_DISABLE_LINE_INFO

使能llvm 的debug info。

12.4. TRITON_INTERPRET

TRITON_INTERPRET=1 使用Triton解释器在cpu端模拟设备端的kernel执行。可以通过在kernel内插入python断点来调试。

12.5. TRITON_PRINT_AUTOTUNING

TRITON_PRINT_AUTOTUNING=1 autotuning结束后,打印输出最佳配置,和每个kernel的运行时间。

12.6. TRITON_KERNEL_DUMP

在TritonGCU侧,TRITON_KERNEL_DUMP=1可以dump每个编译阶段结束后的IR(ttir, ttgir, gcuir, fatbin)以及fatbin。默认dump在了.triton/cache 目录下。

12.7. TRITON_KERNEL_OVERRIDE

在TritonGCU侧,TRITON_KERNEL_OVERRIDE=1可以在每个编译阶段开始前替换成用户自己指定的IR。

12.8. TRITON_REPRODUCER_PATH

目前只会对make_ttir和make_ttgir两个阶段前生成一个TRITON_REPRODUCER_PATH=“file”指定的MLIR reproducer file。如果任何阶段失败,“file” 会生成为一个本地MLIR reproducer所捕获的失败pass之前的正确IR。

12.9. LLVM_IR_ENABLE_DUMP

因为Triton后端实现方式差异,暂不支持。

12.10. TRITON_ENABLE_LLVM_DEBUG

TRITON_ENABLE_LLVM_DEBUG=1 使能LLVM的debug输入到标准输出。如果log过多,可以尝试使用TRITON_LLVM_DEBUG_ONLY来进一步限制输出的内容。

另一个可供使用的方法是通过设置LLVM_IR_ENABLE_DUMP=1,抽取需要的LLVM pass之前的IR,然后通过LLVM的opt单独运行,或者通过命令行类似-debug-only=foo方式来运行。

因为Triton后端实现方式差异,暂时不支持GCU pipeline后的debug打印。

12.11. TRITON_LLVM_DEBUG_ONLY

TRITON_LLVM_DEBUG_ONLY=<comma-separated> 等同于LLVM命令行选项-debug-only. 这将LLVM调试输出限制为特定的pass或组件(在LLVM和Triton代码中使用#define DEBUG_TYPE指定),以便减少不需要的log的产生。 TRITON_LLVM_DEBUG_ONLY允许指定一个或多个逗号分隔的值 (例如TRITON_LLVM_DEBUG_ONLY=“tritongpu-remove-layout-conversions” 或 TRITON_LLVM_DEBUG_ONLY=“tritongpu-remove-layout-conversions,regalloc”)。

因为Triton后端实现方式差异,暂时不支持gcu pipeline后的debug打印。

12.12. DISABLE_LLVM_OPT

因为Triton后端实现方式差异,暂不支持。

12.13. LLVM_ENABLE_TIMING

因为Triton后端实现方式差异,暂不支持。

12.14. TRITON_F32_DEFAULT

不支持。