3、多模型并发场景:典型多模型推理场景(如多路视频分析、多任务服务)及并发需求分析

在NPU(神经网络处理单元)的实际工程部署中,单模型单流的推理场景往往只存在于原型验证阶段。生产环境中的AI应用几乎无一例外地面临多模型并发、多路数据流交织的复杂局面。以智能安防为例,一台边缘计算盒子可能需要同时运行人脸检测、车辆结构化、行为识别等多个模型;而在云端推理集群中,一个物理NPU实例可能需要为数十个租户的不同模型提供推理服务。理解这些典型场景的并发需求,是进行后续优先级控制、资源隔离和调度策略设计的前提。本章将系统梳理多模型并发的典型业务形态,分析其背后的技术约束,并给出并发需求的结构化分析方法。

多模型并发场景与需求分析框架 多路视频分析 16路RTSP视频流接入 模型A: 目标检测(每路) 模型B: 目标跟踪(每路) 模型C: 行为识别(ROI区域) 并发特征: 同模型多实例 数据并行 > 模型并行 帧率要求: 25FPS/路 时延预算: < 80ms 多任务服务 请求类型1: 图像分类 请求类型2: 文本情感分析 请求类型3: 语音识别 请求类型4: 推荐排序 并发特征: 异构模型混合 模型间无数据依赖 QoS要求差异大 吞吐优先 vs 时延优先 级联流水线 模型1: 人脸检测 模型2: 人脸关键点定位 模型3: 人脸属性识别 并发特征: 数据依赖链 前级输出 = 后级输入 端到端时延 = 各级之和 需要优先级继承机制 需求分析四维模型: 时延敏感度 | 吞吐需求 | 资源占用 | 依赖关系

上图展示了三类典型的多模型并发业务形态。可以看到,不同场景对NPU的并发调度需求存在显著差异:多路视频分析是典型的同构数据并行,多任务服务是异构模型混合,而级联流水线则引入了模型间依赖。理解这些差异,是设计调度策略的第一步。

3.1 典型多模型推理场景剖析

3.1.1 多路视频分析场景

多路视频分析是边缘计算和智慧城市中最常见的NPU负载。以一台配置8路摄像头接入的边缘服务器为例,其核心诉求是:对每一路视频流实时执行目标检测(如行人、车辆)、目标跟踪以及特定区域的行为识别。这里的“并发”并非指同时运行多个不同的模型,而是同一个模型被实例化多次,分别处理不同视频流的数据。这种模式在调度上相对简单,但内存带宽和NPU算力分配成为瓶颈。

从并发需求角度看,多路视频分析具有以下特征:

  • 周期性到达:视频帧以固定帧率(如25FPS)到达,每个帧周期内必须完成该路视频的推理任务,否则会造成丢帧或延迟累积。
  • 算力均分需求:在理想情况下,NPU算力应在各路视频流之间公平分配,避免某一路视频因模型复杂度过高而长期占用NPU,导致其他路视频卡顿。
  • 时延上限明确:通常要求单帧处理时延不超过40ms(对应25FPS),否则画面会出现明显卡顿。这要求调度器能够提供确定性的时延保障。
关键指标参考:以某国产边缘NPU(算力约16 TOPS INT8)为例,运行YOLOv5s模型(输入640x640),单路推理时延约15ms。若接入8路视频,则每帧周期内需完成8次推理,总耗时约120ms,远超40ms的帧周期。此时必须采用帧级流水线或多NPU核并行策略,将不同视频流的推理任务分配到不同的计算核心上。

3.1.2 多任务服务场景

在云端推理平台或AI服务网关中,NPU需要同时响应来自不同业务线的推理请求。例如,一个综合AI平台可能同时提供图像分类(ResNet-50)、文本情感分析(BERT-base)、语音识别(Conformer)和推荐排序(DSSM)四种服务。这些模型的网络结构、算子类型、内存占用和时延要求完全不同。

多任务服务场景的并发需求核心在于QoS(服务质量)差异化:

