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¶
不支持。