On-Device NPU Bottleneck Calculator
比较设备端 NPU 推理工作负载的计算受限与Memory-bound throughput。输入假设下较低的速率是限制资源;这不是对特定设备的基准测试。
结果
预计限制资源
预计最大吞吐量
Compute-bound throughput
Memory-bound throughput
吞吐量上限下每次推理耗时
使用方法 工具
- 输入 NPU 峰值 TOPS,以及与模型数值精度和工作负载对应的实测计算效率。
- 输入每次推理运算量(TOP)和实测持续内存带宽(GB/s)。
- 输入每次推理的总内存流量(MB)及实测内存效率。
- 比较计算受限和内存受限速率;较低者是此简化模型中的吞吐上限。
假设条件
- TOPS、每次推理运算量及实测效率必须采用兼容的运算类型和数值精度(例如 INT8 与 FP16)。
- 内存流量由用户估算,应酌情计入权重、激活、缓存复用和批处理;计算器不会从模型文件推导这些数据。
- 该估算将系统简化为单一稳态瓶颈;不计 CPU/GPU 卸载、排队、批次延迟、热降频、kernel 启动开销和设备专属调度。
技术细节:字段含义
- NPU 峰值算力
npuPeakTops - 标称或实测 NPU 峰值吞吐量,单位 TOPS;运算精度必须与 operationsPerInferenceTops 相符。
- 实测计算效率
computeEfficiencyPercent - 该工作负载达到峰值计算吞吐量的实测比例,以百分比表示。
- 每次推理的模型运算量
operationsPerInferenceTops - 单次推理所需的模型运算量,以 TOP(10^12 次运算)表示。
- 持续内存带宽
memoryBandwidthGbPerSecond - NPU 可用的持续内存带宽,以十进制 GB/s 表示(1 GB = 1,000 MB)。
- 实测内存效率
memoryEfficiencyPercent - 该工作负载达到持续内存带宽的实测比例,以百分比表示。
- 每次推理的内存流量
memoryTrafficMbPerInference - 每次推理与内存之间传输的模型权重和激活总量,以十进制 MB 表示;除非每次推理都会传输全部字节,否则不要输入模型文件大小。
方法说明
计算受限速率 = NPU 峰值 TOPS × 计算效率 ÷ 每次推理模型 TOP。内存受限速率 = 内存 GB/s × 1,000 MB/GB × 内存效率 ÷ 每次推理传输 MB。预计吞吐量取较低速率;计算受限时间 = 1,000 毫秒 ÷ 该吞吐量。
计算示例
具有 45 TOPS、每次推理内存流量为 150 MB 的 NPU
输入项: NPU 峰值算力: 45 TOPS, 实测计算效率: 60%, 每次推理的模型运算量: 0.9 TOP, 持续内存带宽: 68 GB/s, 实测内存效率: 70%, 每次推理的内存流量: 150 MB
结果: 计算受限速率为 30.0 次推理/秒;内存受限速率约为 317.3 次推理/秒。简化模型判定为 Compute-bound,速率约 30.0 次推理/秒(计算受限时每次推理耗时 33.3 毫秒)。
实用指南
- 使用实测持续带宽和模型流量,不要只看 NPU 理论峰值;缓存复用和分块会显著改变流量。
- 在目标批大小、精度、热状态和延迟目标下进行设备基准测试,验证两种速率。
常见错误
- 将 INT8 NPU TOPS 与 FP16 运算量直接比较,没有换算到兼容基准。
- 使用模型权重文件大小作为每次推理内存流量,即使权重会从缓存复用。
常见问题
Compute-bound 表示什么?
对所填输入而言,模型计算速率低于内存受限速率。这并不能证明实际设备没有其他瓶颈。
结果能预测真实延迟吗?
不能。它给出简化吞吐量上限和计算受限耗时估算;实际延迟还取决于批处理、kernel、CPU/GPU 工作、内存复用、热状态和运行时调度。
上次审核: 2026-10-18
仅为双资源算术模型;不会测量设备、检查模型图、计入 CPU/GPU 回退,或预测尾延迟和功耗。
此工具 根据上述假设提供参考估算值。
主题和工具偏好设置,以及已保存和最近使用的列表仅存储在此浏览器中。