您好,
我们在 S100 平台上评估单目深度估计方案,遇到一个核心障碍想请教:
1. 背景
当前业界 SOTA 的深度估计模型(Depth Anything 系列、Depth Pro 等)全部采用 ViT(Vision Transformer)作为 encoder 骨干,精度远超传统 CNN 方案(FastDepth、Lite-Mono)。同时目标检测领域(DETR 系)和 BEV 感知(BEVFormer 系)也在快速转向 Transformer 架构。
我们目前只能使用纯 CNN 模型,在精度上存在明显差距,难以满足产品指标。
2. 具体瓶颈
S100 BPU 目前不支持以下 Transformer 核心算子:
| 算子 |
PyTorch 对应 |
用途 |
| Multi-Head Self-Attention |
F.scaled_dot_product_attention |
Transformer 基础模块 |
| Layer Normalization |
nn.LayerNorm |
Transformer 标配 |
| GELU 激活 |
nn.GELU |
ViT 常用激活函数 |
| Patch Embedding |
nn.Conv2d(stride=patch_size) |
图像转 token,纯卷积但参数大 |
| Position Embedding |
nn.Parameter |
位置编码 |
导出 ONNX 后经 hb_mapper 检查,这些算子全部 fallback 到 CPU,无法利用 BPU 加速,实测推理速度无法满足实时要求(目标 ≥ 30 FPS)。
3. 需求与影响
-
需求:BPU 支持上述 Transformer 算子(至少 Self-Attention + LayerNorm + GELU)
-
影响范围:不仅限于深度估计,还覆盖目标检测、BEV 感知、端到端自动驾驶等多个方向
-
量化支持:希望 QAT 插件同步支持这些算子的 INT8 量化
4. 优先级参考
建议优先支持 Self-Attention 和 LayerNorm,这两个是所有 ViT 变体的基础算子。GELU 和 Position Embedding 可以在模型侧做替换(GELU→ReLU、可学习位置编码→固定正弦编码)来规避。
5. 想确认
-
地平线是否有 Transformer 算子支持的路线图?预计哪个 SDK 版本能支持?
-
短期内有无 workaround 方案(比如 CPU/BPU 混合调度、自定义插件等)?
-
如果有内部 Beta 版本,我们愿意配合测试验证。
期待您的回复,谢谢。
Marcelo
(Marcelo615)
2
1.无算子支持路线图
2.方案可以参考手册进行算子替换等优化,自定义算子也只能CPU运行
3.S100内部最新版本与外部保持一致
若有具体项目上的需求合作 可以 https://horizonrobotics.feishu.cn/share/base/form/shrcnpxBa3PjdjFmtxZS3tBXw0e 尝试对接
jfkkf123
(jfkkf123)
3
我之前看bpu的介绍材料,不是说nash支持transformer吗,实际上s100不支持transformer相关算子?
Marcelo
(Marcelo615)
4
jfkkf123
(jfkkf123)
5
能否在你们的model_zoo里面增加一些detr系列算法呢
Marcelo
(Marcelo615)
6
可以提交issue,后续评估后排期进行开发
model zoo为社区开源共建项目,也可以pr提交自己的模型量化方案
yubing99
(yubing99)
7
我在S100和S600上把Depth anything量化了,现在大部分算子基本上都支持的,极个别需要你自己调整一下,用其他算子替换一下就好了。
目前我已经做了额外的开源算法支持 LAS2 , Qwen3.5 VLM 支持图文输入 已经公开转好好的权重还有转换方法思路
LLM:
Qwen3.5系列:
https://huggingface.co/ruisv/bllm-qwen3.5-0.8b
https://huggingface.co/ruisv/bllm-qwen3.5-2b
https://huggingface.co/ruisv/bllm-qwen3.5-4b
行百里者半九十
(行百里者半九十)
9
您好,我目前也在进行深度估计模型的量化,但是精度始终达不到预期,方便跟您了解一下您的精度范围以及推理单张图片的耗时大概在多少吗?非常感谢 
Marcelo
(Marcelo615)
10
yolo26 depth 这周会上 model zoo ,全int16的精度对比原始 fp32 在 90% +
1 个赞