3、多模型并发场景:典型多模型推理场景(如多路视频分析、多任务服务)及并发需求分析
在NPU(神经网络处理单元)的实际工程部署中,单模型单流的推理场景往往只存在于原型验证阶段。生产环境中的AI应用几乎无一例外地面临多模型并发、多路数据流交织的复杂局面。以智能安防为例,一台边缘计算盒子可能需要同时运行人脸检测、车辆结构化、行为识别等多个模型;而在云端推理集群中,一个物理NPU实例可能需要为数十个租户的不同模型提供推理服务。理解这些典型场景的并发需求,是进行后续优先级控制、资源隔离和调度策略设计的前提。本章将系统梳理多模型并发的典型业务形态,分析其背后的技术约束,并给出并发需求的结构化分析方法。
上图展示了三类典型的多模型并发业务形态。可以看到,不同场景对NPU的并发调度需求存在显著差异:多路视频分析是典型的同构数据并行,多任务服务是异构模型混合,而级联流水线则引入了模型间依赖。理解这些差异,是设计调度策略的第一步。
3.1 典型多模型推理场景剖析
3.1.1 多路视频分析场景
多路视频分析是边缘计算和智慧城市中最常见的NPU负载。以一台配置8路摄像头接入的边缘服务器为例,其核心诉求是:对每一路视频流实时执行目标检测(如行人、车辆)、目标跟踪以及特定区域的行为识别。这里的“并发”并非指同时运行多个不同的模型,而是同一个模型被实例化多次,分别处理不同视频流的数据。这种模式在调度上相对简单,但内存带宽和NPU算力分配成为瓶颈。
从并发需求角度看,多路视频分析具有以下特征:
- 周期性到达:视频帧以固定帧率(如25FPS)到达,每个帧周期内必须完成该路视频的推理任务,否则会造成丢帧或延迟累积。
- 算力均分需求:在理想情况下,NPU算力应在各路视频流之间公平分配,避免某一路视频因模型复杂度过高而长期占用NPU,导致其他路视频卡顿。
- 时延上限明确:通常要求单帧处理时延不超过40ms(对应25FPS),否则画面会出现明显卡顿。这要求调度器能够提供确定性的时延保障。
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的优先级也应相应提升,否则高优先级任务会在流水线中段被低优先级任务阻塞。
- 中间结果缓存:由于各级模型处理速度可能不匹配,需要在模型之间设置中间结果队列。队列深度和背压机制直接影响系统稳定性。
3.2 并发需求分析方法论
面对复杂的多模型并发场景,工程师需要一套系统化的需求分析方法,避免在调度策略设计阶段遗漏关键约束。以下四维分析模型在实践中被证明有效。
3.2.1 时延敏感度分析
首先需要为每个模型或任务定义明确的时延预算(SLO,Service Level Objective)。时延敏感度决定了任务在调度队列中的基础优先级。例如,自动驾驶中的障碍物检测模型时延预算为30ms,而车载娱乐系统的语音识别模型时延预算为500ms。前者应被赋予更高的调度优先级。
时延敏感度分析的具体操作步骤:
- 列出所有需要并发运行的模型及其业务场景。
- 与业务方确认每个模型的P99时延要求(即99%的请求必须在规定时间内完成)。
- 将时延要求转换为调度周期和预算。例如,要求P99时延为50ms,则调度周期应不大于10ms,且每个周期内该任务必须获得足够的执行时间。
- 标注哪些任务是硬实时(错过时延会导致事故),哪些是软实时(错过时延仅影响体验)。
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工具获取每个模型的内存访问特征,识别潜在的资源冲突点。
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。
分析过程:
- 算力预算:12路视频分析每秒需处理12×25=300帧,每帧8ms,总耗时2400ms。NPU每秒总计算时间为4000ms(4核×1000ms),视频分析占用60%算力。
- 人脸识别:假设每秒触发5次人脸识别,每次12ms,占用60ms,占比1.5%,可忽略不计。
- 语音识别:流式解码步长10ms,每步3ms,占用30%算力。
- 资源冲突识别:视频分析模型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差异化设置优先级 |
| 忽略模型间的依赖关系 | 级联流水线端到端时延超标 | 绘制依赖图,识别关键路径 |
| 静态分配资源,不动态调整 | 业务波动时系统不稳定 | 设计动态资源调节机制 |