ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

读懂TOPS、DMIPS与FLOPS:芯片算力指标解析与选型指南

读懂TOPS、DMIPS与FLOPS:芯片算力指标解析与选型指南 逛展会或者刷产品页的时候我经常被问到同一个问题某款开发板标着 6 TOPS另一款标着 30000 DMIPS还有一款写着 1.2 TFLOPS到底谁更强说实话这三个数字放在一起比就像拿“载重量”和“百公里加速”去比较一样虽然都跟“性能”沾边但它们衡量的根本不是同一件事。这篇内容我打算把 TOPS、DMIPS、FLOPS 这三个芯片算力指标的来龙去脉彻底捋一遍搞清楚每个数字背后到底在数什么也讲明白为什么厂商爱拿它们做文章以及你真要选型、做评估时该怎么用。全文会从底层原理一路聊到实际项目里踩过的坑希望能帮你在下一次看到“算力怪兽”“AI 算力翻倍”这类宣传语时多一分判断力少一分被忽悠的风险。1. 三个指标放在一起看就是一场“跨体系攀比”——先说结论1.1 为什么这三个指标经常被混在一起说先说个真实的场景去年我给一个边缘巡检项目选硬件供应商发来一份四页 A4 的参数表里面既有“AI 算力 32 TOPS”也有“CPU 算力 28000 DMIPS”还有“GPU 浮点算力 1.5 TFLOPS”。销售在电话里反复强调“我们算力很高绝对够用”可我手头要跑的模型是个轻量级目标检测网络带宽需求不大但对 CPU 的数据预处理和调度能力要求不低。这时候光看 TOPS 根本没法判断会不会卡在 CPU 上DMIPS 反而成了关键参考。这三者被并列提及是因为它们都试图回答同一个问题这块芯片每秒能完成多少次运算。但“运算”这个词太宽泛了。同样是“算一次”可以是把两个整数加在一起也可以是执行一条完整的程序指令更可以是一次带小数点的浮点乘加。三种运算的硬件开销、耗时、能耗完全不同所以业界才分化出三个不同口径的指标。1.2 一句话版本TOPS 给神经网络小算账DMIPS 管 CPU 统筹FLOPS 负责浮点硬功夫为了不让后文读起来绕把结论先放在前面TOPSTera Operations Per Second每秒万亿次操作主要用来衡量 AI 芯片或 NPU 处理神经网络运算的速度。它通常数的是 INT8 这类低精度整数运算因为神经网络经过量化后绝大部分计算都能用整数完成。DMIPSDhrystone Million Instructions Per Second是 CPU 综合处理指令能力的代表跑的是 Dhrystone 基准程序回答的是“一个处理器每秒能执行多少百万条混合指令”。它更贴近操作系统调度、逻辑判断、数据搬运这类通用计算。FLOPSFloating-point Operations Per Second每秒浮点运算次数衡量的是带小数点的数学运算能力科学计算、物理仿真、图形渲染、AI 训练中的浮点矩阵乘都靠它。看到这里你可能已经意识到三者适用的算法类型、精度要求、硬件单元都是错开的。把它们放在同一行里选“谁更大”逻辑上从一开始就是拧巴的。1.3 为什么这三个指标不能按数值直接换算有人会问能不能像汇率一样1 TOPS 约等于多少 DMIPS答案是没有任何统一换算关系原因有三个第一运算对象不同。TOPS 的一次操作通常是一个 8 位整数的乘加DMIPS 的一条指令可能是 32 位整数比较、跳转或加载FLOPS 的一次操作则是 32 位或 64 位浮点乘加。数据位宽和运算类型都不一样拿计数结果直接比毫无意义。第二硬件引擎不同。现代 SoC 里这三种运算分别由 NPU、CPU、GPU 完成它们的架构设计目标天差地别。NPU 靠大量 MAC乘加阵列做并行计算CPU 靠流水线和分支预测提升指令吞吐GPU 靠几千个核心做大规模浮点吞吐彼此没法互相替代。第三性能受周边资源制约。一台设备光看 TOPS 很高但如果内存带宽不足数据搬来搬去的时间可能比计算时间还长。同样DMIPS 很高的 CPU 如果缓存命中率低实际吞吐也会大打折扣。指标只描述某一类运算的峰值能力不是整台设备的真实表现。打个比方一座物流分拣中心里传送带的最大吞吐是 TOPS负责调度车辆的调度员反应速度是 DMIPS给包裹精确称重计的精度能力是 FLOPS。你能因为传送带每分钟能运 1000 件就说调度员水平比隔壁的差吗完全比不了。2. TOPS神经网络时代最出风头也是最容易被营销的算子2.1 TOPS 到底在数什么TOPS 的全称是 Tera Operations Per Second也就是每秒万亿次操作。这名字听起来很大气但它的统计口径非常有弹性。以神经网络里最常见的卷积运算为例硬件执行一次乘法和一次加法最低可以算成一次操作也可以按“乘和加分别计数”算成两次操作。光这一项同一个芯片的 TOPS 数字就可能差一倍。更关键的是数据类型。AI 模型训练完部署到边缘设备时通常会做 INT8 量化也就是把原本用 32 位浮点数表示的权重和激活值压缩成 8 位整数。INT8 计算单元更小、速度更快所以很多 AI 芯片标称的 TOPS 都是 INT8 精度下的峰值。同一颗芯片如果跑 FP1616 位浮点精度算力可能直接砍半甚至只有 INT8 的四分之一。所以看到“XX TOPS”的时候一定要追问三个附加条件什么精度计数口径是一次乘加算 1 还是算 2理论峰值还是可持续实际值如果只有“AI 算力 32 TOPS”这半句话那基本等同没说。2.2 一张表看熟悉芯片的 TOPS 量级下面这些是我印象里比较典型的标称值不是实测数字只是为了让你对量级有个感觉。量产芯片的某些优化部分可能略有浮动但量级关系是稳定的。设备/芯片标称 AI 算力常见精度口径智能手机旗舰 SoC10~70 TOPSINT8 神经网络引擎边缘 AI 开发板6~100 TOPSINT8 NPU智能驾驶域控制器100~500 TOPSINT8 稀疏化计入口径数据中心 AI 加速卡1000 TOPS 以上INT8 Tensor Core 峰值发现没有越往高端走数字越大但口径也更讲究。车载芯片算力宣传动辄几百 TOPS可实际跑稀疏化之前、算上内存带宽限制有效算力能到标称值的六七成就已经算优化得不错了。2.3 TOPS 的“有效值”才是关键我在实验室里做过一个测试两台标称算力大致相同的边缘 AI 盒子一台实际跑 YOLOv8s 能做到 30 毫秒一帧另一台却要 80 毫秒。差距为什么这么大因为后者虽然 NPU 峰值高但内存带宽只有前者的三分之一而且编译器优化不到位算力根本喂不饱。所以评估 TOPS 时我会推荐盯四件事标称精度。INT8、FP16、INT4 的差距是几倍级别的不能混着比。内存带宽。如果带宽低于算力需求大数据量模型会卡在数据搬运上。粗略算一下算力 100 TOPS INT8 的芯片跑 256 字节/像素的特征图带宽至少得几十 GB/s 才够看。有效利用率。可以用厂商提供的 benchmark 跑真实模型看实际算力是标称的百分之多少。低于 50% 要警惕。编译工具链。模型部署不是放上去就能跑工具链是否成熟直接决定你能不能调到接近峰值的利用率。我见过不少芯片理论参数好看但官方 SDK 连常见算子都支持不全的情况。TOPS 未来的趋势也不会消失毕竟 AI 负载越来越重型化但在见惯了各家“注水”口径之后我更愿意把 TOPS 当成一个“上限方向标”而不是绝对的性能判决书。3. DMIPSCPU 干活效率的“老牌裁判”但裁判自己也老了3.1 为什么叫 DMIPS 而不叫 MIPSMIPSMillion Instructions Per Second是最早衡量 CPU 速度的指标之一意思是每秒能执行多少百万条指令。问题在于“指令”本身可以作弊——同样一个加法有人用一条复杂指令完成有人用三条简单指令完成谁的 MIPS 高并不代表谁更快。为了给 CPU 找一把更公平的尺子1984 年有人写出了 Dhrystone 基准程序。这个程序模拟了一组典型的混合工作负载包括字符串复制、整数运算、跳转判断等然后统计整个程序跑完所需的时间。最后用“每秒能跑多少百万条指令”来表示结果就成了 DMIPS。为了避免主频不同导致没法横比后来又流行用 DMIPS/MHz 来对比不同架构在同频率下的真实效率。3.2 同样 1GHz架构不同 DMIPS 差好几倍举几个常见的架构例子感受一下。入门级嵌入式内核大致每 MHz 能跑 1 DMIPS 出头中端应用处理器内核比如常见的大小核架构里的小核每 MHz 大约 2.5 DMIPS 左右高性能大核每 MHz 能做到 4.5 DMIPS 以上。同样是 1GHz 主频高低配之间的 DMIPS 可以差到四倍以上。这背后是超标量流水线、分支预测、乱序执行、缓存层级等一系列微架构设计的合力。主频只是发动机转速每转一圈能干多少活才是 CPU 设计水平的体现。DMIPS 在嵌入式、工业和车载领域仍然是极其重要的指标。很多 MCU 和实时操作系统的选型评估仍然把 DMIPS 当作主力参考因为这直接决定了 CPU 在处理中断、管理任务切换、执行协议栈时富不富裕。3.3 DMIPS 正在被 CoreMark 边缘化还是要说句公道话DMIPS 这个老裁判现在已经有点跟不上时代了。Dhrystone 程序本身太简单存在几个硬伤比如它能被编译器疯狂优化某些指令组合在现在的 CPU 上已经没有代表性甚至有些厂商会用特殊编译器参数把跑分“调”得很高。所以现在更专业的评测会采用 CoreMark。CoreMark 包含链表操作、矩阵运算、状态机和循环冗余校验工作量更真实也更难针对性地作弊。很多厂商在数据手册里会同时给 DMIPS 和 CoreMark 分数这时候我更建议优先看 CoreMark。但我不会直接否定 DMIPS。在工业控制、网络设备、汽车电子这些场景大量历史代码、生态库和实时性评估都是围绕 DMIPS 积累的客户惯性也很大。作为一个有十多年经验的人我的态度是看 DMIPS 了解 CPU 的能力底子看 CoreMark 做横向比较看实际负载跑出来的表现做最终决策。4. FLOPS跑科学计算和渲染的大场面指标精度口径是重灾区4.1 浮点运算为什么单独拿出来计数很少有人注意到FLOPS 的“F”代表 Floating-point也就是浮点数。浮点数可以理解成科学计数法的二进制版本它能在很大范围里表示带小数的数但代价是运算电路更复杂、延迟更高、能效更低。科学计算里最常见的场景是解方程组、矩阵特征值、热传导模拟、空气动力学仿真。这些算法里每一步都要做大量浮点乘加而且随着迭代次数增加舍入误差会逐步累积所以不仅要求算得快还对精度有严格要求。图形渲染同样依赖浮点因为屏幕上一个三维坐标的旋转、投影、光照计算几乎全是 32 位浮点运算。所以 FLOPS 成了衡量“重计算”设备能力的重要标尺从图形工作站到高性能计算集群再到现在的 AI 训练卡大家都在讨论几个 T、几个 P 的浮点算力。4.2 主机、显卡、超算、手机芯片的 FLOPS 量级为了让量级更直观我列一张常见的表格。这里用的是 FP3232 位单精度浮点为主因为这是游戏和大部分工程计算最常用的精度口径最值得统一。设备FP32 算力参考量级备注家用游戏主机10 TFLOPS 左右这一代主机大都在 10~12 TFLOPS旗舰桌面显卡80~100 TFLOPS越新的架构越高AI 训练加速卡60~200 TFLOPS纯 FP32若算上 Tensor Core 的 FP16 则高出十倍手机旗舰 SoC GPU1~3 TFLOPS受功耗和散热限制明显顶级超算数百 PFLOPS 甚至 1 EFLOPS注意口径常是 FP64从手机到超算差距不是百倍千倍而是百万倍级别。这背后消耗的功耗和造价也差了不止一个数量级所以别拿手机参数和服务器参数硬比没有意义。4.3 FP16、FP32、FP64同一颗芯片能差几十倍FLOPS 最容易踩的坑就是对精度口径不做限定。以某主流 AI 加速卡为例FP64 双精度大概 30 TFLOPS 出头FP32 大概 60 多 TFLOPSFP16 配合张量核心能冲到大几百甚至小两千 TFLOPS。这三个数字放在一起最强的和最弱的差了约六十倍。厂商想展示哪个数字完全可以按场合选择。所以我建议读者在交流 FLOPS 时养成一个习惯永远说“FP32 多少 TFLOPS”或者“FP16 Tensor 多少 TFLOPS”而不是笼统地说“我这张卡有 XX TFLOPS”。你自己把口径写清楚对方就很难给你挖坑。另外很多人最近搜“显卡 TOPS 算力表”想知道显卡跑 AI 到底强不强。显卡通常标的是 FP32 TFLOPS要推它的 AI 算力就要看 Tensor Core 在一个时钟周期内能完成多少次 INT8/FP16 运算。NVIDIA 官方和第三方社区都有这类数据但一定得先确认精度和稀疏化设置否则同一个显卡的 TOPS 数字会差好几倍。5. 一张对比表 一个完整选型流程把指标落到实际项目5.1 TOPS、DMIPS、FLOPS 核心参数对比总表把三者的核心差异集中到一张表里方便你日后截图或抄进笔记指标衡量对象基础单位常见数据类型典型硬件单元主要使用场景典型口径陷阱TOPS每秒万亿次操作次数/秒INT8 / INT4 / FP16NPU、AI 加速器神经网络推理、边缘 AI操作计数口径、稀疏化、峰值不可持续DMIPS每秒百万条 Dhrystone 指令百万条/秒混合整数指令CPU通用计算、系统调度、实时控制编译器优化作弊、程序模型老化FLOPS每秒浮点运算次数次/秒常用 TFLOPSFP32 / FP64 / FP16GPU、CPU SIMD、专用加速器科学仿真、图形渲染、AI 训练精度口径不一致、是否包含张量核心选型时最忌讳的做法是跨列比较拿甲芯片的 TOPS 去对比乙芯片的 DMIPS然后得出“乙更强”的结论。正确的比较方式是在同一列内部比较再结合你的应用负载判断哪一列更重要。5.2 用“算法类型—数据精度—瓶颈环节”三问法选型我这些年做嵌入式和边缘方案常用的方法总结成三个问题。流程记下来就能用第一问你的核心负载是什么如果跑的是卷积神经网络、transformer 这类深度学习推理模型那重点看 TOPS 和内存带宽。如果主要是设备控制、协议解析、业务逻辑那就看 DMIPS 和实时性。如果涉及物理仿真、三维渲染、科学计算那 FLOPS 才是主角。第二问数据精度要求是多少能接受 INT8 量化后精度损失那就集中精力优化 TOPS必须保 FP32 精度甚至 FP64那就别被 NPU 的 INT8 高算力冲昏头FLOPS 更该看。AI 推理里很多模型需要混合精度部分层用 INT8部分层用 FP16这也是选择 NPU 和 GPU 时需要考量的交叉点。第三问瓶颈在计算还是数据搬运很多工程师容易忽略内存子系统。用前面提过的话说算力再高数据到不了计算单元也是白搭。如果模型是大分辨率图像或视频流那内存带宽往往决定最终吞吐。可以在选型阶段就做一个简单的带宽需求估算法输出特征图大小×模型推理帧率就能初步判断所需带宽量级。5.3 遇到宣传参数时怎么快速“翻译”成真实性能厂商宣传页上的参数一般都有美化成分但并不意味着全是假的。我的翻译流程分四步第一步看精度是否注明。在线下沟通时直接问“这个是 INT8 还是 FP16 的 TOPS”对方支支吾吾多半是口径有水分。第二步找有效算力测试报告。正规厂商都会提供 YOLO、ResNet 或自研模型的 benchmark 数据找与你实际负载相近的模型结果做参考。第三步查内存带宽和功耗墙。高算力芯片能不能持续输出往往卡在散热和供电上。有些盒子标称 100 TOPS跑模型满载三分钟就降频平均算力可能只剩一半不到。第四步拿着数据去实测验证。如果条件允许直接拿厂商的 demo 板跑自己的模型。凡是不肯给你实测机会的默认按宣传打五折处理。这套流程在采购开发板、选型域控制器、评估 AI 加速卡时都适用。参数表只是入口真实负载跑分才是出口。6. 这三年我踩过的四个参数坑写出来供你们绕路6.1 只看 TOPS 买了一台跑不动大模型的盒子有一段时间我在选边缘视频分析设备验收标准就是 1080P 流里实时跑关键点检测模型。供应商反复强调“16 TOPS 算力绝对没问题”我偷懒没实测结果模型一上真机单路延迟飙到 200 毫秒以上。排查下来问题出在内存带宽只有 12.8GB/sNPU 峰值根本喂不饱。后来我重新测数据发现真实跑分勉强只有标称的一半。这个教训让我明白只看 TOPS 等于只看发动机马力不看变速箱和轮胎永远开不出标称极速。6.2 DMIPS 高并不代表实时性一定好另一个项目里我用了一颗标称 DMIPS 非常高的处理器做电机控制。本以为算力绰绰有余结果中断响应抖动超差实时任务偶尔错过截止时限。原因在于这颗 CPU 虽然缓存大、主频高但中断延迟和上下文切换开销并不理想。DMIPS 衡量的是平均吞吐不是最坏情况时延。对实时系统来说除了看 DMIPS更要看中断延迟、任务切换时间、锁存器行为和实时操作系统的调度机制。这是我后来选工业控制器时一定会多追问几个指标的原因。6.3 把 GPU 的 FP16 峰值口误算成 FP32 算力有一回我在内部方案评审里把某张显卡的 FP16 Tensor Core 算力当成 FP32 通用算力写进了报告幸好在评审前被同事提醒不然采购部门就要按这个数字去对标另一家方案了。这个错误相当常见因为厂商为了展示性能常常把最大口径的 Tensor 算力放在最醒目的位置。后来我在所有内部文档里都强制要求标注精度口径谁漏了谁负责。时刻记住一个没有精度前缀的 FLOPS 数字是不具备比较价值的。6.4 发布会上的“Meta FP8”泛化成了全场景指标近两年已经能看到 AI 芯片厂商开始拿 FP8、稀疏化甚至“有效算力”做宣传。FP8 确实能在特定模型上成倍提升吞吐但它并不适合所有算子精度敏感层反而会失效。我也曾误以为一颗卡在跑推荐模型时能一直保持宣传峰值结果在混合精度场景下实际收益只有宣传的百分之四五十。所以现在我看到任何“N 倍算力提升”的措辞都会先确认这个提升是在什么硬件、什么模型、什么精度下测出来的然后再决定要不要信。6.5 我的建议做法参数表下面永远附一行“适用负载说明”踩过这些坑之后我给自己定了一条规每份选型对比表末尾必须加一行备注写清楚“本次对比基于哪种负载、哪种精度、哪种温度环境”否则不送评审。这样做有两个好处一是逼迫自己在整理参数时想清楚应用边界二是让组里的新人不会被厂商的漂亮数字带跑偏。参数表本质上是一张地图它能告诉你大概往哪走但路上哪里堵车、哪里封路只有实际跑过一遍才知道。TOPS、DMIPS、FLOPS 三个指标的价值更多在于帮你快速缩小候选范围最终选型还是得靠真实负载的实测数据说话。希望这篇内容能让你在下次面对一堆算力参数时少走我当年走过的弯路。
返回列表