拓冰建站拓冰建站
首页 / 资讯中心 / 正文

AI为什么需要专用芯片?CPU、GPU、NPU算力架构深度解读

这两年AI火到什么程度大家有目共睹但有个问题经常被问到为什么大家都说AI必须要专用芯片直接用CPU跑不行吗这问题乍一听像抬杠实际背后藏着整个AI硬件生态的核心逻辑。我早几年第一次拿CPU跑神经网络时也这么想直到被数据和功耗狠狠教育了一顿才算弄明白。这篇就把“为什么AI需要专用硬件”这件事从头到尾掰开聊清楚把计算本质、硬件选型的底层逻辑和实操经验一次性讲透。1. 先从“算不过来”说起CPU 跑 AI 到底卡在哪很多人觉得CPU是计算机的大脑自然什么都能算但真拿它跑大规模AI模型就会发现不是“能不能算”的问题而是“算得有多慢、多费电”。CPU设计之初就是为了处理通用任务它擅长的是复杂的逻辑判断、分支预测和多任务切换这些能力在面对AI计算时反而变成了负担。这里有三个绕不开的硬伤。1.1 冯·诺依曼瓶颈数据搬运比计算本身更慢计算机体系结构从冯·诺依曼提出“存储程序”概念开始就一直沿用固定的流程CPU从内存取出指令和数据在算术逻辑单元里计算再把结果写回内存。问题是这个“取数据”的通道带宽有限CPU的计算速度远超内存读写速度结果就是CPU经常处于“饥渴”状态——明明有能力算却因为拿不到数据而空转。这在传统应用里问题不大因为普通程序的指令路径短、数据量小但AI模型动辄上亿参数每一次训练迭代都要反复读取数据内存带宽直接变成最大的瓶颈。我举个生活化的例子CPU就像一个全世界最顶尖的厨师刀功精准、动作利索但厨房只有一个窄小的传菜窗口食材只能一小碟一小碟递进来再快的厨师也得等着配菜员慢慢送。你的厨艺再高一小时也做不出几桌菜。AI计算就是这么个场景模型参数就是食材数据传输通道就是那个窄窗口CPU被硬生生卡成了“算力有余、带宽不足”的尴尬局面。1.2 CPU 走的是“单车道”串行执行不适合并行计算传统CPU的核心序列是这样工作的执行完一条指令再取下一条指令遇到分支还要预测跳转。虽然现代CPU有流水线、多核、超线程这些技术但本质上都在围绕“串行逻辑”做优化通用计算任务里大部分逻辑天然是串行依赖的所以这种设计非常合适。然而AI模型里的矩阵乘法、卷积运算、激活函数计算成千上万个元素彼此之间没有依赖关系本质上可以同时计算这种“高度并行”的负载恰恰是CPU最不擅长的。打个比方CPU是那种一个特别有条理的人一次只能专注做完一件再做下一件胜在思路清晰任何复杂问题都能拆解着处理。而AI计算更像是一个巨大的仓库需要给几千个货架同时补货活儿本身倒不难难的是同时操作——这时候你需要的不再是一个聪明人而是一大群手脚麻利、可以无脑同时干活的工人。CPU的架构决定了它负责“聪明”而AI更需要“人多”。1.3 精度太高的浪费AI 并不需要那么多小数点CPU做数值计算时默认用FP64双精度程序员写代码时也不会刻意降低精度因为通用程序对数值误差非常敏感。但AI训练和推理过程中模型对精度的容忍度非常高很多研究已经证明FP16半精度甚至INT8整数精度就足以维持模型的效果没必要用FP64“大炮打蚊子”。高精度数据占用的存储空间大、传输带宽高、计算单元面积也更大CPU把这些资源全都花在了AI根本用不上的精度上等于花钱买了个用不上的功能。所以问题的核心浮出水面了——AI计算需要的不是“通用而全能”的能力而是“大量、简单、并行、特定精度”的计算。CPU恰好在这四个维度上都匹配不上这就在根本上给专用硬件留出了巨大的优化空间。2. AI 计算的核心逻辑矩阵乘法与数据搬运的博弈如果只用两句话概括AI硬件要解决的问题第一句是“把矩阵乘法算得飞快”第二句是“让数据在芯片和内存之间跑得更快”。理解这两句话就等于掌握了理解所有AI芯片的钥匙。2.1 神经网络的前向计算装满了矩阵乘法随便拿一个神经网络来看无论是卷积神经网络里的卷积核滑窗、Transformer里的自注意力打分还是多层感知机里的全连接层统统都能用矩阵乘法表达。一个简单的线性层做一次前向计算就是一个输入矩阵乘以一个权重矩阵再加上偏置过一遍激活函数。这一层看起来简单但层数一多、输入维度一大乘加运算量就指数级上升。一个千亿参数的大模型哪怕只做一次前向推断矩阵乘法的总运算次数都是以“亿亿”为单位的。矩阵乘法的特征是什么它的每个输出元素是左侧矩阵一行和右侧矩阵一列对应元素相乘再相加的结果不同输出元素之间没有依赖天然就是高度并行的任务。这个特性意味着只要你把足够多的乘法器堆在一个芯片上把输入数据同时喂给它们理论上计算速度可以近乎线性地往上翻。CPU受限于核心数量有限很难堆到这样的规模而专用硬件把这个“堆算力”的策略发挥到了极致。2.2 能耗大头在“搬运”而不是“计算”这里有个很反直觉的事实在芯片上做一次浮点乘法消耗的能量大约只有把数据从内存搬到计算单元这一动作消耗能量的几十分之一甚至上百分之一。也就是说大部分电能其实烧在了“数据移动”上而不是“计算”本身。传统CPU架构将内存外置每次计算都要先从外部内存取数这在AI这种大数据量场景下是极其奢侈的做法。这也解释了为什么AI专用芯片在设计上都疯狂地做同一件事减少数据搬运。具体的思路包括加大片上缓存SRAM让数据尽量留在芯片内部做数据复用比如一个矩阵元素被提取一次后反复参与多次运算而不是每次运算前都去取一次再就是用高带宽内存HBM堆带宽让一次能搬的数据量更大。理解了“搬运比计算贵”这个核心逻辑你去看任何一款AI芯片的设计白皮书都能一眼看出它到底在优化什么。2.3 算力、带宽、功耗这个“不可能三角”AI芯片设计始终绕不开一个三角约束算力、带宽、功耗三者很难同时做到极致。算力越高意味着要堆更多计算单元面积变大功耗上升带宽越大意味着要上更先进的内存方案成本增加功耗又被散热的物理极限卡住功率墙永远存在。所以你能看到的市场产品都有自己的取舍方向训练芯片疯狂堆算力和带宽端侧推理芯片则把重点放在能效比上——每瓦特能做多少次运算。作为一个做AI基础设施相关的从业者我的体会是这个“三角关系”不只是芯片设计者的难题也直接决定了你做项目时的硬件选型。是买昂贵的高算力卡还是用能效比更优的中端卡是上多卡集群还是优化算法减少计算量本质上都是在这三个维度之间做权衡。3. 专用硬件怎么对症下药GPU、NPU、TPU 的架构思路专用硬件不是一个新概念早在GPU出现之前计算领域就有DSP数字信号处理器、FPGA现场可编程门阵列这些专用芯片。但AI时代真正拉开差距的是从GPU开始一步步走向更专精架构的过程。市面上最常见的几种AI芯片各有各的设计哲学。3.1 GPU从图形加速到通用并行计算的“跨界选手”GPU最初是为了渲染图像而设计的图形渲染本质上就是对几百万个像素点同时做坐标变换和颜色计算这种天然高并行的场景促使GPU发展出了“成百上千个精简核心”的架构。后来研究者发现这个结构和AI计算的需求惊人地契合于是NVIDIA在2006年推出CUDA把GPU的计算能力开放给通用编程从此GPU成为AI训练的事实标准。GPU的优势在于平衡它的核心数远多于CPU但每个核心又比NPU里的处理单元灵活得多既能做矩阵乘法这种高并行运算也能处理一些常规逻辑。所以它既能做AI训练的“重活”也能承担图形渲染、科学计算等其他任务。代价就是功耗高、价格贵数据中心的顶级GPU动辄几百瓦起步一块卡的价格能顶一台不错的家用车。从我的实操经验来看GPU最典型的AI场景就是大模型训练和通用推理那种模型规模和批次量巨大的任务上GPU集群仍然是当前最成熟的选择。3.2 NPU让“乘法累加运算”变成肌肉记忆NPU神经网络处理器算是真正意义上的“AI专用硬件”。它的设计思路很纯粹既然AI的核心是矩阵乘法那就把乘法累加单元MAC直接堆成阵列让芯片硬件本身就是一台矩阵计算引擎。和GPU相比NPU大幅削减了通用计算能力把省下来的晶体管面积全部用来增加MAC单元和片上缓存在同样面积下能实现数倍于GPU的AI算力功耗还更低。另一个关键的差异化设计是NPU普遍支持低精度计算。推理场景中INT8量化已经能保持相当高的精度一些模型甚至能用INT4计算而NPU对低精度数据类型做了硬件级别的深度优化INT8算力往往是FP16算力的两倍以上INT4还能再翻倍。精度降低换来的是吞吐量翻倍这难道是巧合吗不是这是架构上的明确取舍。对于移动端和边缘设备这款芯片是绝对主力你的手机里那个拍照时做人像分割、语音识别时做降噪的模块大概率就是NPU在工作。3.3 TPU用脉动阵列把“数据复用”做到极致谷歌的TPU张量处理单元是另一个值得研究的流派它把“数据复用”这个理念贯彻到了极致。脉动阵列是TPU最核心的架构创新——它由大量排列整齐的乘加单元组成网格数据像波浪一样在单元间依次传递每个数据从一个单元流向下一个单元时反复参与多次运算极大减少了从缓存或内存取数的次数。这个思路直接用降低“数据搬运能耗”的方式突破了带宽瓶颈。第一代TPU就凭着这个架构在推理任务上表现出色后来的TPU系列更是把训练能力也发展起来了。从我实际接触各类AI加速方案的角度看TPU给整个行业的启示比它本身的产品更重要——它证明了“专得更彻底”这条路是完全走得通的之后的很多ASIC芯片设计都从脉动阵列或类似的数据复用思路里汲取了灵感。当然TPU也有明显的短板架构越专灵活的通用性就越差一旦模型结构发生大变化配套的编译器和工具链就得跟着做大量适配。3.4 一张表看懂 CPU、GPU、NPU/TPU 的核心差异维度CPUGPUNPU/TPU核心定位通用逻辑处理通用并行计算专用神经网络计算核心数量几十到几百几千到上万上百万处理单元MAC阵列典型精度FP64/FP32FP32/FP16/TF32FP16/BF16/INT8/INT4擅长任务复杂逻辑、分支判断、操作系统大规模并行计算、图形渲染、AI训练矩阵乘法、卷积等固定模式的AI计算功耗水平几十瓦到几百瓦几百瓦十几瓦到几百瓦端侧到数据中心灵活性最高较高最低依赖于编译器适配AI能效比低中高这张表能直观看出为什么AI场景都在往专用硬件迁移——如果任务模式固定、计算量大、容错精度高那么专用硬件的收益远大于通用方案。4. 用数据说话AI 芯片带来的实际提升有多大光说架构可能还停留在概念层面用具体的数据来对比才能直观感受专用硬件带来的量级变化。我从算力、能效、带宽和真实场景表现四个角度拆开看。4.1 三个量级对比算力与能效比先看算力峰值。一个高端服务器CPU的单精度浮点算力通常在几千GFLOPS每秒千亿次浮点运算而一块主流AI训练GPU的FP16算力轻松超过1000 TFLOPS每秒千万亿次浮点运算两者相差百倍量级。再看NPU或TPU这类专用AI芯片INT8算力动辄几百TOPS每秒万亿次整数运算同样面积下又比GPU进一步提升数倍。要注意这里的对比不完全公平CPU追求的是“均衡”但这些数字直观地告诉你专做一件事能做到多极致。比峰值算力更能说明问题的是能效比也就是每瓦特能提供多少算力。以典型的端侧AI推理为例CPU做INT8推理的能效比大约在0.1-1 TOPS/W的区间而一颗现代手机NPU的能效比能做到10-30 TOPS/W高了两个数量级。这意味着同样完成一个推理任务NPU消耗的电量只有CPU的几十分之一。对以电池供电的手机和物联网设备来说这个差距就是“能跑”和“根本没法用”的区别。4.2 内存带宽的天花板DDR 与 HBM 的差距前面反复强调“搬运数据比计算更贵”那解决搬运速度的关键就是内存带宽。传统服务器用DDR5内存带宽大概在几十GB/s到一两百GB/s这个区间而AI加速芯片普遍配置HBM高带宽内存带宽动辄1TB/s起步顶级加速卡已经做到3TB/s以上。粗暴点理解其他条件不变的情况下光靠带宽的提升数据喂给计算单元的速度就能快上十到二十倍。这也是为什么早期有人用CPU跑模型显存和内存都够用但训练慢得离谱的原因——不是算力不够是参数在内存和CPU之间“倒腾”的时间远超实际计算时间。我印象很深的是有次在CPU上跑一个小型Transformer模型做实验跑了一晚上还没完成一个epoch后来换到一张中端GPU上同样的数据和模型一个多小时就出结果了。这个体感差距完全是量级的碾压不是优化能追回来的。4.3 真实场景训练、推理、端侧三种典型任务的表现具体到真实场景把三种任务分开看更有意思。训练场景的核心诉求是大算力和高带宽因为要反复处理海量数据、反向传播更新梯度模型规模越大这两个指标越吃紧。这里有硬性的指标要求微秒级的平均梯度同步延迟、上百GB的模型并行切分都是训练场景独有的痛点。千亿参数模型的预训练动辄需要几千张GPU连续跑几十天如果用CPU时间单位要换算成年用专用GPU/TPU集群是“量变引起质变”最典型的案例。推理场景的诉求在于低延迟和高吞吐尤其是在线服务场景用户点击后几百毫秒内必须返回结果。GPU在云端推理是主力但NPU在批量推理上的性价比正在逐渐显现。一个明显的趋势是像GPT这类大模型推理服务里专用的推理芯片凭借更低的单请求成本和更高的能效比正在被大规模部署在“冷”路径上把热门请求留给GPU处理。端侧场景则是NPU的主场。手机拍照时的AI夜景模式、语音助手的本地唤醒词识别、智能摄像头的实时目标检测这些任务都需要在几瓦甚至几百毫瓦的功耗预算内完成。用CPU做这些任务要么速度不达标要么手机发烫而NPU让这些功能在电池供电的前提下成为了可能。你手上的每一台主流智能手机里都至少有一颗NPU在默默干活。5. 实际项目里怎么选硬件从需求出发的决策思路最后从我实际做项目的角度聊聊AI芯片选型的一些经验。很多刚入门的朋友会陷入“参数越高越好”的误区实际项目里硬件选型更像做菜——好的厨师会根据菜品选择锅具而不是只看锅有多贵。盲目堆参数不仅浪费预算还可能因为功耗、散热、生态适配等问题踩坑。5.1 先搞清楚你跑的是训练还是推理训练和推理对硬件的需求差异非常大。训练要处理梯度回传、维护中间状态、做大规模并行通信对算力、内存容量和卡间互联带宽都有极端要求所以训练场景基本绕不开高端GPU或者云上的TPU这类加速器。推理场景则更关注延迟、吞吐和单位成本如果模型已经训练完成部署阶段完全可以选择中端GPU甚至NPU/ASIC来降低成本。我见过不少团队在这个问题上走弯路典型的情况是小规模微调也去租顶级GPU集群花了冤枉钱。实际上很多微调任务用单张中高端GPU都能完成重点不是卡多贵而是你把数据、并行策略和模型结构调好了没有。5.2 端侧场景优先考虑能效比如果你的项目是手机App、智能家居设备、可穿戴设备这类端侧场景选型的第一指标不是绝对算力而是能效比和功耗预算。现在的手机旗舰芯片都有独立的NPU模块不同厂商对NPU开放程度不同有的提供了成熟的推理框架比如高通骁龙平台的QNN苹果的Core ML华为的MindSpore Lite有的需要用厂商专有的SDK做适配。选型时要重点考察目标硬件上的框架支持和算子覆盖情况避免模型结构里有硬件不支持的算子导致适配工作量暴涨。从我的体验看端侧AI项目最省心的做法是先用量化工具把模型从FP32转到FP16甚至INT8再用厂商提供的Profile工具逐层分析耗时然后针对性地做算子融合和内存复用优化。这样一般能把推理延迟降低一到两倍很多情况下根本不需要换更强的NPU。5.3 别忽略软件生态的力量这一点我特别想强调。很多人在选型时只盯着硬件参数却忽略了软件生态的成熟度往往等适配时才发现工具链不完善苦不堪言。AI芯片的最终性能不仅取决于硬件架构更取决于编译器、推理引擎、算子库和框架支持这些软件层面的优化。同样的算力软件优化做得好与差实际吞吐可能相差数倍。无论做训练还是部署第一步都应该先看这个硬件支持哪些深度学习框架的版本算子覆盖度如何有没有好用的Profiling工具社区活跃度和问题解决速度如何。很多时候成熟的生态带来的效率提升比硬件本身多出来的算力更值得优先考虑。5.4 给刚入门的人一个务实的选型建议如果你刚接触AI硬件我建议从云服务入手而不是直接购买实体加速卡。云平台灵活度高按量计费可以低成本地试遍GPU、NPU等不同类型加速器快速建立对“不同硬件跑AI的差异”的体感。等明确了项目的性能瓶颈和核心需求再决定是购买实体硬件还是持续使用云服务还是做更专用的ASIC定制都来得及。我自己在学习AI芯片这个领域时就走过不少弯路一开始花了很多时间研究每一个硬件架构的细枝末节却忽略了从计算场景倒推需求的思维方式。实际上对于绝大多数开发者来说理解“为什么需要专用硬件”的重心不在于背下芯片的白皮书指标而在于看清AI计算的核心矛盾和不同架构如何化解这些矛盾。想通了这一点再看任何新产品、新架构都会觉得豁然开朗。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门