You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调试Triton Python及Triton-JIT编译器Passes?含编译调试配置诉求

构建带调试符号的Triton Python并调试的实操步骤

一、构建带调试符号的Triton Python(指定输出目录)

1. 克隆Triton仓库

git clone --recursive https://github.com/openai/triton.git
cd triton

2. 配置CMake构建参数

创建build目录并执行CMake配置,确保开启调试符号、指定输出目录,同时让依赖的LLVM也带调试符号:

mkdir build && cd build
cmake .. \
  -DCMAKE_BUILD_TYPE=Debug \
  -DCMAKE_INSTALL_PREFIX=/your/target/output/directory \
  -DTRITON_BUILD_LLVM_FROM_SOURCE=ON \
  -DLLVM_BUILD_TYPE=Debug \
  -DPython_EXECUTABLE=$(which python)

参数说明:

  • CMAKE_BUILD_TYPE=Debug:为Triton所有CPP代码生成完整调试符号
  • CMAKE_INSTALL_PREFIX:指定最终安装输出的目录
  • TRITON_BUILD_LLVM_FROM_SOURCE=ON:强制Triton从源码构建LLVM(而非使用系统预编译版本)
  • LLVM_BUILD_TYPE=Debug:为构建的LLVM生成调试符号
  • Python_EXECUTABLE:指定关联的Python解释器路径

3. 编译并安装

# 多核编译加快速度
make -j$(nproc)
# 安装到指定目录
make install

安装完成后,指定目录下的Triton Python包即可用于调试。

二、调试Python脚本及底层CPP代码

1. 调试Python脚本

直接使用Python自带的pdb调试器,在脚本开头添加:

import pdb; pdb.set_trace()

运行脚本后即可进入Python调试环境,执行单步、查看变量等操作。

2. 用GDB调试被调用的CPP函数/对象

方式1:用GDB启动Python脚本

gdb --args python /path/to/your/triton_script.py

进入GDB后,设置CPP函数断点(以Triton的IR指令构造函数为例):

# 设置断点
b triton::ir::Instruction::Instruction
# 启动脚本
run

当Python代码触发该CPP函数调用时,GDB会自动暂停,此时可使用bt查看调用栈、print查看变量、n单步执行等GDB命令调试。

方式2:附加到运行中的Python进程

如果脚本已经在运行,先获取进程ID:

ps aux | grep python

然后用GDB附加到进程:

gdb -p <your_python_pid>

附加成功后同样可以设置断点调试底层CPP代码。

关键注意事项

  • 若断点无法命中,需确认符号文件路径是否正确,可手动指定:
symbol-file /your/target/output/directory/lib/libtriton.so
  • 调试LLVM底层函数时,直接设置LLVM函数名断点即可(如b llvm::Instruction::Instruction),因为LLVM已带调试符号构建。

内容的提问来源于stack exchange,提问作者Shore

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:21:13