ELAI S.r.l.

处理器尚未满载,为什么推理仍然错过截止时间?

通过已执行的示例比较固定优先级、动态截止时间和阻塞,理解平均算力为何不能保证 AI 按时响应。

处理器尚未满载,为什么推理仍然错过截止时间?

空闲时间可能来得太晚

一个设备在同一处理器上处理传感器,并周期运行 AI 模型。工作量计算表明总体算力足够,处理器不应一直忙碌,但某次响应仍晚于需要它的时刻。这并不矛盾:空闲时间可能在截止之后,而有效时间内高优先级任务不断打断推理。因此不能只问模型独自执行需要多少毫秒,还要问它何时能够使用这些时间。

我们将用刻意简化的数值研究两个任务,重建每段执行区间,比较预先固定的优先级和按最近截止时间选择的规则。之后缩短 AI 计算时间,再加入短暂初始阻塞,观察还剩多少余量。这些是模拟器合成时间,不是微控制器或加速器测量。最后可以区分平均容量、计算时间与响应时间,不再一看到延迟就归咎神经模型。

同一设备中的三种时间

任务是反复发生的活动,例如读取并处理传感器;每次具体激活称为作业,也就是一次工作请求。周期 T 表示请求释放间隔,执行成本 C 是不被中断时完成所需的处理器时间,相对截止时间 D 表示释放后允许等待多久。响应时间 R 则是从释放到实际完成的总时间,包括等待。这里单位均为毫秒 ms,1 毫秒等于千分之一秒。

设传感器 S 每 5 ms 需要 2 ms,AI 推理每 8 ms 需要 4.5 ms。两者必须在下次请求前完成,所以 D = T,并在零时刻同时开始。假设单核、活动独立、成本恒定、无存储或加速器等待、可立即零成本抢占。这些假设让问题可分析,但不自动代表任何操作系统或板卡。4.5 ms 是选定实验参数,不是真实模型经过证明的最长执行时间。

活动C(ms)T(ms)D(ms)
S255
AI4.588

平均容量说明工作量,而非完成时刻

计算总体负载时,将各活动成本除以周期后求和。C/T 没有单位:传感器每五毫秒需要两毫秒,即处理器的 40%;AI 为 4.5/8,即 56.25%,总计 96.25%,低于 100%。这排除了周期工作平均超载,但尚不能确定优先级规则是否将工作安排在正确时间区间。

U = C_S / T_S + C_AI / T_AI U = 2/5 + 4.5/8 = 0.9625 = 96.25%

再看 40 ms,它是 5 与 8 的公倍数。期间有八个 S 请求、五个 AI 请求,共需 8 × 2 + 5 × 4.5 = 38.5 ms,余下 1.5 ms。但若响应必须在 8 ms 给出,39 ms 才有空闲也无济于事。像日程安排一样,晚上空半小时不能解决上午冲突。不过计算与这个类比不同之处在于可以中断并恢复,我们比较的规则正利用这一点。

固定优先级:跟踪首个作业如何迟到

第一条规则让周期较短的活动优先,S 始终高于 AI。这称为速率单调 RM,按激活频率排序。零时刻传感器占用 0–2 ms,AI 在 2–5 ms 执行,完成所需 4.5 ms 中的 3 ms。5 ms 时新 S 抢占至 7 ms,AI 恢复后于 8.5 ms 完成,比截止晚 0.5 ms。它确实只消耗 4.5 ms 计算,但从释放到完成经过了 8.5 ms。

处理器没有故障也没有变慢,只是在严格执行规则。5 ms 释放的传感器作业截止为 10,而旧 AI 作业截止为 8。固定优先级忽略相对紧迫性,先执行传感器。因此出现“负载不到 100% 就都能按时”的反例。模拟器不会取消过期作业,而是让其完成并记录迟到,避免通过删除请求掩盖违约。

还不知道总时长,如何计算抢占次数

也可用迭代计算重建结果。AI 响应必须包含自身 C 毫秒及排在它前面的所有传感器工作。如果响应持续 R,从零开始的区间会有 ceil(R/5) 个 S 作业,每个 2 ms。ceil 表示向上取整,因此新的 R 估计依赖上一次估计。从 AI 自身成本开始,重复到计数不再变化,就找到一个代入关系后仍返回自身的固定点。

