FlagOS 2.2 新特性#
FlagOS 2.2 升级了覆盖模型训练、推理、算子优化和部署的多芯片软件栈。它强化了框架与后端集成,扩展了编译器和算子能力,并新增面向 ARM CPU 推理、模型量化、内核开发和大模型交付的工具链。
亮点#
框架集成: 更新 vLLM-Plugin-FL 和 SGLang-Plugin-FL,并通过 Torch-FL 首次提供面向 PyTorch 的 FlagOS 集成。
训练栈: 面向模型训练和生命周期管理,更新 Megatron-LM-FL、TransformerEngine-FL 和 FlagScale。
算子与编译器工具: 扩展算子覆盖范围,新增 SGLang 专用算子,改进编译器与自动调优能力,并增加更多路由选项。
ARM CPU 推理: 首次发布 FlagTree-CPU,作为面向低比特 ARM64 工作负载的独立编译组件。
模型转换: 首次发布 FlagOS-Compressor,用于权重转换以及 W4A16、W8A16 和动态 W8A8 工作流。
内核开发: 首次发布 FlagPrism,用于跨后端 Triton 调试与性能分析。
模型交付: 通过 FlagRelease 提供更多 Day 0 模型适配、部署配置和模型镜像。
运行时与框架集成#
vLLM-Plugin-FL#
vLLM-Plugin-FL 为 FlagOS 多芯片后端新增以下能力:
面向 vLLM 0.20.2 和 0.24.0 的兼容性分支。
扩展后的 Empty 部署模式,将框架构建与设备特定实现解耦。
INT8 和 W8A8 执行路径。
面向部分非 NVIDIA 后端的图执行支持。
键值(KV)缓存传输监控。
这些特性旨在让插件提供设备集成、算子和通信实现,而无需每个模型应用修改其标准 vLLM 接口。
SGLang-Plugin-FL#
SGLang-Plugin-FL 扩展了 SGLang 运行时在海光、天数智芯 CoreX、BANG、昆仑芯和燧原后端上的集成。
本次更新还新增或改进了:
Empty 部署路径。
流水线并行通信。
独立的 prefill 与 decode KV 传输路径。
多 token 预测(MTP)集成。
与新的 FlagGems-SGLang 算子库集成。
Torch-FL#
Torch-FL 作为 FlagOS 的 PyTorch 适配路径引入。它提供名为 FlagOS 的统一虚拟设备,并将算子路由到 FlagOS、厂商实现或兼容的回退路径。
初始版本重点包括:
多芯片 PyTorch 执行。
混合精度与分布式执行路径。
编译器集成。
新增面向海光、摩尔线程、BANG 和燧原环境的后端支持。
与 FlagGems 及厂商算子实现集成。
Torch-FL 还支持通过标准 Diffusers 接口运行 Qwen-Image-2.1,同时将文本编码、去噪和图像解码迁移到 CPU 执行。
训练栈与 FlagScale#
训练侧更新包括:
Megatron-LM-FL 更新至 MCore 0.18.2。
TransformerEngine-FL 更新至 Transformer Engine 2.17。
面向 GLM5 DSA、融合 RoPE、分块交叉熵以及后端特定执行路径的适配工作。
FlagScale 改进了慢节点检测、训练性能监控、进度心跳和权重转换。
这些更新提升了多芯片训练任务的可观测性和可移植性。
算子与编译#
算子库更新#
FlagOS 2.2 扩展了通用、融合和领域专用算子库的覆盖范围。本版本包含面向 attention、Mamba 状态更新、混合专家(MoE)工作负载、LoRA、采样、量化、MLA、KDA/GLA/GDN2、TopK 和低精度计算的算子与执行路径。
本版本还引入面向 SGLang 的算子库 FlagGems-SGLang,并为 FlagGems-vLLM 更新更多 vLLM 算子入口。算子总数采用组件特定的范围和统计方法,因此在没有匹配的版本、后端矩阵和统计方法时,本页不发布单一汇总总数。
编译器与自动调优改进#
编译器和运行时变更聚焦于数据移动、内核启动开销、同步以及依赖形状的执行。本版本包括:
可选的 NVIDIA TileIR 编译路径。
基于 TLE 的布局、共享内存和异步流水线控制。
用于执行配置搜索的 FlagTune。
算子融合和混合精度路径。
感知形状的路由,用于为给定输入选择执行路径。
FlagTree 中新增的编译器与后端集成工作。
使用 FlagTree-CPU 进行 ARM CPU 推理#
FlagTree-CPU v0.1.0 作为面向 CPU 目标的独立编译组件引入。本版本基于 triton-cpu 3.7.2,并新增以下 ARM64 编译路径:
SME2。
SVE2。
NEON I8MM。
该组件为 W4A8 和 W8A8 工作负载生成低比特算子指令。在 FlagOS 部署路径中,FlagTree-CPU 与 FlagGems ARM 算子和 vLLM-Plugin-FL 配合,以支持 ARM CPU 推理。
推理栈新增权重预打包、算子融合、已编译内核复用、prefill 矩阵乘法、decode 阶段权重访问和单流调度。
量化与模型压缩#
FlagOS-Compressor#
FlagOS-Compressor 作为跨后端权重转换与量化工具引入。它读取 Hugging Face safetensors 检查点,并提供用于选择模块、转换权重、导出部署产物以及验证输出张量和配置的工作流。
本版本描述了以下量化方案:
W4A16: INT4 权重与 16 位激活。
W8A16: INT8 权重与 16 位激活。
动态 W8A8: INT8 权重与按 token 动态计算的 INT8 激活。
量化范围可按模块选择,包括 attention、MLP、MoE experts、shared experts、vision encoders、embeddings、normalization 和 routing gates。导出的产物包括量化权重、scale 参数、分片索引、运行时配置和完整性检查。导出的权重格式为 compressed-tensors。
大模型部署#
FlagOS 2.2 通过 INT8 和 W8A8 量化路径、部署产物以及面向 BANG、昇腾、海光、NVIDIA 和 PPU 环境的配置,新增大模型部署支持。
使用 FlagPrism 进行 Triton 调试与性能分析#
FlagPrism 作为与 FlagTree 集成的跨后端 Triton 调试器和性能分析器引入。它将 Triton 源代码、编译器 IR 操作和设备执行事件连接到一个观测工作流中。
Debugger 可以采集:
@triton.jit内核所选区域中的中间值。数值摘要。
内存地址。
完整张量数据。
与所采集值关联的源码级和 IR 级位置。
Profiler 可以采集或推导:
调用上下文和执行时间线。
操作计数。
估算的内存流量。
可用时的硬件指标和厂商 profiler 数据。
聚合的调用树和时间线报告。
FlagPrism 使用包含 121 个 Triton 算子的统一测试集,并面向 NVIDIA、昇腾、天数智芯 CoreX、摩尔线程和燧原后端。由于采集由后端特定适配器实现,不同后端之间的调试器和性能分析器能力可能存在差异。
内核生成与评测#
FlagOS 2.2 延续了用于生成和验证算子实现的 KernelGen 工作流。在所述季度周期内,KernelGen 生成 1,509 个算子,其中 1,231 个通过精度验证。FlagGems 发布对比还包含 436 个带有 KernelGen 标签的 pull request;这些是不同统计口径,不应相加。
KernelGenBench v0.2.0 新增多芯片 baseline、芯片识别、token 使用分析和防作弊检查。该版本还新增 50 个矩阵乘形状、两种精度,共 100 个基准用例。
Day 0 模型与部署资源#
FlagOS 2.2 新增七个 Day 0 模型适配;在发布清单中,单个模型最多覆盖 12 个平台或设备。
FlagRelease 通过公开发布渠道提供 300 多个模型镜像。由于平台覆盖范围因模型而异,使用前应在相关渠道检查可用镜像、模型卡和部署配置。