ARTICLE DETAIL

资讯详情

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

TOPS、FLOPS、DMIPS深度解析:AI芯片算力参数与选型指南

TOPS、FLOPS、DMIPS深度解析:AI芯片算力参数与选型指南 1. 先把这三个单位拆开看它们到底在测什么很多刚开始接触AI开发的同行拿到一块开发板或者一张显卡第一件事就是看算力参数。TOPS、FLOPS、DMIPS这三个词几乎天天见但真问起来不少人是“大概知道”的状态——知道TOPS是跟AI推理有关的FLOPS是跟浮点运算有关的DMIPS似乎是很古老的单位但具体差在哪、该怎么换算、买芯片的时候该优先看哪个往往说不清楚。我最早也踩过这个坑。几年前评估一款边缘计算盒子厂商标称“XX TOPS”我还以为这个数字直接等同于性能结果实际跑模型时发现推理速度远低于预期。后来仔细研究才发现TOPS的标称方式、精度定义、稀疏支持情况每一项都能让“纸面算力”和“实际吞吐”差出好几倍。从那以后我养成了一个习惯拿到芯片先不看宣传页先把单位定义和测试条件搞清楚。要理解这三个单位首先要明白一个本质问题——它们分别测的是计算设备的哪一个侧面。简单来说TOPS测的是AI专用的整数运算能力FLOPS测的是通用科学计算里的浮点运算能力DMIPS测的是CPU核心处理指令的综合能力。三者之间不能直接换算因为它们衡量的根本不是同一种操作。TOPS测的是“每秒能完成多少万亿次整数运算”FLOPS测的是“每秒能完成多少万亿次浮点运算”而DMIPS测的是“每秒能执行多少百万条整数指令”且是在特定的基准测试程序下测得的。打个比方TOPS、FLOPS、DMIPS之间的关系就像评价一辆车时不看同一个指标。TOPS是“最高时速”只代表极限性能FLOPS是“发动机排量”代表动力储备的上限而DMIPS更像是“百公里油耗”和“可靠性”的综合体现。你不能用最高时速来反推油耗也不能用排量来判断一辆车适不适合跑山路。同理一块芯片能不能高效跑起你的模型也不能只看某一个算力数字。我见过不少AI项目在选型阶段就出了偏差比如只盯着TOPS数字选边缘设备结果因为内存带宽不够、NPU不支持某类算子导致模型部署后性能惨不忍睹。所以这篇内容我想从三个单位的定义出发结合实际的选型场景说得直白一点它们分别是什么厂商喜欢怎么“美化”数字以及你怎么剥开这些包装去看真实性能。这篇文章适合刚入门的AI开发者、做边缘计算部署的工程师以及正在为项目做硬件选型的朋友。我尽量用大白话把底层逻辑讲清楚也把实操中容易踩的坑一并列出来。2. TOPSAI芯片最亮眼的“门面数字”也是最容易被忽悠的指标2.1 TOPS的真实含义与精度陷阱TOPS全称是Tera Operations Per Second每秒万亿次操作。这里的“操作”通常指整数运算最常见的是INT88位整数运算。为什么AI芯片在宣传时普遍用TOPS而不是FLOPS因为主流的神经网络推理模型在部署到边缘设备或移动端时为了降低计算量和内存占用普遍做了INT8量化。也就是说TOPS本质上衡量的是芯片执行INT8矩阵乘加运算的速度上限。但这里藏着一个巨大的坑很多厂商标称的TOPS是在FP1616位半精度浮点、INT8或者INT4等多个精度下分别给出的而不同精度下的TOPS数值差距非常大。比如同一块芯片INT8下可能标80 TOPSINT4下能标到160 TOPSFP16下只有40 TOPS。有些厂商宣传时故意用最大的那个数字却不标注精度条件外行人乍一看很厉害实际一跑FP16模型就露馅了。所以在看TOPS参数时第一步就是确认它是在什么精度条件下标的。对于大部分端侧推理场景INT8的TOPS是你真正需要关心的数字如果你要跑的是训练或微调那TOPS这个单位几乎不相关你应该去看FLOPS。另外还有一个“稀疏性”的问题。一些高端AI芯片支持稀疏计算就是说权重矩阵里一部分元素为零可以跳过不参与运算从而把理论算力翻倍。厂商在标TOPS时有时候会把“稀疏算力”放在括号里甚至不告诉你这是稀疏版本。比如某款GPU在宣传材料里写“X TOPS”下面一行小字“with sparsity”实际意思是不开稀疏功能时真实算力要打个五折。2.2 为什么TOPS高不等于推理速度快这是很多人在实际部署时最困惑的一点明明选了一块TOPS很高的芯片跑模型却不如预期。原因有很多其中一个核心因素是内存带宽。NPU计算需要不停地从内存读取权重和激活值如果内存带宽跟不上计算单元就只能“饿着肚子等数据”。这种情况叫计算瓶颈和访存瓶颈很多边缘芯片的TOPS标得很高但内存带宽是瓶颈实际吞吐量远远达不到标称值。举个例子有一块边缘计算模组标称11 TOPS INT8算力但内存采用的是LPDDR4X带宽只有大约34GB/s。跑一个轻量级检测模型时实际推理帧率只有十几FPS。而另一块标称6 TOPS的芯片因为用了LPDDR5并做了更好的缓存设计实际跑同一个模型反而更快。这就说明TOPS只是“计算单元的理论上限”它不代表系统整体的实际吞吐。还有算子支持度的问题。神经网络里有卷积、池化、全连接、归一化、激活函数等各式各样的算子NPU通常只对某几类算子做了深度优化。如果你网络里的某些算子NPU不支持就得回流到CPU上执行这一下子就把速度拉下来了。所以现在很多厂商会提供一个“算力利用率”或者“真实吞吐率”的测试结果这个数字比裸TOPS有价值得多。我在实际选型时除了看TOPS还会重点问三件事内存带宽是多少、NPU支持哪些算子和精度、有没有配套的量化工具链。如果这三个答案都不理想那再高的TOPS对实际项目也没有帮助。2.3 整数运算的底层直觉TOPS如何被计算出来的TOPS本质上是一个理论峰值。芯片设计人员会算芯片内部有多少个乘法器MACMultiply-Accumulate然后按芯片的最高运行频率算出每秒最多能完成多少次整数乘加运算。一次典型的乘加操作a b × c d会被算作两次操作一次乘法、一次加法所以TOPS 每秒完成的乘加次数 × 2。假设一颗芯片有512个INT8 MAC单元每个时钟周期能完成512次乘加工作频率是1GHz那它的TOPS就是 512 × 2 × 1G 1024 GOPS 1.024 TOPS。这是纯理论值没有考虑实际运行时的停顿、数据搬移、卷积计算边界的填充等开销。所以你看TOPS只是在“最理想状态下”芯片计算单元能跑出的速度上限跟现实中跑一个复杂模型完全不是一回事。很多AI加速卡动辄标出200 TOPS、300 TOPS这些数字听起来夸张但它们背后是几千上万个MAC单元在高频率下联合工作的结果。理论上限高是好事但真正决定体验的还是上面说的带宽、算子支持和工具链成熟度。3. FLOPS从HPC老江湖到AI训练场的硬通货3.1 FLOPS的精度体系和那串让人头大的缩写FLOPS是Floating Point Operations Per Second每秒浮点运算次数。注意这里的“FL”指的是浮点数运算和上面TOPS的“整数运算”是完全不同的计算模式。浮点运算涉及小数点位置的动态变化底层电路比整数运算复杂得多因此一块芯片的FLOPS数值通常远低于同尺寸下的TOPS数值。在看GPU参数时你会遇到一串精度缩写FP64、FP32、FP16、BF16、TF32。每一种精度的FLOPS都不一样。FP64是双精度主要用于科学计算和工程仿真FP32是单精度是AI训练时代的绝对主力FP16和BF16是半精度训练时经常配合混合精度策略使用而TF32则是NVIDIA专门为Ampere架构推出的一个中间格式本质上是把FP32的尾数减短用更低的精度换更高的吞吐。这些精度对应的FLOPS差异很大比如一张消费级显卡的FP32算力可能是60 TFLOPS而FP16算力则能到120 TFLOPS带稀疏可能更高。很多人看到带稀疏的FLOPS数字就兴奋恨不得直接按最大数值规划训练时长结果被现实狠狠打脸。稀疏计算在推理场景可能省一些带宽但在训练场景你要先能把模型权重结构化成稀疏矩阵而且梯度更新时还要保留稠密计算路径带来的开销未必划算。3.2 选GPU时怎么看FLOPS训练速度的核心密码如果你要训练一个大语言模型或者多模态模型FLOPS就是最关键的算力指标因为训练过程主要是浮点运算。大模型的训练通常采用混合精度策略用FP16或BF16来做大部分正向和反向计算用FP32来维护权重主副本。在这种模式下决定你训练速度的实际上是FP16/BF16的FLOPS而不是FP32。有一个更值得关注的概念叫MFUModel FLOPs Utilization模型算力利用率。MFU指的是实际训练一套模型时GPU达到的运算吞吐量占理论FLOPS的百分比。在分布式训练中MFU能到50%以上就算不错很多大规模训练任务的实际MFU只有30%~40%。也就是说一张标称200 TFLOPSFP16的GPU真正训练大模型时的有效算力大概在60~100 TFLOPS之间。剩下的算力都耗在了通信、数据读取、算子启动、显存读写这些环节上。所以选训练硬件的时候不要只盯着单卡FLOPS还要看卡间互联带宽。如果你要凑一台8卡机器训模型那NVLINK带宽、PCIe通道数量甚至网卡速率都比单卡FLOPS更重要。单卡再快卡间同步一旦卡住整体效率会被拖垮。3.3 边缘设备也要关注FLOPS先分清你的工作负载很多人有个误解觉得FLOPS是“训练专用单位”推理设备完全不用管。其实不完全对。如果你要跑的模型是FP16精度比如一些精度敏感的场景量化成INT8后掉点严重那边缘设备的FP16 FLOPS就是你推理性能的决定因素。很多AI手机和智能摄像头芯片现在都支持FP16推理开启FP16时算力会成倍下降但如果你的模型是FP16部署这反而是最真实的性能参考。我建议从实际工作负载出发把需求拆开训练场景主要看FP16/BF16 FLOPS和互联带宽推理场景如果模型是INT8重点看TOPS推理场景是FP16看FP16 FLOPS如果要做科学计算那就得看FP64 FLOPS。不同负载看不同指标没有“通吃一切”的算力数字。4. DMIPS被低估的“CPU跑分”在AI处理器里依然扮演重要角色4.1 DMIPS是什么和MIPS有什么差DMIPS全称Dhrystone Million Instructions Per Second是基于Dhrystone基准测试程序得出的每秒百万条指令数。Dhrystone是一个经典的CPU基准测试程序主要考察整数运算和控制逻辑能力。它最早诞生于1984年虽然古老但在嵌入式领域沿用至今。MIPS本身是每秒百万指令数但不同架构的指令集不同单纯比较MIPS没有意义所以人们用Dhrystone基准跑分来归一化得出DMIPS这个相对客观的指标。看到这里你可能会问这都什么年代了还看这么老的指标但在嵌入式CPU、MCU、SoC的系统级芯片领域DMIPS依然是评估CPU内核性能最常用的参数。比如ARM Cortex-A系列的芯片手册里几乎都会写明每个核心能跑多少DMIPS频率是多少。如果你的设备里跑着Linux系统、做着大量的数据预处理、控制调度CPU的DMIPS直接决定了这些非AI任务的处理效率。举个例子很多边缘AI盒子里的NPU负责跑深度学习模型但它要依赖CPU来完成图像解码、数据搬运、预处理、后处理、网络通信等一大堆任务。如果CPU的DMIPS偏低即使NPU的TOPS很高整个系统的端到端延迟还是会很大。因为CPU忙不过来喂给NPU的数据就会断断续续。4.2 DMIPS怎么读算力核心性能的参考基准DMIPS本身不算复杂但看的时候要注意频率条件。厂商在宣传DMIPS时通常会标注频率比如“2.0GHz2.5 DMIPS/MHz”换算下来单核心大概是5000 DMIPS。这里的DMIPS/MHz是一个更便于比较的归一化指标表示每MHz主频能跑多少DMIPS。不同架构的IPC每时钟周期指令数差异很大同样的频率高端架构跑出的DMIPS可能是入门架构的几倍。所以DMIPS高不等于频率高而是架构效率高。我经常遇到有人拿“主频很高”来推断设备性能很强的说法“这个板子是2.4GHz的八核CPU肯定很猛。”实际上主频只是影响性能的一个因素架构、缓存、内存通道都会影响最终体验。DMIPS这个指标把架构效率作为核心变量反而比单纯看主频更靠谱。4.3 DMIPS、CPU占用率与AI应用整体延迟的关系把DMIPS和AI应用联系起来可以用一条链路来理解摄像头采集图像 → CPU解码为YUV/RGB图 → 做缩放、归一化等预处理 → 喂给NPU做推理 → NPU输出结果 → CPU做后处理比如NMS、目标框绘制→ 编码或推流显示。整个过程里CPU承担的前后处理环节非常多。如果CPU的DMIPS不够你会发现NPU虽然只用了50%不到的占用率但整个系统的处理延迟已经超了。我之前做一个视频结构化项目时换了一块CPU性能更强的板子DMIPS大约翻了一倍同一个模型、同一个NPU端到端帧率从15FPS直接提到了25FPS。NPU没变变的是CPU的数据预处理和后处理能力。这充分说明DMIPS在AI系统里不是配角它决定了你的NPU能不能吃饱。所以我的建议是评估任何一块AI硬件不能只挖TOPS和FLOPS也要问清楚CPU是多少核、多少主频、能跑多少DMIPS。尤其对于端侧设备CPU算力不达标的后果往往是整条流水线空转NPU再强也白搭。5. 从“单位混战”到“选型套路”一张表格看清三大指标很多人在看芯片规格书时感到头疼其实是因为没有建立一个分类框架。我根据自己的选型经验把三大指标做了一个整理列出了分别要看什么、注意什么方便直接对号入座指标衡量对象常见精度/测试条件典型场景主要坑点TOPSAI推理的整数运算能力INT8、INT4、FP16端侧/边缘推理、量化模型部署精度条件不标、稀疏算力注水FLOPS通用浮点运算能力FP32、FP16、BF16、TF32、FP64模型训练、科学计算、FP16推理精度体系复杂、MFU通常只有30%~50%DMIPSCPU综合指令执行能力Dhrystone基准、DMIPS/MHz嵌入式控制、数据预处理、系统调度需结合频率与架构看不能只看核心数这张表可以作为初步筛选的辅助工具但真到具体项目还需要配合模型结构、输入分辨率、帧率要求和功耗限制一起评估。纸面参数只是参考跑通你的实际模型才算数。另外还有一个常见问题既然有TOPS和FLOPS为什么还要单独看DMIPS原因很简单AI系统不是只有AI计算外围的硬件协同、数据流转和系统调度都得靠CPU。一个健康的AI系统应该是“CPU足够快、内存带宽足够大、NPU算力足够强、工具链足够顺手”四者缺一不可。只看任何单一指标都容易掉进性能陷阱。6. 厂商“纸面参数”常见的三大注水方式别被宣传页骗了6.1 用“稀疏算力”或“结构稀疏”凑数前面提过稀疏计算能让理论算力翻倍但实际部署时能不能用上稀疏完全取决于你的模型。如果你的模型是普通卷积网络没有经过剪枝那稀疏计算基本用不上。可宣传材料里不会这么讲他们只会写“可达XX TOPS”。我见过不少产品把“with sparsity”放在极不显眼的位置宣传海报上只放大数字这算是最常见的注水方式。对策也很简单看规格书时先找有没有“稀疏”字样。有的话就把那个数字除以2再作为参考。如果你有精力最好直接问官方要“稠密计算”模式下的数据。6.2 用INT4甚至更低精度标称出厂部分AI芯片支持INT4甚至INT2/INT1的计算。INT4理论上比INT8快一倍但精度损失也比较明显。用来跑一些对精度不敏感的模型还行但用在目标检测、语义分割这些任务上效果很难保证。厂商在宣传的时候可能会把INT4的TOPS标成最显眼的数值而把INT8、FP16参数放到备注里。应对方法是先确认你要部署的模型精度。大部分边缘部署用INT8那就只看INT8的TOPS。如果算力数字小到让你犹豫那说明产品本身性能有限不是你看错了。6.3 把“纯算力芯片”的数据当成“整机性能”宣传有些芯片厂商卖的是核心板/模组宣传时用裸芯片的理论算力作为亮点但整机产品的散热、功耗墙、软件优化都没跟上。实际使用时芯片会因为温度过高而降频或者因为软件栈不成熟导致大量算子CPU回退。最终体验和纸面数据相差很大。建议选型时直接要求厂商提供“端到端性能报告”比如在特定模型、特定输入分辨率下的推理延迟和吞吐量。这种报告比任何宣传页都有说服力。7. 手上的项目到底需要多少算力三个经验公式帮你毛估7.1 从模型计算量反推推理芯片的TOPS需求选AI芯片时一个很实用的问题是怎么从一个模型出发估算出需要多少TOPS这里提供一个经验公式需求TOPS ≈ 模型计算量MACs × 2÷ 目标帧率 ÷ 算力利用率。画一个具体例子假设你有一个目标检测模型单帧推理计算量是5 GMACs也就是50亿次乘加操作。想在边缘设备上实现30 FPS的实时检测。按60%的算力利用率估算需要的TOPS就是5 GMACs × 2 10 GOPS10亿次操作。10 GOPS × 30 FPS 300 GOPS 0.3 TOPS。0.3 TOPS ÷ 0.6 ≈ 0.5 TOPS。这样算下来一块标称1 TOPS的芯片就能满足需求。是不是比想象中要低这就对了大部分边缘检测模型的实际算力需求并没有宣传中那么夸张。不过要注意上面没有算预处理、后处理和其他任务的算力开销实际选型时可以在这个结果上留两三倍的余量预算够就选3 TOPS左右的芯片。7.2 训练场景的FLOPS估算时间换算的基本方法训练场景里大家更关心的是“训练一次要多久”。这里也有一个估算方法。假设你有一个7B参数量的模型训练数据量是1万亿token。模型一次前向反向的计算量大约是2 × 参数量 × token数也就是2 × 7B × 1万亿 14 × 10的21次方 FLOPS 14 EFLOPs。如果用一张FP16算力为200 TFLOPS的GPU来训理论时间大约是14 EFLOPs ÷ 200 TFLOPS 70,000,000秒 ≈ 810天。显然太久了所以实际训练要用集群。如果你有256张同款GPU并且集群的MFU能达到45%那训练时间大约是810天 ÷ 256 ÷ 0.45 ≈ 7天。这个公式虽然粗糙但用来估算训练量级非常直观。你也可以用它来反推在给定时间预算下需要多少张卡才能完成任务。7.3 DMIPS的需求判断看你的CPU除了AI推理还干什么CPU算力需求没有特别精确的公式但可以从任务类型来毛估。如果你设备上只跑一个模型推理CPU负责数据预处理和后处理那双核A55级别约1万DMIPS以内就够用了。如果你要同时跑多个模型、处理多路视频流、还开了Web服务CPU的需求会成倍上升。一个比较稳妥的思路是参考同行的典型案例同样是跑YOLOv8s用四核A53的设备CPU占用约70%那你选用六核或八核更高频的CPU就能留出富余量。设备CPU占用率最好控制在50%以下这样系统不至于因为瞬时负载波动而卡顿。8. 几张评测图也说明不了全部为什么最终要以实测为准看再多的参数对比、评测图最后还是要落到实测。我见过一些型号的纸面数据和实测数据差异相当大原因除了前面提到的精度和稀疏条件还有软件栈的成熟度问题。同一款芯片官方SDK版本不同推理速度可能相差30%以上。NPU对算子的支持程度也直接影响模型转换的难易程度——你手里的模型未必能顺利量化、编译、跑在NPU上。所以我的经验是选型阶段至少要做三件事。第一用官方工具链把目标模型跑起来至少在开发板上验证一遍速度。哪怕精度先不优化先把性能基线摸清楚。第二不仅测单帧延迟还要测持续吞吐、温升后的降频情况。有些开发板跑几分钟后芯片发热性能会逐步下降这种情况在无风扇的边缘设备上尤其常见。第三关注工具链的易用性和社区活跃度。一个好的软件栈能让你从“模型能跑”加速到“模型跑得好”而一个糟糕的工具链可能让你卡在量化环节一两周都出不来。我现在养成一个习惯每个新项目启动前都会花几天时间把候选硬件做一轮最小化验证。跑一个你自己的模型记录帧率、延迟、占用率、功耗和温度。有了这份实测数据后续所有选型讨论才有价值。否则大家只是在数字里猜来猜去浪费时间和预算。最后再分享一个小技巧。当你看到某款芯片的算力参数的时候先别急着换算“够不够”。先问自己三个问题我的模型是INT8还是FP16我对帧率的要求是多少我打算留多少计算余量给其他任务把这三个答案写到纸上再拿参数去对比基本不会选错。算力单位本身并不复杂复杂的是每个参数背后的精度、条件和使用场景。搞清楚了这些你再回头看那些“XX TOPS震撼发布”的标题心里就有数了。
返回列表