任务类型 模型示例 时延敏感度 吞吐要求 资源占用
在线交互 语音识别 极高(<200ms) 中(100 QPS) 高(大模型)
离线批处理 图像分类 低(可容忍秒级) 高(1000+ QPS) 中
实时风控 文本情感分析 高(<100ms) 中(500 QPS) 低(轻量模型)

这种场景下,调度器不能简单地采用先来先服务策略,而需要根据任务的优先级、时延预算和资源占用量进行综合调度。例如,语音识别任务虽然时延敏感,但模型较大,如果频繁抢占NPU资源,会导致图像分类任务的吞吐量大幅下降。因此,需要引入权重轮转或基于令牌桶的速率控制机制。

3.1.3 级联流水线场景

级联流水线在安防、医疗影像和自动驾驶中非常普遍。以人脸识别系统为例,完整流程包括:人脸检测(模型1)→ 人脸关键点定位(模型2)→ 人脸特征提取(模型3)→ 特征比对(非NPU操作)。在这种模式下,模型之间存在严格的数据依赖:模型2的输入是模型1的输出,模型3的输入是模型2的输出。

级联场景的并发需求具有特殊性:

  • 端到端时延约束:用户感知的是整个流水线的总时延,而非单个模型的时延。如果模型1耗时30ms,模型2耗时20ms,模型3耗时25ms,则总时延为75ms(忽略数据传输开销)。调度器需要确保每一级都在预算内完成。
  • 优先级继承:如果模型3的优先级较高,那么模型1和模型2的优先级也应相应提升,否则高优先级任务会在流水线中段被低优先级任务阻塞。
  • 中间结果缓存:由于各级模型处理速度可能不匹配,需要在模型之间设置中间结果队列。队列深度和背压机制直接影响系统稳定性。
常见误区:很多开发者认为只要每个模型单独优化到足够快,级联系统的端到端时延就自然达标。实际上,如果模型1和模型2之间没有合理的缓冲和调度机制,模型1的偶发延迟(如视频帧突刺)会直接传导至模型2,造成整个流水线的时延抖动。正确的做法是在模型间设置有界队列,并采用异步流水线而非同步调用。

3.2 并发需求分析方法论

面对复杂的多模型并发场景,工程师需要一套系统化的需求分析方法,避免在调度策略设计阶段遗漏关键约束。以下四维分析模型在实践中被证明有效。

3.2.1 时延敏感度分析

首先需要为每个模型或任务定义明确的时延预算(SLO,Service Level Objective)。时延敏感度决定了任务在调度队列中的基础优先级。例如,自动驾驶中的障碍物检测模型时延预算为30ms,而车载娱乐系统的语音识别模型时延预算为500ms。前者应被赋予更高的调度优先级。

时延敏感度分析的具体操作步骤:

  1. 列出所有需要并发运行的模型及其业务场景。
  2. 与业务方确认每个模型的P99时延要求(即99%的请求必须在规定时间内完成)。
  3. 将时延要求转换为调度周期和预算。例如,要求P99时延为50ms,则调度周期应不大于10ms,且每个周期内该任务必须获得足够的执行时间。
  4. 标注哪些任务是硬实时(错过时延会导致事故),哪些是软实时(错过时延仅影响体验)。

3.2.2 吞吐需求与资源占用评估

吞吐需求决定了NPU算力的分配权重。评估时需考虑每个模型的单次推理耗时(可通过NPU Profiling工具获得)和单位时间内的请求数量。计算公式为:

所需算力占比 = (单次推理耗时 × 每秒请求数) / NPU总可用算力

例如,某模型单次推理耗时5ms,每秒请求200次,则每秒需要占用1000ms的NPU计算时间。如果NPU有4个计算核心,每个核心每秒可提供1000ms的计算时间,则该模型需要占用25%的NPU总资源。

3.2.3 依赖关系梳理

对于级联流水线,需要绘制模型间的数据依赖图,识别关键路径。关键路径是指端到端时延中最长的那条链路,优化重点应放在关键路径上的模型。同时,需要识别哪些模型可以并行执行(无依赖关系),哪些必须串行执行。

