025、TOSA(Tensor Operator Set Architecture)标准介绍

📅 2026/6/18 14:29:31
025、TOSA(Tensor Operator Set Architecture)标准介绍
TOSA(Tensor Operator Set Architecture)标准介绍上周帮团队排查一个跨框架模型部署的bug,现象很诡异:同一个ONNX模型,用ONNX Runtime跑推理结果正确,转成TFLite后在某个嵌入式设备上输出全乱码。折腾了两天,最后定位到是量化后的卷积算子在不同后端的行为不一致——有的后端把bias加在量化前,有的加在量化后,有的干脆把bias类型当int32处理,有的当float32。这种“一个算子,各自表述”的混乱,正是TOSA想要终结的。为什么需要TOSAMLIR生态里,你可能会遇到Linalg、StableHLO、MHLO、TOSA这些方言。它们都在做同一件事:把上层框架(PyTorch、TensorFlow、JAX)的算子表示,降级到硬件后端能理解的形式。但问题在于,每个方言都有自己的“脾气”。Linalg擅长表达线性代数操作,但对量化、形状推断的支持比较弱。StableHLO是HLO的稳定版本,主要服务JAX和TensorFlow,但它的语义偏向XLA编译器,对嵌入式场景的量化约束不够细。MHLO是StableHLO的前身,现在基本被取代了。TOSA的定位很明确:它是为跨框架、跨硬件的算子集标准化而生的。ARM、Google、Qualcomm、Intel这些公司一起搞的,目标就是让一个模型在CPU、GPU、NPU、DSP上跑出相同的结果。注意,是“相同的结果”,不是“差不多的结果”。TOSA的核心设