【CANN 7.2】昇腾 310B DVPP 硬件解码 + AIE 推理流水线阻塞、显存持续增长、帧率抖动
收藏回复举报
【CANN 7.2】昇腾 310B DVPP 硬件解码 + AIE 推理流水线阻塞、显存持续增长、帧率抖动
t('forum.solved') 已解决
发表于2026-03-26 15:22:10
0 查看

我们在昇腾 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 模型推理

核心问题

  1. DVPP 与 AIE 流水线阻塞严重,无法真正并行即使使用独立 Stream,也频繁出现:

    • DVPP 处理完等待 AIE
    • AIE 空闲等待 DVPP流水线并行效率 < 40%,16 路只能跑到 8 路性能。
  2. 显存(Device Memory)持续缓慢增长,几小时后 OOM

    • 每次推理都有~200KB~1MB 不等的显存泄漏
    • 已检查:aclrtMalloc/aclrtFree成对、dvpp_destroy均调用
    • 使用aclGetMemInfo观察:used_size持续上涨,不回落
  3. 推理帧率周期性剧烈抖动

    • 平均 25fps,但每 3~5 秒出现一次尖刺延迟(从 20ms→120ms)
    • 与码率无关、与模型无关,定位是CANN 内部调度 / 释放阻塞

已尝试:

  • 多 Stream 隔离(DVPP Stream / AIE Stream)
  • 开启DVPP_EXIT_MODE=1ACL_GPU_TUNE_LEVEL
  • 关闭预读、调整 batch、调整 dvpp buffer 大小
  • 显式调用aclrtSynchronizeStream/aclrtResetStream
  • 模型 AIPP 替换为 CPU 预处理、关闭 DVPP

均无本质改善。

请教专家

  1. 昇腾 310B 上DVPP 与 AIE 如何实现真正无锁并行流水线?并行效率低的根因是什么?
  2. 纯 ACL+DVPP 场景下显存缓慢泄漏,除了用户态内存管理,还有哪些 CANN 底层资源容易遗漏释放?
  3. 帧率周期性尖刺抖动,如何用 ACL 工具定位是HDC 通道阻塞、队列拥堵还是内核态资源回收延迟

我要发帖子