我们在昇腾 310B(4GB LPDDRX)+ CANN 7.2上部署多路高清视频结构化推理(1080p,16 路并发),使用DVPP VPC 硬件解码 + 缩放 + AIE 离线推理流水线,遇到三个无法根治的工程问题,尝试多种调优仍无效,特来求助。
环境
- 芯片:昇腾 310B
- CANN:7.2.RC1
- 语言:C++ ACL
- 场景:16 路 1080p → DVPP 解码 → VPC 缩放 → 推理(YOLO 结构)
- 框架:纯 ACL 离线 OM 模型推理
核心问题
-
DVPP 与 AIE 流水线阻塞严重,无法真正并行即使使用独立 Stream,也频繁出现:
- DVPP 处理完等待 AIE
- AIE 空闲等待 DVPP流水线并行效率 < 40%,16 路只能跑到 8 路性能。
-
显存(Device Memory)持续缓慢增长,几小时后 OOM
- 每次推理都有~200KB~1MB 不等的显存泄漏
- 已检查:
aclrtMalloc/aclrtFree成对、dvpp_destroy均调用 - 使用
aclGetMemInfo观察:used_size持续上涨,不回落
-
推理帧率周期性剧烈抖动
- 平均 25fps,但每 3~5 秒出现一次尖刺延迟(从 20ms→120ms)
- 与码率无关、与模型无关,定位是CANN 内部调度 / 释放阻塞
已尝试:
- 多 Stream 隔离(DVPP Stream / AIE Stream)
- 开启
DVPP_EXIT_MODE=1、ACL_GPU_TUNE_LEVEL - 关闭预读、调整 batch、调整 dvpp buffer 大小
- 显式调用
aclrtSynchronizeStream/aclrtResetStream - 模型 AIPP 替换为 CPU 预处理、关闭 DVPP
均无本质改善。
请教专家
- 昇腾 310B 上DVPP 与 AIE 如何实现真正无锁并行流水线?并行效率低的根因是什么?
- 纯 ACL+DVPP 场景下显存缓慢泄漏,除了用户态内存管理,还有哪些 CANN 底层资源容易遗漏释放?
- 帧率周期性尖刺抖动,如何用 ACL 工具定位是HDC 通道阻塞、队列拥堵还是内核态资源回收延迟?
我们在昇腾 310B(4GB LPDDRX)+ CANN 7.2上部署多路高清视频结构化推理(1080p,16 路并发),使用DVPP VPC 硬件解码 + 缩放 + AIE 离线推理流水线,遇到三个无法根治的工程问题,尝试多种调优仍无效,特来求助。
环境
核心问题
DVPP 与 AIE 流水线阻塞严重,无法真正并行即使使用独立 Stream,也频繁出现:
显存(Device Memory)持续缓慢增长,几小时后 OOM
aclrtMalloc/aclrtFree成对、dvpp_destroy均调用aclGetMemInfo观察:used_size持续上涨,不回落推理帧率周期性剧烈抖动
已尝试:
DVPP_EXIT_MODE=1、ACL_GPU_TUNE_LEVELaclrtSynchronizeStream/aclrtResetStream均无本质改善。
请教专家