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),请参考 算子性能调优方法