三个诉求各对应一张表:实测和标称差多少是「标称对照表」,场景跑不跑得动是「场景能力表」,移植方不方便是「移植难度表」。测试项都是为这三张表服务的,任何一项测完填不进表,就先不测。
| 你要回答的问题 | 对应结论表 | 表里每一行是什么 | 关键列 |
|---|---|---|---|
| 实测和标称差多少 | 表 A · 标称对照表 | 数据手册上的每一个数字 | 标称值 · 厂商确认的口径 · 实测值 · 偏差 · 测法 · 备注 |
| 目标场景跑得动吗 | 表 B · 场景能力表 | 一个目标场景 | 路数或并发数 · 吞吐 · P99 时延 · 功耗 · 每路或每 token 能耗 · 结论(够 / 勉强 / 不够) |
| 算法移植方不方便 | 表 C · 移植难度表 | 一个模型 | 转换结果 · 不支持算子 · 回退子图数 · FP32 残留 · 精度损失 · 人时 · 卡点 · 结论 |
六步,前两步是准备,中间三步是三层测试,最后一步汇总。第三步做完就能回答三个问题的大部分,急的话先交第三步的结果。
这份清单在第 0 周发出去,回复回填到第 6 节和第 7 节。没有书面口径的标称值,在表 A 里一律标「口径未确认」。
| 要问的 | 为什么要问 |
|---|---|
| 标称算力的计数口径:一次乘加算 1 还是 2 个操作、数据类型(INT8 / INT4)、对应频率、是否含稀疏 | 没有这个,利用率算不出来,两家也没法比 |
| 存算一体芯片:峰值算力是否要求权重驻留片上;片上能放多少权重 | 决定大模型是否存在性能断崖,以及断崖在多大的模型 |
| 卡内内存类型、位宽、理论带宽 | 脊点的分母 |
| PCIe 代数与通道数;是否支持 ASPM 与休眠 | 主机兼容性与掉卡预期 |
| 是否有硬件视频编解码及规格;是否有硬件图像预处理单元 | 决定视频场景能否在卡内闭环,还是原始帧必须走 PCIe |
| NPU 并行单元结构:几核或几个阵列,能否独立分配给不同模型 | 扩展性和多模型并发测试怎么设计 |
| 支持的精度模式:INT4 / INT8 / FP16 / BF16,各自是否全速 | 移植路径,免量化的可能性 |
| 自定义算子机制、底层 SDK、指令集是否开放 | 移植的天花板 |
| 工具链授权方式(离线 / 联网 / 加密狗);ONNX opset 范围;支持的框架 | 工程流程能否跑通 |
| 设备侧 profiler、逐层 dump、仿真器有无 | 调试成本 |
| 已知不支持列表与路线图 | 避免重复踩坑 |
厂商中性,两家都用同一套。业务自有模型必须在里面,那才是真实的移植成本。
| 类别 | 代表模型 | 用来回答什么 |
|---|---|---|
| 硬件峰值微基准 | INT8 4096×4096 矩阵乘;512 进 512 出通道 3×3 卷积,64×64 输入 | 这套工具链下硬件能摸到的天花板 |
| 计算密集 CNN | ResNet50;YOLOv8l / v8x @640 | 有效算力、利用率 |
| 轻量 CNN | MobileNetV2 / V3;YOLOv8n | 带宽受限负载、小模型的调用开销占比 |
| 视觉 Transformer | ViT-B/16;Swin-T | 注意力、LayerNorm、GELU 的支持度,FP32 残留 |
| 检测后处理 | YOLO 检测头含 NMS | 后处理落在卡上还是主机 |
| 序列模型 | 小 LSTM / GRU | 探工具链边界,预期多数不支持 |
| 大语言模型 | Qwen2.5 0.5B / 1.5B / 3B / 7B;内存够则加 14B | 解码速度、容量上限、量化质量 |
| 视觉语言模型 | Qwen2-VL-2B 或 InternVL2-2B | 图像编码器与语言模型的联合表现 |
| 业务自有模型 | 项目实际要上的模型 | 真实移植成本 |
先定场景,再从场景反推指标。及格线由产品需求给,评测只负责把数字测准。下面四个是默认场景,按项目增删。
| 场景 | 负载定义 | KPI |
|---|---|---|
| 多路视频结构化 | 16 路 1080p 真实码流 → 解码 → 预处理 → YOLOv8s 检测 → NMS → 输出 | 稳定路数 × 帧率;端到端 P99;功耗;每路功耗 |
| 本地大模型助手 | 7B 模型 4 bit 量化,2K 上下文,单路与 4 路并发 | 首 token 时延(TTFT);每 token 时延(TPOT);并发衰减;每 token 能耗;量化后质量 |
| 视觉语言巡检 | 1 张 1080p 图加 100 token 问题 → 200 token 回答 | 图像编码耗时;TTFT;总耗时 |
| 机器人单路低延迟视觉 | 单路 30fps,YOLOv8n 加关键点,batch 1 | 端到端 P99;抖动;主机 CPU 占用 |
名词:TTFT 是用户按下回车到第一个字出来的时间;TPOT 是之后每个字之间的间隔,决定打字速度。
每一项都标了它填进哪张表。厂商专有名词一律用中性说法,对应关系见第 6 节。
| # | 项目 | 怎么测 | 报什么 | 填哪张表 / 判据 |
|---|---|---|---|---|
| 1.1 | 标称对照表 | 数据手册每个数字逐个对应到一个实测项 | 表 A 本体 | 表 A · 诉求一的总答案 |
| 1.2 | 硬件峰值微基准 | 大矩阵乘和大卷积,INT8,设备侧计时 | 峰值 TOPS | 表 A · 利用率的第二个分母 |
| 1.3 | 有效算力与利用率 | ResNet50、YOLOv8l / x;设备侧与主机侧时延各记一份;有效算力 = 理论乘加数 × 2 × FPS | 有效 TOPS;对标称的利用率;对峰值的利用率 | 表 A · 两个利用率一比,就知道差距在硬件还是编译器 |
| 1.4 | 时延稳定性 | 每配置 10 预热加 ≥200 计时 | P50 / P95 / P99 / 最大 | 表 B · 抖动 |
| 1.5 | PCIe 通道 | lspci 协商结果;主机到卡、卡到主机 4KiB 到 64MiB 分块扫描,带数据校验,每档 ≥50 次;4KiB 单次往返 ≥200 次 | 带宽曲线与膝点;往返时延 P50 / P99 | 表 A · 软件搬运粒度的设计依据;大模型逐层调度的单位成本 |
| 1.6 | 卡内内存带宽 | 卡内 DMA 大块拷贝,≥64MiB,≥50 次;若能写 NPU 侧的访存密集算子也测一份 | GB/s | 表 A · 脊点的分母 |
| 1.7 | 大模型组 | 模型 × 量化(W8A8 / W4A16 / W4A8)矩阵;预填充输入 128 / 512 / 2K / 4K / 8K;解码上下文 0 / 2K / 8K;并发 1 / 2 / 4;困惑度加评测集对比 FP16 参考;最大可加载模型与最大上下文;存算一体芯片另做模型尺寸扫描找断崖 | TTFT;预填充 token/s;TPOT;带宽利用率(MBU);并发衰减;质量差;断崖点 | 表 B · 本地大模型场景的总答案。MBU 低于 30% 提示软件栈有余量,高于 60% 接近物理墙(经验判据) |
| 1.8 | 算子覆盖 | 模型集全部走一遍转换;记成功 / 失败、不支持算子名、CPU 回退子图数、FP32 残留算子数、动态 shape 支持、自定义算子可行性 | 表 C 前半 | 表 C · 四项全零才算通过。FP32 残留必须记:结构全绿也可能输出全错 |
| 1.9 | 量化精度 | FP32 基线 vs 卡上实跑;检测用 COCO mAP@50-95,分类用 ImageNet Top-1;真实校准集与随机校准集各做一次 | 掉点;校准敏感度 | 表 C · 掉点 ≤2 可用,>3 逐层分析(经验判据)。张量余弦相似度只作冒烟,不替代数据集精度 |
| 1.10 | 精度模式矩阵 | 同一模型分别以 INT8 / FP16 / BF16 跑 | 各模式速度与精度 | 表 C · 免量化路径的价值 |
| 1.11 | 工程成本 | 每模型从拿到 ONNX 到卡上跑出正确结果的人时、卡点、改结构次数、逐层量化误差 Top10 | 表 C 后半 | 表 C · 定位掉点集中层,判断混合精度能否挽救 |
| 1.12 | 功耗 | M.2 3.3V 侧外部仪器采集;工况:待机 / NPU 满载 / 大模型生成 / 解码满载(若有硬解) / 混合;每工况 ≥3 分钟 | 均值与峰值;TOPS/W;每 token 能耗;每路功耗 | 表 A、表 B · 对照 M.2 槽供电预算 |
| 1.13 | 软件栈事实 | 开箱到 demo 时间、文档够不够、报错可读性、profiler 与仿真器有无、Python 接口、授权方式、内核补丁数、FAE 响应时间 | 逐条记录 | 附录 · 不打分 |
| # | 项目 | 怎么测 | 报什么 / 判据 |
|---|---|---|---|
| 2.1 | 并行单元扩展 | 1 / 2 / N 个单元,小中大三档模型各一 | 扩展比 = 1 单元时延 ÷ N 单元时延 |
| 2.2 | Batch 扩展 | batch 1 / 2 / 4 / 8,同一模型 | 吞吐、单张时延、设备内存占用。不支持 batch 也是结论 |
| 2.3 | 实际运行频率 | 满载与空载各一组;读驱动或寄存器;读不到就用编译器给的周期数 ÷ 实测时延 | 等效频率,对照标称频率 |
| 2.4 | 脊点与带宽水位 | 脊点 = 确认口径的标称算力 ÷ 实测卡内带宽;探针:MobileNet 吞吐、大模型解码 MBU | 算术强度低于脊点的负载永远碰不到峰值算力 |
| 2.5 | 调度开销 | 每 token 总耗时 − 各层计算耗时之和;同时记中断向量数与每 token 往返次数 | 非计算开销占比 >50% 判瓶颈在平台层而非芯片(经验判据) |
| 2.6 | 主机 CPU 开销 | 满载推理时主机 CPU 占用率;判断轮询还是中断 | CPU%。ARM 小主机上这个数决定还能不能干别的 |
| 2.7 | 多模型并发 | 检测 + 分类 + 大模型同时跑 | 各自劣化比例;有无优先级与抢占 |
| 2.8 | 媒体流水线 有硬件编解码才做 | 解码:1 / 4 / 8 / 16 路真实码流,1080p 与 4K,记码率、GOP、profile、运动强度;编码:卡内闭环与主机送原始帧两条路分别测;预处理纯吞吐:缩放 / 色彩转换 / 裁剪输出留卡内 | 路数-帧率曲线;两条编码路径分列呈现;MPixel/s。生成素材结果只作上界 |
| 2.9 | 全链路端到端 | 码流 → 解码 → 预处理 → NPU → 后处理含 NMS → 输出,各环节耗时分解 | P50 / P95 / P99;各环节之和与端到端的差值即调度损耗 |
| 2.10 | 全链路精度 | 硬件解码加硬件缩放走一遍再算 mAP | 相对 OpenCV 预处理的额外掉点 |
| 2.11 | 并发干扰 | 媒体满载与空载时同一模型的 NPU 时延差 | 差值 >10% 判存在带宽争抢,业务规划要预留(经验判据) |
| 2.12 | 温度-性能曲线 | 满载持续,温度与时延按秒同步采样,到平台后再跑 ≥10 分钟;裸卡 / 加散热片 / 目标腔体三种条件各一条 | 平台期漂移 <1% 判无降频;拐点温度即降频点;性能承诺必须绑定散热条件 |
| 2.13 | 确定性 | 同一输入跑 10 次 | 输出是否逐位一致 |
| # | 项目 | 怎么测 | 报什么 / 判据 |
|---|---|---|---|
| 3.1 | 长稳 | 24 小时起步,72 小时达标;混合负载;每 5 分钟采温度 / NPU 利用率 / 设备内存 / 进程内存 / PCIe 错误计数 | 零掉卡;内存无单调增长;时延漂移 <2% |
| 3.2 | 启停与异常恢复 | 断电冷启动 ×10;软件重启 ×20;推理中强杀进程 ×5;休眠单列记录 | 每次记模块加载完整性、卡端握手、恢复耗时;全部恢复且耗时稳定 |
| 3.3 | 跨主机 | 同一张卡在 ≥3 类主机重跑固定基准组:1 个 NPU 模型 + PCIe 带宽 + 大模型解码 | 差 >30% 逐项归因:PCIe 代数与通道、中断向量数、CPU 调度(经验判据) |
| 3.4 | 启动浪涌 | 示波器抓上电瞬间电流,≥5 次取包络 | 对照主机 M.2 槽供电规格 |
大纲里的中性名词与各家 SDK 里的叫法对应。「待确认」的格由第 3.3 节的厂商回复回填。
| 中性名词 | 爱芯元智 AX8850 | 后摩智能 M50 |
|---|---|---|
| 模型编译器 | Pulsar2 | 后摩大道,接口形式待确认 |
| 主机侧运行时 | AXCL Runtime(C / Python) | 待确认 |
| 设备管理工具 | axcl-smi | 待确认 |
| 设备内存池 | CMM | 待确认 |
| 硬件图像预处理单元 | IVPS | 待确认是否存在 |
| 硬件解码 / 编码 | VDEC / VENC | 待确认是否存在 |
| NPU 并行单元 | 待确认(上一代 AX650N 为 3 核) | 存算阵列,划分方式待确认 |
| 设备侧 profiler / 逐层 dump | 待确认 | 待确认 |
| 精度分析工具 | Pulsar2 逐层精度分析 | 待确认 |
两颗不是同一赛道的对手,报告按场景分开写,不拉总分。下面的官方口径都以厂商书面回复为准。
关键分岔:如果 M50 没有硬解码,视频场景下原始帧要走 PCIe 送进卡里。16 路 1080p 每秒约 1.2 GB,PCIe 3.0 x4 勉强够,x2 或 x1 的槽直接堵死。这一条决定 M50 能不能独立扛视频场景,第 0 周就要问清。