R[0] = C_AI R[k+1] = C_AI + 2 × ceil(R[k] / 5) 4.5 → 6.5 → 8.5 → 8.5 ms

假设 4.5 ms 时计入一个传感器,得到 6.5;但 6.5 ms 包含 5 ms 的再次释放,于是有两个传感器,总计变成 8.5。8.5 ms 内仍是两个,迭代停止。恰在完成时释放的新作业,不会延迟已经完成的作业,这也解释了 ceil 和区间端点的重要性。截止检查为 R ≤ D,本例 8.5 > 8,虽然 C = 4.5 远小于 D,仍明确失败。

对于这里独立、周期且可抢占的任务,同时释放构成固定优先级的临界情况,将高优先级请求集中到目标任务之前。此结论不直接扩展到任意锁、挂起或加速器系统。C. L. Liu 与 James W. Layland 于 1973 年在 Journal of the ACM 发表的论文,是这些假设以及固定和截止驱动优先级比较的理论参考。它是数学分析,不是现代推理基准,本文模拟数据另行选定。

保持工作量不变,只改变顺序

第二条规则选择就绪作业中绝对截止时间最近者,称为最早截止时间优先 EDF。绝对截止时间等于释放时刻加 D,而不只是 D。到 5 ms 前顺序相同,但此时正在运行的 AI 必须在 8 前结束,新传感器只需在 10 前结束。EDF 让 AI 继续至 6.5,再处理传感器,后者于 8.5 完成,仍未超期。没有加速任何计算,只是移后了第一条规则过早施加的抢占。

在模拟的 40 ms 内,EDF 让全部请求按时完成。在所述理想任务假设下,经典结果将 EDF 可行性与 U ≤ 1 联系起来,但不能因此忽略中断开销而把真实板卡用到 100%。模拟验证当前案例,定理的假设比一句负载口号更严格。动态策略还需要正确实现及明确的过载处理,不能替代实际资源分析。

少半毫秒可消除迟到,却未必留下余量

回到 RM,只把 AI 成本从 4.5 降到 4 ms,此时 U = 2/5 + 4/8 = 0.9,迭代为 4 → 6 → 8 → 8,AI 恰好在截止时完成。40 ms 内没有违约,但首个作业余量为零。实际项目若把假设成本换成测得平均值,会产生没有依据的放心感:稍长执行、漏计的上下文切换或其他干扰都可能改变结果。

经典假设下,两任务 RM 的充分利用率界 2(√2 − 1) 约为 0.8284。超过它不表示每组任务都会失败,只表示一般性测试不再保证可行。这里 90% 负载仍按时的案例说明了区别。相反,观察到请求在 D 之后完成,就证明该模拟配置失败。未满足充分条件与实际违约是不同证据,应使用不同表述。

短暂阻塞会改变问题

最后保留 C_AI = 4 ms,但强制最初 1 ms 两个任务都不能执行。这是释放时已有不可抢占占用的抽象场景,不是互斥锁或特定驱动模拟。S 在 1–3、AI 在 3–5、第二个 S 在 5–7、AI 在 7–9 执行。尽管两个周期任务仍仅需 90% 容量,推理却错过截止。额外 1 ms 是其他工作,已计入轨迹。

R[0] = C_AI + B R[k+1] = C_AI + B + 2 × ceil(R[k] / 5) B = 1 ms: 5 → 7 → 9 → 9 ms

B 仅表示此变体强制加入的初始阻塞。我们没有证明真实系统的最大阻塞为 1 ms,也没有分析所有同步协议。40 ms 中周期工作为 36 ms,阻塞再占 1,总占用为 37 而非 36 ms。比较说明不可抢占工作必须进入模型,完整轨迹可避免将选定任务负载与处理器全部占用混为一谈。

读懂图表,避免混淆不同请求

