特性#
FlagTree 包含以下主要特性:
多后端支持 FlagTree 支持广泛的硬件平台,并已在不同硬件配置下进行了大量测试。更多信息请参见支持的硬件平台。
三级编译器语言 FlagTree 针对不同用户提供了三级编译器语言:
TLE-Lite:
设计理念:一次编写,到处运行。
核心理念:通过引入高层语义提示而非强制性约束,引导编译器进行启发式优化。它强调向后兼容性,使开发者能够以最小的代码侵入性实现跨平台性能提升,而不会破坏原有的 Triton 编程范式。
TLE-Struct:
设计理念:架构感知,精细调优。
核心理念:基于硬件拓扑特征,将后端划分为 GPGPU 和 DSA 等集群,暴露通用的分层并行和存储结构。它允许开发者显式定义计算与数据之间的结构化映射关系(如 Warp Group 控制、流水线编排),在抽象层面将算法逻辑与特定硬件的物理实现解耦。
TLE-Raw:
设计理念:原生传递,极致掌控。
核心理念:打破 DSL 的抽象边界,支持内联厂商原生代码。它能够通过厂商的私有编译管线直接生成目标指令,绕过通用编译器的中间转换开销,为专家级用户提供对指令调度、寄存器分配和底层同步原语的绝对控制。
TLE-CPU:TLE-CPU 将 TLE 在
@triton.jit之上分层硬件优化的理念扩展到 CPU,在 Arm64、RISC-V 和 x86 指令集上提供统一的 Triton 编程模型,用于端侧推理。正确性通过纯 Triton + LLVM 在各指令集间共享,而各指令集的高性能实现则单独贡献,并通过 FlagGems 厂商调度进行路由。Arm64 是首个完全实现的后端,具有 6 个 TLE 扩展操作,覆盖解码热点(GEMV、归一化、激活、注意力),具备自管理的 OMP 线程并行和调优能力,可显著提升解码性能。FLIR: FlagTree Linalg 中间表示,是一个多后端统一的中间层,作为将 TTIR Ext Triton 扩展中间表示(例如 Hints、Ops 和 TLE) lowering 到硬件特定方言的中心枢纽。
Hints: 最顶层的编译器语言,专为初学者设计,提供轻量级的性能优化,无需改变程序语义或底层硬件行为。Hints 与原生 Triton 代码完全向后兼容。