3.2.4 资源冲突识别

NPU资源不仅包括计算单元,还包括内存带宽、片上缓存(SRAM)和DMA通道。两个模型即使计算量不大,但如果同时大量访问内存,也可能造成带宽争抢。需求分析阶段应通过Profiling工具获取每个模型的内存访问特征,识别潜在的资源冲突点。

经验提示:在需求分析阶段,建议为每个模型建立一张“资源画像卡”,记录其计算量(MACs)、内存占用、访存带宽需求、时延预算和优先级。这张卡片是后续调度策略配置的直接输入。例如,某模型计算量小但访存密集,则调度时应避免将其与另一个访存密集的模型放在同一时间片内执行。

3.3 案例拆解:智慧园区多路视频与门禁联动系统

下面通过一个完整的案例,展示如何将上述分析方法应用于实际项目。

项目背景与约束:某智慧园区需要部署一套边缘AI系统,硬件平台为1颗NPU(算力22 TOPS,4个计算核心,8GB内存)。业务需求包括:

  • 接入园区内12路1080P摄像头,进行实时行人检测与轨迹跟踪(模型A:YOLOv5s,单次推理8ms)。
  • 对园区出入口进行人脸抓拍和特征提取(模型B:RetinaFace + MobileFaceNet,级联流水线,总耗时12ms)。
  • 提供1路实时语音对讲转文字服务(模型C:Conformer,流式识别,每次解码步耗时3ms)。

初始目标:所有业务并发运行,且满足:视频分析不丢帧(25FPS/路),人脸识别端到端时延<200ms,语音识别实时率<0.5。

分析过程:

  1. 算力预算:12路视频分析每秒需处理12×25=300帧,每帧8ms,总耗时2400ms。NPU每秒总计算时间为4000ms(4核×1000ms),视频分析占用60%算力。
  2. 人脸识别:假设每秒触发5次人脸识别,每次12ms,占用60ms,占比1.5%,可忽略不计。
  3. 语音识别:流式解码步长10ms,每步3ms,占用30%算力。
  4. 资源冲突识别:视频分析模型A访存带宽需求为15GB/s,语音识别模型C访存带宽需求为8GB/s,NPU总内存带宽为32GB/s。两者同时运行可能造成带宽争抢。

调度策略设计:

  • 将NPU的4个核心划分为两组:核心0-2用于视频分析(3核并行处理12路视频,每核处理4路),核心3用于语音识别。
  • 人脸识别模型B作为高优先级任务,可抢占核心3的语音识别任务,但需设置抢占阈值(如语音识别单步解码不超过3次被抢占)。
  • 在内存访问层面,为模型A和模型C设置不同的DMA通道优先级,模型A的帧数据搬运优先级高于模型C的音频特征搬运。

结果对比:实施上述策略后,12路视频分析稳定在25FPS,无丢帧;人脸识别端到端时延为180ms,满足要求;语音识别实时率为0.42,满足要求。而在未做资源隔离前,视频分析帧率波动至18FPS,语音识别实时率恶化至0.8。

复盘经验:该案例的核心成功因素在于算力分区和访存优先级控制。单纯依靠任务级调度无法解决内存带宽争抢问题,必须在NPU底层资源层面进行隔离。此外,人脸识别任务虽然算力占比低,但因其时延敏感,必须赋予抢占能力,否则在视频分析满载时会被饿死。

3.4 常见误区与总结复盘

在多模型并发需求分析中,工程师常犯以下错误:

误区 后果 正确做法
只关注算力总量,忽略内存带宽 算力利用率低,任务互相拖慢 同时评估计算量和访存带宽需求
所有任务统一优先级 高时延敏感任务被阻塞 基于SLO差异化设置优先级
忽略模型间的依赖关系 级联流水线端到端时延超标 绘制依赖图,识别关键路径
静态分配资源,不动态调整 业务波动时系统不稳定 设计动态资源调节机制