Nvidia dev 202609 (#15) feat(nvidia): add NVIDIA profiler and debugger support Fix NVIDIA backend integration and adapter guards Format adapter backend guards Fix NVIDIA vendor metric associations
Nvidia dev 202609 (#15)
feat(nvidia): add NVIDIA profiler and debugger support
Fix NVIDIA backend integration and adapter guards
Format adapter backend guards
Fix NVIDIA vendor metric associations
English | 简体中文
FlagPrism 是面向 Triton 程序的多后端调试与性能分析工具,旨在为 NVIDIA GPU 及多种 AI 加速设备提供一致的观测工作流。作为 FlagTree 生态的一部分,FlagPrism 能够在编译期和运行期观测 Triton kernel,将源码上下文、Triton IR 操作与设备 事件关联起来,并将采集的数据转化为报告,帮助开发者分析程序正确性、内存行为 以及不同加速器后端上的性能表现。
FlagPrism 包含两个面向用户的组件:
@triton.jit
下表展示 FlagPrism 的后端支持路线图,描述的是 Debugger 和 Profiler 的集成 状态,而不是相应 FlagTree 编译器后端的可用状态。我们正在快速推进 FlagPrism 对更多设备和加速器后端的支持。
FlagTree 是面向 AI 加速器的统一多后端 编译器,使 Triton 程序能够在不同类型的 AI 加速设备上运行。FlagPrism 为 FlagTree 提供配套的观测工具,帮助开发者调试 kernel 正确性、分析运行行为、 定位性能瓶颈并优化 Triton workload。FlagPrism 以 third_party/FlagPrism submodule 的形式集成并维护在 FlagTree 中。
third_party/FlagPrism
FlagPrism 以在异构加速设备上提供统一观测体验为核心设计思想,将开发者希望 观测的内容与各后端采集信息的具体方式相分离,使 Debugger 和 Profiler 能够在 不同设备上提供一致的概念和工作流。整体设计强调对用户程序低侵入、调试与性能 分析能力复用、结果清晰可预期,以及对新加速器后端的渐进式支持。
Debugger 对 Triton kernel 中的指定区域进行观测,并将静态源码和 IR 元数据与 运行时数值及内存信息结合起来,帮助开发者通过语句级报告、operation 级报告和 张量数据文件检查数值结果、内存访问与 kernel 数据流。详细信息请参阅 Debugger README。
Profiler 将程序上下文、kernel 事件、插桩数据和厂商性能指标结合起来,用于分析 Triton workload 在设备上的执行情况,并将采集结果关联、聚合为调用树、时间线和 可移植的性能报告。详细信息请参阅 Profiler README。
FlagPrism 与 FlagTree 统一开发和编译。首先下载 FlagTree、拉取 FlagPrism submodule,然后在 FlagTree 仓库根目录编译完整项目:
git clone https://github.com/flagos-ai/FlagTree.git cd FlagTree git submodule update --init --recursive third_party/FlagPrism python3 -m pip install . --no-build-isolation
FlagPrism/ ├── Debugger/ # 编译器 pass、运行时、解码器和 Python API ├── Profiler/ # Profiler dialect、运行时、适配器和 Python API ├── cmake/FlagPrism.cmake # 统一 CMake 集成策略 ├── python/flagprism_build.py # FlagTree wheel 与 Python package 集成 └── docs/ # 架构和后端适配文档
FlagPrism 使用与 FlagTree 一致的 MIT License。
python3 test.py
Debugger 和 Profiler 共用同一批自带的 121 个 Triton 算子、输入和 CPU 正确性参考,不依赖 FlagGems,默认要求至少 100 个合并别名及原地/out 变体后的算子族。详见 测试说明。
燧原后端的联合构建、采集方式与限制见 Enflame 后端说明。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
FlagPrism
English | 简体中文
FlagPrism 是面向 Triton 程序的多后端调试与性能分析工具,旨在为 NVIDIA GPU 及多种 AI 加速设备提供一致的观测工作流。作为 FlagTree 生态的一部分,FlagPrism 能够在编译期和运行期观测 Triton kernel,将源码上下文、Triton IR 操作与设备 事件关联起来,并将采集的数据转化为报告,帮助开发者分析程序正确性、内存行为 以及不同加速器后端上的性能表现。
FlagPrism 包含两个面向用户的组件:
@triton.jitkernel 指定区域内的 数值、数值摘要、访存地址摘要、完整张量数据,以及语句和 operation 元数据。 配置方式、采集等级、报告格式、示例和当前限制请参阅 Debugger README。后端支持
下表展示 FlagPrism 的后端支持路线图,描述的是 Debugger 和 Profiler 的集成 状态,而不是相应 FlagTree 编译器后端的可用状态。我们正在快速推进 FlagPrism 对更多设备和加速器后端的支持。
目标:2026 年 9 月
目标:2026 年 10 月
目标:2026 年 9 月
与 FlagTree 的关系
FlagTree 是面向 AI 加速器的统一多后端 编译器,使 Triton 程序能够在不同类型的 AI 加速设备上运行。FlagPrism 为 FlagTree 提供配套的观测工具,帮助开发者调试 kernel 正确性、分析运行行为、 定位性能瓶颈并优化 Triton workload。FlagPrism 以
third_party/FlagPrismsubmodule 的形式集成并维护在 FlagTree 中。架构设计
总体设计
FlagPrism 以在异构加速设备上提供统一观测体验为核心设计思想,将开发者希望 观测的内容与各后端采集信息的具体方式相分离,使 Debugger 和 Profiler 能够在 不同设备上提供一致的概念和工作流。整体设计强调对用户程序低侵入、调试与性能 分析能力复用、结果清晰可预期,以及对新加速器后端的渐进式支持。
Debugger
Debugger 对 Triton kernel 中的指定区域进行观测,并将静态源码和 IR 元数据与 运行时数值及内存信息结合起来,帮助开发者通过语句级报告、operation 级报告和 张量数据文件检查数值结果、内存访问与 kernel 数据流。详细信息请参阅 Debugger README。
Profiler
Profiler 将程序上下文、kernel 事件、插桩数据和厂商性能指标结合起来,用于分析 Triton workload 在设备上的执行情况,并将采集结果关联、聚合为调用树、时间线和 可移植的性能报告。详细信息请参阅 Profiler README。
与 FlagTree 联合开发
FlagPrism 与 FlagTree 统一开发和编译。首先下载 FlagTree、拉取 FlagPrism submodule,然后在 FlagTree 仓库根目录编译完整项目:
仓库结构
许可证
FlagPrism 使用与 FlagTree 一致的 MIT License。
统一测试
Debugger 和 Profiler 共用同一批自带的 121 个 Triton 算子、输入和 CPU 正确性参考,不依赖 FlagGems,默认要求至少 100 个合并别名及原地/out 变体后的算子族。详见 测试说明。
燧原后端的联合构建、采集方式与限制见 Enflame 后端说明。