ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

TOPS、DMIPS、FLOPS详解:芯片算力指标别再混着比

TOPS、DMIPS、FLOPS详解:芯片算力指标别再混着比 如果你最近在挑AI开发板、智能座舱芯片或者想给电脑升级一块能跑本地大模型的显卡大概率会被三个英文缩写轮番轰炸TOPS、DMIPS、FLOPS。我刚入行那会儿也栽过跟头——明明都叫“算力”为什么A产品标“32 TOPS”B产品标“40000 DMIPS”C产品标“53 TFLOPS”放在一起却根本没法比后来啃了几个月的芯片手册、做了无数次选型对比才慢慢搞明白这三个指标不是同一个维度的东西硬放在一起比就像拿“时速”“载重”“油耗”去评价一辆车单看任何一项都会得出错误结论。这篇文章就是把三把尺子彻底拆开讲清楚每个指标到底是什么、怎么算出来的、各自适合用在哪再用一张对照表做总结。适合正在做芯片选型的工程师、刚入门嵌入式或AI硬件的同学还有被宣传页数字绕晕但想搞明白的普通玩家。读完你至少能做到一件事看到“XX TOPS”或“XX FLOPS”时能立刻判断这个数字到底能不能反映你想要的性能。1. 先定性三个指标量的是三种东西1.1 一句话记住三兄弟TOPSTera Operations Per Second每秒万亿次操作衡量的是“每秒能做多少次基本运算”。它通常指整数或定点运算尤其是INT8这种低精度AI推理计算因此AI芯片、NPU、智能驾驶芯片的宣传页最爱用。DMIPSDhrystone Million Instructions Per Second每秒百万条Dhrystone指令。它不是直接测机器每秒跑多少条真实指令而是让机器跑一套叫Dhrystone的基准程序再和当年一台叫VAX 11/780的基准机对比出来的分数。CPU、MCU领域用得多。FLOPSFloating-point Operations Per Second每秒浮点运算次数。衡量的是处理器每秒能做多少次带小数的浮点运算是GPU、超级计算机、科学计算领域的老牌标尺。因为浮点运算本身比整数更复杂所以同样是1 GHz主频FLOPS会比同芯片的整数运算低不少。打个比方把算力想象成工厂流水线TOPS是“每小时加工多少个标准件”的产能FLOPS是“每小时加工多少个高精度零件”的产能DMIPS则是所有操作工做同一套标准试卷后的折算得分。标准件做得多不代表高精度零件也能做那么多试卷考得高也不代表实际动手效率高。三个数字只有在各自对应的场景里才有意义。1.2 一张“图”帮你把它们摆在同一张桌面上如果有人问“一张图”怎么画我不会去画三根长短不同的柱状图——那反而容易误导人。我建议做成一张多行四列的对照表横排是三个指标竖列对比它们的全称、作用、主要场景和典型产品。我自己平时做技术分享也这么画观众看完基本不会再混。指标英文全称衡量对象常见精度主要应用场景典型硬件TOPSTera Operations Per Second每秒万亿次整数/定点“操作”INT8、INT4、FP16AI推理、NPU算力、智能驾驶AI加速器、手机SoC NPU、GPU Tensor CoreDMIPSDhrystone Million Instructions Per Second每秒百万条Dhrystone基准指令与浮点无关主要测整数/控制逻辑CPU/MCU性能、RTOS、工控各类CPU、单片机MCUFLOPSFloating-point Operations Per Second每秒浮点运算次数FP32、FP16、FP64科学计算、3D渲染、AI训练GPU、超级计算机、FPGA这张表的核心含义是TOPS 告诉你“这台机器做标准件有多快”DMIPS 告诉你“CPU 跑控制逻辑有多熟练”FLOPS 告诉你“算精确数值能到多猛”。后面几章逐个展开。2. TOPSAI时代最亮眼的算力指标2.1 1 TOPS 是怎么算出来的先套公式。TOPS 的单位是“每秒万亿次操作”这里的“操作”在多数AI芯片规格里指的是 INT8 定点运算一个乘加运算记为2次操作1次乘法加1次加法。举一个简单的推导一颗NPU主频1 GHz内部有1024个MAC单元乘加单元每个时钟周期每个MAC单元完成1次乘加那么一秒钟的操作次数 1GHz × 1024 × 2 2048G ops/s大约等于2.05 TOPS。也就是说要看懂TOPS需要知道三个数计算单元数量、时钟频率、每个周期能完成的操作次数最后再按10的12次方换算成“T”量级。这里就埋了第一个坑同一个加速器如果分别跑FP16、INT8、INT4数字会差很远。通常INT8算力是FP16的2倍左右INT4又能再翻倍。有些厂商宣传时故意取“最好看”的数字所以看到“AI算力 XX TOPS”第一反应应该反问这是什么精度下测的如果没有注明默认按INT8理解但能抠更细就抠更细。提示TOPS 里的“操作”和实际程序跑出来的性能是两个概念。峰值只是理论上限真实AI模型还要看内存带宽、算子库优化和编译器不是所有流水线都能一直满负荷。2.2 为什么拿TOPS去比FLOPS是跨物种比较“1 TOPS 等于多少 FLOPS”这个问题没有标准答案因为这俩连运算类型都不一样。TOPS 里的操作可以是定点整数FLOPS 里的操作必须是浮点数。浮点运算还要处理指数、规格化、舍入每条指令消耗的周期和晶体管都更多所以哪怕在同一颗芯片上INT8 TOPS 和 FP32 TFLOPS 也不能简单套一个固定换算系数。再退一步说就算把精度对齐芯片实际跑模型时还有内存带宽、算子库、编译器优化这些变量。峰值算力只是“理论上限”跑真实模型能发挥多少往往取决于数据能不能及时喂进去。这也是为什么我在实际选型中看 TOPS 时从来不会只看一个数字而是连同内存带宽一起看。2.3 “显卡TOPS算力表”到底该信几分最近大家喜欢搜“显卡tops算力表”主要是因为AI PC和本地大模型热起来之后显卡厂家和评测机构开始给显卡标TOPS。你会发现一个现象NVIDIA自家的规格表通常更喜欢标 TFLOPS但在AI推理场景里大家更关心Tensor Core的INT8算力这时才会出现“几百TOPS”这种量级的数字。看这类算力表要特别注意“稀疏算力”两个字。稀疏Sparsity指的是计算时跳过矩阵里不该参与运算的零值规格表里的TOPS经常是在稀疏化之后的理论峰值。实际AI模型能有多少零值可跳、能跳多干净完全看模型结构、量化方法以及引擎支持程度。实际跑下来稀疏算力能不能到标称的六七成都不好说。这也是我觉得“显卡TOPS算力表”参考价值有限的原因。注意同一张卡如果标了“INT8 稀疏 TOPS”大概率是厂家所有加速技巧全开之后的理论极限。你和它之间的差距就是营销和现实的差距。2.4 选NPU和智能驾驶芯片时怎么逼问厂商如果你做选型面对一颗标称“XX TOPS”的AI芯片请至少问三个问题这个TOPS是稠密算力还是稀疏算力稠密是真实计算单元硬算的理论峰值稀疏则假设大量零值被跳过数字通常大不少。标称精度是什么INT8、INT4还是FP16不同精度下的数字没有可比性。满负载下能持续多久大部分边缘NPU没有主动散热跑几秒就过热降频峰值持续不了几分钟。再补充一个带宽提醒。假设一颗芯片标称20 TOPS但内存带宽只有25.6 GB/s跑AI模型时权重和中间数据要通过内存搬进搬出内存带宽很可能先成为瓶颈。算力再高、数据喂不进去性能也上不去。3. DMIPSCPU/MCU 的“标准试卷”成绩3.1 Dhrystone 的来历一套跑了四十年的考卷Dhrystone 是1984年发布的一套基准程序内容混合了典型的系统编程场景整数运算、字符串复制、数组访问、控制流跳转等。它不像真实应用那样跑几十个程序而是用一小段精心设计的代码反复执行统计每秒能跑多少遍再跟当时一台基准机VAX 11/780做出来的成绩对比换算成分数就是 DMIPS。所以严格说DMIPS 并不是“每秒几百万条指令”的直接度量而是跑Dhrystone这套固定考卷之后得到的相对分。它有个隐藏的偏见程序员只要知道测试内容就能针对性优化所以有些芯片的DMIPS会显得异常高。但它依然是目前跨CPU、MCU对比整数性能最实用的工具之一。3.2 选MCU看主频、MIPS、DMIPS有什么不同很多新手看 MCU第一反应是选“主频最高”的。主频当然有意义但它只告诉你“每秒能振荡多少次”不告诉你“每个周期能做多少事”。不同微架构的CPU每个时钟周期能执行的指令数量差别很大。举几个常见内核数据Cortex-M4大约是1.25 DMIPS/MHzCortex-M7大约能做到2.14 DMIPS/MHzCortex-A53大约是2.3 DMIPS/MHz。同样是200 MHzM7的DMIPS差不多是M4的1.7倍主频相同性能却明显差一截。这也是为什么芯片手册和RTOS文档更常用“DMIPS/MHz”这个效率指标它比单纯看数字更公平。3.3 车规芯片标“40000 DMIPS”该怎么理解现在不少智能座舱、车控芯片发布会都会写“CPU算力高达40000 DMIPS”看起来非常唬人。本质上是多核CPU跑Dhrystone的成绩乘以核数之后的理论峰值。实际场景里多核同时满载时可能受缓存一致性、总线带宽、散热功耗的限制达不到这个理想数字所以看到这种宣传我习惯再追问一句持续多核负载下能保持多少另一个容易混淆的地方是DMIPS强只说明CPU在处理控制逻辑、调度、协议栈这类场景上快不代表AI推理、图形渲染也快。如果一颗座舱芯片的CPU DMIPS很高但GPU和NPU很弱车内大屏动画和语音助手照样可能卡。4. FLOPS科学计算与渲染的老牌标尺4.1 浮点运算为什么那么“重”整数运算里11就是2计算机把二进制位直接相加就行。但浮点数要用类似“科学计数法”的方式存储分成符号位、指数和尾数三部分。一次浮点乘法除了要乘尾数还要处理指数相加、规格化、舍入等一堆步骤芯片里电路更复杂耗电也更多。正因为浮点能表示范围极大、精度可控的小数科学计算、物理仿真、3D渲染、神经网络训练都离不开它。FLOPS 便成了衡量“每秒能做多少次浮点计算”的经典指标单位从KFLOPS一路到TFLOPS、PFLOPS。4.2 同一张卡FP64、FP32、FP16差别大到离谱很多显卡标称的TFLOPS你得先搞清楚是哪种精度。同一颗核心在不同精度下算力可能差好几倍甚至几十倍。拿一款主流AI训练卡来举例FP64双精度可能只有10 TFLOPS级别FP32单精度可能是20 TFLOPS级别FP16半精度则能到80 TFLOPS级别如果再开稀疏化还能更高。出现这种差异是因为AI用途的芯片把大量晶体管放在低精度矩阵运算单元上双精度单元被刻意缩减。对普通用户而言最直观的影响是游戏和传统3D渲染看重FP32AI推理和训练偏重看FP16/INT8超算排行榜则只认FP64的LINPACK成绩。拿FP16的高数字去对标FP32完全不成立。4.3 游戏卡、计算卡和本地大模型怎么用FLOPS游戏显卡主要看FP32 TFLOPS因为游戏渲染大量使用单精度浮点。显存带宽和容量同样关键但至少FP32这个数字基本能反映光栅化性能。科学计算看FP64 TFLOPS很多专业计算卡双精度能力是消费卡的数倍甚至几十倍所以专业卡贵有贵的道理。本地大模型先看显存容量够不够装下模型权重其次看显存带宽再然后才是Tensor Core的TOPS。举一个具体例子一个70亿参数模型如果以FP16权重存下来大约需要14GB显存INT4量化后可以降到3.5GB左右。推理时每生成一个token理论上要把权重完整读一遍假设显存带宽为100GB/s那每秒最多也就生成100/3.5也就是大约28个token再高的TOPS也突破不了这个瓶颈。这就是“算力表很好看跑起来却一般”的常见原因。5. 为什么三个指标无法互相换算5.1 本质差异指令、分数、操作次数表面上看TOPS、DMIPS、FLOPS都在描述“每秒能做多少次”但它们的“次”不是一回事。TOPS 的“操作”可能是矩阵乘加里的整数运算DMIPS 的“指令”是一段基准程序里的混合指令FLOPS 的“浮点运算”则特指带小数的高开销计算。这三者之间的量化关系随芯片微架构、编译器、精度配置而变不可能有一个固定换算系数。用汽车类比更清晰TOPS 是发动机最大功率DMIPS 是这辆车跑某个固定赛道的圈速FLOPS 是它能拖多重的精密设备。虽然都是“性能”但在不同使用场景里权重完全不同。你不可能因为一辆车赛道圈速快就断定它拖货厉害。5.2 按场景选指标最实用的口径根据我自己的选型经验可以按场景直接对号入座你的需求优先看的指标附加注意事项嵌入式/工业控制/单片机DMIPS/MHz、主频按功耗看持续性能别只看峰值AI开发板/智能座舱/智能驾驶TOPS优先问INT8稠密算力同时看内存带宽、NPU工具链游戏显卡/3D渲染FP32 TFLOPS结合实际游戏和渲染跑分科学计算/超算FP64 TFLOPS确认软件是否用双精度本地跑大模型显存容量、显存带宽、TOPS三者缺一不可这张表建议大家收藏选型时先对号入座再深入看具体参数能避开很多营销陷阱。6. 常见问题与避坑实录6.1 常见疑问速查表围绕这三个指标平时被问最多的问题基本是下面几个我直接给出结论。疑问结论手机宣传“AI 45 TOPS”能代表手机性能吗只代表NPU在特定低精度下的峰值App实际用到的可能只有很小一部分日常体验还得看CPU、GPU和系统优化。我要玩游戏显卡该看TOPS还是FLOPS游戏主要看FP32 TFLOPSTOPS是AI场景的参考两者别混着用。工业控制选MCUTOPS有用吗普通PLC和家电控制用不到深度学习DMIPS/MHz比TOPS实在得多。一台显卡TOPS很高本地跑大模型一定快吗不一定。权重加载速度受显存带宽限制显存装不下模型则直接跑不动。为什么同一张卡宣传算力可以有好多版本因为精度档位FP32/FP16/INT8/INT4和是否开稀疏化不同数字自然就不同。6.2 我踩过的一个典型坑分享一个真实经历。有次给一个视觉检测项目选边缘盒子厂商标“8 TOPS”在小模型演示现场跑得很溜我也没细抠底册。真正部署时才发现那8 TOPS是INT4下测出来的我们项目用INT8模型实际能用的理论算力只有一半再扣掉内存带宽和散热降频端到端帧率比预期慢了将近一半。后来我养成了习惯无论什么芯片先要一份“稠密、INT8、持续功耗限制下”的算力值再拿自己真实模型去跑基准两个数对上了才会往下走。如果你也在做类似选型建议把这条写进采购流程先问标称条件再问持续条件最后问实测条件。三个数字都拿到了才真正有资格谈“算力”。6.3 一个额外的提示营销数字的“单位游戏”现在厂商特别喜欢在单位上做文章同一个东西换一个单位数字就变大。比如把TFLOPS换成TOPS把INT8换成INT4把稠密换成稀疏数值都能凭空多出几倍。我见过不少产品宣传页故意不写精度或计量条件只给一个看起来很牛的整数。应对方法很简单每个数字都要找到它的精度说明找不到就默认按最保守口径理解FP32稠密。跨产品对比时务必把“精度、稀疏或稠密、是否多核累加”拉到同一水平线。拿到芯片后用你最核心的真实负载跑一遍基准比你纠结所有标称数字都重要。最后分享一点个人体会几年做下来我最大的体会是算力从来不是一个数字而是一整套系统能力的简称。TOPS、DMIPS、FLOPS各有各的适用场景硬要拿一个指标横向对比所有芯片大概率会被营销话术带偏。我自己现在看到任何标称算力都会下意识问三个问题这数字是哪个精度下测的是理论峰值还是可持续值我的真实负载能吃到几成问完这三个问题大部分宣传页都会现出原形。希望这篇整理能帮你少踩几个坑选型时心里更有底。
返回列表