谷歌推LiteRT Tensor API:同一份C++图跑CPU、GPU、NPU
谷歌发布轻量级 C++ 接口 LiteRT Tensor API,支持开发者直接为端侧构建、定制和优化机器学习模型。
谷歌发布了 LiteRT Tensor API。这是一套轻量级 C++ 接口,面向端侧场景,开发者可用它搭建、定制并优化机器学习模型。按谷歌的说法,它把原生模型开发的灵活性和跨平台可移植性放到了一起。
谷歌提到,过去开发者为了拿到最大控制权,往往用 C++ 手写计算逻辑,问题也很明显。
代码会跟 Metal、OpenCL、Vulkan 这类具体后端绑死,每多一个硬件目标就得重写一遍。另外,想让 CPU、GPU、NPU 之间的缓冲区零拷贝互通并保持同步,再把预处理、推理、后处理串成一条链,人工工作量相当大。
LiteRT Tensor API 就是冲着这些麻烦来的。开发者能用 C++ 一个算子一个算子地搭计算图,对模型架构、优化方式和加速器执行有更强的掌控;同一张图还能经 LiteRT 跑在 CPU、GPU、NPU 上,不必为每个新目标重新写代码。
除了对模型图做到完全控制,这套 API 还有几项关键能力。其一是直接导入权重,开发者可以从检查点直接加载,包括 Hugging Face 的文件。.safetensors其二是零拷贝缓冲区互操作,预处理、推理、后处理之间不用再复制加速器缓冲区。其三是能跟 AI 编码智能体配合,智能体通过生成 C++ 代码来搭建、修改、验证模型图并做基准测试。
谷歌用一个编码智能体做了演示应用,展示如何借助 LiteRT Tensor API 完成多对象分割与跟踪。这个应用同时被当作跨平台性能基准测试的基础。
同一份 SAM 2 模型的 C++ 代码,谷歌在三台设备上跑过:一台 macOS 笔记本电脑(Metal)、一部 iOS 手机(Metal)、一部 Android 手机(OpenCL)。测试中,它在 MacBook Pro 上比 Apple MLX(fp16,图像编码器加掩码解码器)快约 1.5 倍。
谷歌强调,模型图既然是用纯 C++ 定义的,编码智能体就能做不少优化。它“将 SAM 2 的逐帧决策(例如对象是否仍然可见)从 CPU 代码移入计算图中”,还把在 WebGPU 上触发 CPU 回退的操作重写为兼容 GPU 的算术运算。
Arm AI 总监 Laurence Moroney 在 LinkedIn 上评论这一公告时强调,开发者应始终从模型转换开始,只有在“需要图级控制或希望预处理和后处理保留在加速器上”时才考虑这个 C++ API。他还强调了用纯 C++ 定义模型图的好处:
编码智能体独立完成了这一轮迭代优化。在 WebGPU 环境下,512×512 分辨率时的帧率原本不到 10fps,现已超过 30fps。这一结果说明,智能体确实能借助结构化原语取得实际的性能提升。
后续改进也已排上日程:原生支持 ML Drift 后端、更多对 NPU 友好的操作、自动全图量化,以及针对不同图像尺寸、批大小和序列长度的扩展动态形状支持。