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 多个模型镜像。由于平台覆盖范围因模型而异,使用前应在相关渠道检查可用镜像、模型卡和部署配置。