Triton-Ascend FAQ

1. 安装与环境配置

Q: 如何正确安装 Triton-Ascend?是否支持 pip 直接安装?

A: 可以直接使用pip 安装

pip install triton-ascend

Q: 社区 Triton 和 Triton-Ascend 能否同时存在?

A: triton-ascend 3.2.0 及以下不可以。需要先卸载社区 Triton,再安装 Triton-Ascend。
triton-ascend 3.2.1 及以上,Triton-Ascend 通过将 Triton 声明为安装依赖来缓解安装覆盖问题。 安装 Triton-Ascend 时会先安装社区 Triton,再由 Triton-Ascend 覆盖同名目录,从而避免后续安装其他依赖 Triton 的软件包时再次安装 Triton 而覆盖 Triton-Ascend。 x86 与 arm 使用不同版本的社区 Triton 安装包的原因是社区从 3.5 版本开始才提供 arm 版本安装包:x86 依赖 triton==3.2.0,arm 依赖 triton==3.5.0。

  • 注:若安装triton-ascend后,在安装依赖triton的三方件或者triton本身,将覆盖掉已安装的 Triton-Ascend 目录。 此时需要先卸载社区 Triton 和 Triton-Ascend,再安装 Triton-Ascend。
pip uninstall triton
pip uninstall triton-ascend
pip install triton-ascend

Q: 能否在非 Ascend 硬件(如 CUDA AMD)上使用 Triton-Ascend?

A: 不可以,只能在 Ascend NPU 硬件环境使用 Triton-Ascend

2. 精度与数值一致性问题

Q: NPU 运行结果和 PyTorch/CPU/GPU 参考结果不一致,如何排查?

A: 用例请参考 07_accuracy_comparison_example.md 调试方法请参考 解释器模式调试方法

3. 错误代码与异常处理

Q: 为什么 kernel 编译时报 MLIRCompilationError?如何定位具体失败的 Pass?

A: 请参考 编译错误调试方法

4. 调试与日志

Q: 如何开启详细日志输出?TRITON_DEBUG=1 输出在哪?

A: 可以使用 TRITON_DEBUG=1 获取详细的调试转储文件,请参考 调试转储文件(Dump Files)

Q: 能否在 kernel 中打印中间张量值?tl.device_print 是否可用?

A: 可以使用 tl.device_print 打印 kernel 中的张量,请参考 打印调试方法

5. 开发与贡献

Q: 如何本地构建并测试 Triton-Ascend?

A: 本地构建和测试方法,请参考 通过源码安装Triton-Ascend

Q: 提交 PR 需要通过哪些 CI 检查?

A: PR 的 CI 检查包括:编码安全与规范检查、开源片段检查、恶意代码检查、编译构建、开发者测试

6. 性能调优

Q: 有没有性能分析工具(profiler)可以使用?

A: 有集成性能分析工具(profiler),请参考 算子性能调优方法