图展示四次模拟的前 12 ms,结果文件保存全部 40 ms。蓝色表示传感器执行,绿色为 AI,橙色为初始阻塞。红色竖线是首个 AI 作业截止,黑点是其完成时刻。黑点后的绿色属于其他请求,颜色标识活动而不是单个作业。半毫秒分段是模拟器单位,不是测得的中断。比较前两行可以看到,相同工作只是排列不同。

单核合成执行轨迹。黑点为首个 AI 作业完成,红线为其截止;相同颜色可能是不同请求。非硬件基准。
单核合成执行轨迹。黑点为首个 AI 作业完成,红线为其截止;相同颜色可能是不同请求。非硬件基准。

模拟器用整数 0.5 ms tick,使本例所有时长和释放都落在网格上,无时间舍入。每步加入新请求,按 RM 或 EDF 选择作业,减少一个 tick 的剩余工作,记录每个请求的释放、截止和完成。断言检查四种首个 AI 响应为 8.5、6.5、8、9 ms,并验证 EDF 和无阻塞 4 ms RM 无违约。迟到请求数是轨迹结果,不是故障概率。

讨论真实板卡前还缺什么

真实设备上第一个难点是 C。部分输入的平均耗时不自动构成上界。不同算子路径、内存争用、中断、变频和温度都可能改变观察到的工作。评估应说明平台、运行时及模型版本、编译器、时钟、输入、批量、线程与测量条件。若用加速器,等待完成不总是占用 CPU,不能随意把总经过时间作为 C 代入单处理器模型。

请求到达也可能非周期:通信产生突发、传感器成块交付、采集阶段延迟推理释放。整个系统的期限可能从物理测量开始,而本文 R 从作业释放开始。释放前时间不会消失,必须与相关通信和执行动作一并计入传感器到响应的路径。本文未模拟这些因素,因此不声称端到端时间保证。

哪种改动针对观察到的原因?

用更小模型降低 C 可能有用,4 ms 变体已展示,但要保留预测价值并计入其他成本。改变优先级针对的是顺序,EDF 不改模型也改善本例。缩短不可抢占区间针对 B,迁移任务到另一核心则引入通信和共享资源问题。这些办法不可互换。轨迹帮助先确定调查哪项假设,再考虑更强硬件或将责任归于神经网络。

未来设备测试应分开测执行与响应,记录释放和抢占,并包含预计干扰场景。结果需对照明确时间预算,区分均值、百分位和可证明上界。本文没有功率、每次推理能量、峰值 RAM 或板卡性能测量。嵌入式是编辑研究及探索兴趣方向,本研究不证明 EL-AI 已有可用产品或部署,也不声称实物测试或认证。

答案:有时间还不够,必须在截止前有时间

处理器可能有余量却仍迟到,因为容量是总量,而截止约束具体区间。本例同样工作量、96.25% 负载下,首个响应 RM 为 8.5 ms,EDF 为 6.5 ms。AI 成本降至 4 ms 消除 RM 迟到但余量为零,初始阻塞 1 ms 又让迟到出现。因此除了单独测模型,还要重建完整时间路径和处理器访问规则。

来源、代码与复现

代码和结果可在下方下载。实验确定性执行,无需随机种子。代码输出各案例周期负载、首个作业响应和迟到数量,再输出迭代过程。版本为 Python 3.14.0、Matplotlib 3.11.2。历史参考是 1973 年出版物,不是 2026 年研究新进展;已阅读假设、相关证明及局限,不将本例称为对作者测量的复现。

C. L. Liu & James W. Layland (1973), Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment, Journal of the ACM 20(1), 46–61; DOI 10.1145/321738.321743.

from experiment import run
r = run()
for name, case in r['cases'].items():
    print(name, case['periodic_utilization'],
          case['first_AI_response_ms'], case['late_jobs'])
print(r['recurrences'])

代码、数据与说明 · JSON. 教学计算使用 Python 3.14.0,图使用 Matplotlib 3.11.2。分析由 AI 辅助,不声称经过同行评审或人工审核。原创 ImageGen 封面仅作示意,不记录 EL-AI 人员、场所或实际安装。来源查阅于 2026 年 10 月 9 日。