当图像分辨率从224提升到896时,如何保持实时推理<200ms?
解读
面试官把“分辨率×16”这一显式算力膨胀因子抛出来,核心想看候选人能否在算法-系统-芯片三层同时做减法,把计算量、访存量、延迟三条曲线都压下去,而不是单点 trick。国内工业界落地场景(电商直播审核、工业视觉质检、城市安防)对200ms 硬实时有 KPI 考核,且普遍采用昇腾 310/910、寒武纪 MLU、英伟达 T4/A10 等国产或进口加速卡,答案必须贴合这些卡片的算力峰值、内存带宽、驱动特性。
知识点
- 计算量二次增长定律:FLOPs ∝ (H×W)²,896² 是 224² 的 16 倍,若网络不变,理论延迟≥16×基线。
- 访存墙:feature map 大小与分辨率成正比,带宽瓶颈>算力瓶颈是 896 输入下的首因。
- 国产芯片内存层级:昇腾 310 片上 L2 仅 8 MB,寒武纪 MLU 220 片上 SRAM 6 MB,feature tiling 必须≤片上容量才能避免 DDR 爆带宽。
- TensorRT/ATC 图融合规则:国内部署普遍用 TensorRT 8.6 或 昇腾 ATC 3.6,二者对 dynamic shape 支持度不同,需提前做 OPS 白名单校验。
- NCHWc16 与 NC1HWC0:国产卡常用 5维格式,若通道数不是 16 的倍数会引入 pad 浪费,需在网络头尾插入 reorder 节点并融合。
- 混合精度政策:国内监管要求人脸、车牌模型必须可解释,因此INT8 校准样本需覆盖全部敏感场景,否则无法通过网信办备案。
- 流水线并发:在鲲鹏 920 + 昇腾 310 的异构整机中,CPU 预处理、DVPP 解码、Device 推理、后处理四段流水线需用 msprof pipeline 工具把每段压到 <50 ms,才能叠加后仍 <200 ms。
答案
“我会用算法-系统-芯片协同的三板斧,把 16× 计算量压回 1× 以内,同时保证国产卡上线不出合规问题。”
-
算法层做空间-通道双重降冗余
a) 输入切分+early exit:把 896×896 原图按 448×448 无重叠切 4 块,batch=4 并行送推理;在网络 1/3 深度处加 SE-attention early exit,30% 简单样本提前输出,平均计算量降至 2.5×。
b) 轻量主干替换:将 ResNet50 换成 Ghost-RegNetY-600MF,ImageNet 精度保持 79.2%,FLOPs 仅 0.6G;再对 3×3 组卷积做 block-wise INT8 量化,精度掉 0.3% 以内,通过 PACT+KL 校准满足网信办备案要求。 -
系统层做访存-计算双流水线
a) feature tiling:针对昇腾 310 的 8 MB L2,把 56×56×256 的 feature 沿 h 维切成 2 份,每份 28×56×256,tile size 对齐 32 byte,避免 DDR 往返,带宽占用降 62%。
b) TensorRT 插件融合:自定义 Conv+BN+HSwish 插件,减少 kernel 启动 17 次,GPU 侧 latency 从 180 ms 降到 95 ms;在寒武纪 MLU 上用 CNML fusion 做等效替换,单卡延迟 98 ms。 -
芯片层做动态 shape+流水线并发
a) 动态 batch 策略:线上流量高峰时 batch=4,低峰 batch=1,ATC 模型仓库同时编译两档 om 文件,用 AscendIE dynamic executor 实时切换,冷启动 30 ms 以内。
b) DVPP 硬解码+RGB2BGR 硬件色域转换并行,每帧预处理 12 ms;后处理用 鲲鹏 NEON+openmp 做 nms 并行化,16 核下 8 ms 完成。
最终端到端指标:
平均延迟 178 ms,P99 195 ms,精度掉 0.3%,显存占用 1.8 GB,单卡 QPS 22,满足电商大促 200 ms 硬实时且通过公安部三所安全评估报告。
拓展思考
如果再把分辨率拉到 1536×1536,同时要求批处理 32 图/200ms,上述单卡方案必然失效。此时需要:
- 模型级联:用 YOLOv5-s 做 512×512 滑窗过滤,把 95% 背景区域砍掉,仅对候选区用 Swin-Tiny 做 1536 精修,整体计算量反而下降 3×。
- 多卡流水:在 Atlas 800 整机 8×310 上,把滑窗、精修、后处理三段做成环形流水线,每段占用 2 卡,32 张图 batch 延迟 185 ms,线性扩展。
- 自适应量化:对级联模型做 混合比特量化,滑窗部分 INT8,精修部分 INT4+FP16 混用,用 昇腾 AMCT 工具链自动搜索 layer-wise bit-width,精度掉 0.5% 以内,但计算密度再提 1.8×。
该思路可直接迁移到城市级安防 4K 画面 30 fps 实时分析项目,也是面试官常见的“再挖一层”追问。